HC12compact

Supportseite

Zurück zur HC12compact Produktseite

Handbuch Errata / Ergänzungen

Handbuch Stand: 19. Oktober 1998
  • Nicht die Lötbrücke BR6, sondern BR5 ist zu schließen, um Interrupts durch den CAN Controller zu generieren (Seite 28, 2. Absatz) - siehe Schaltplan
  • Im Handbuch und auf der Begleitdiskette ist ein kurzes Beispielprogramm zum Ansprechen der Register des CAN-Controllers SJA1000 enthalten. Dabei ist die Adresse des Datenregisters mit $0383 falsch angegeben, richtig ist $0201.
  • Die auf Seite 15ff. geschilderte Flash-Programmierung basiert auf Datenblattinformationen des AMD Flash 29F100. Die dort angegebenen Adressen der internen State-Machine des Flash Memories sind 16 Bit breit (z.B. $5555). Neuere/größere Flash Typen (wie der nun eingesetzte 29F400) kommen lt. Datenblatt mit einer 12 Bit breiten Adresse aus (z.B. $555). Die beschriebenen Algorithmen funktionieren gleichwohl unverändert, da die geschilderten Adressierungsvarianten kompatibel sind.
  • Anmerkung zur Steckverbinderbelegung (Seite 10): Die Pins des RS232-Steckverbinders ST3 sind so bezeichnet, wie die Signale vom PC ankommen! Die Belegung ist derart gewählt, daß ein einfaches Flachbandkabel per Crimpverbindung von ST3 (Pin 10 bleibt frei) zum 9-poligen Sub-D Anschluß des PC führt.
Handbuch Stand: 6. Mai 1998
  • Im Handbuch ist das Beispielprogramm für den ADC nicht korrekt. Die Verzögerung des etwa in der Mitte des abgedruckten Listings befindlichen NOP Befehls reicht nicht aus, statt desses sollte eine Zeitschleife von mindestens 10 Mikrosekunden eingefügt werden.
  • Die Sektornummern für den Monitorbefehl X entsprechen den lt. Datenbuch anzulegenden Adressen A12..A17 am Flash-Memory. Die Sektornummern lauten (in Klammern jeweils die resultierenden Program Pages): 00 (0-3), 08 (4-7), 10 (8-B), 18 (C-F), 20 (10-13), 28 (14-17), 30 (18-1B), 38 (1C,1D), 3C (1E, untere Hälfte), 3D (1E, obere Hälfte), 3E (1F). Alle Angaben hexadezimal.

Applikationshinweise

  • Von Zeit zu Zeit stellen (mit Flash-Speicher unerfahrene) Anwender die Frage: Warum kann man den Flash-Speicher auf dem HC12compact nicht neu beschreiben? Antwort: Man kann natürlich doch! Zuvor muß man aber den Flash (einen Sektor oder aber den ganzen Chipinhalt) löschen! Das unterscheidet Flash-Speicher grundsätzlich von EEPROM, welcher ja bekanntlich byteweise gelöscht bzw. neuprogrammiert werden kann. Im TwinPEEKs Monitor löscht man den Flash mit dem Kommando X.
  • HyperTerminal Tip: Von Anwendern des Programms HyperTerminal (im Lieferumfang von Win95/98/NT) erhielten wir den Tip, unbedingt alle Soft-/Hardware Protokolle zu disablen und als Terminalemulation ANSI zu verwenden. Außerdem ist der Wechsel auf die neuere Version 4 ratsam, die als kostenfreie Personal Edition (für private Nutzung) beim Hersteller Hilgraeve geladen werden kann.
  • Noch ein Terminalprogramm: OC-Console können Sie kostenlos von unserer Website laden.
  • Board Initialisierung: Die Benutzung des Boards wird vereinfacht, wenn man im Startcode vor dem Aktivieren des Program Window zunächst die Program Page $FE einblendet. Dadurch bleibt im Paged Mode der selbe Speicherbereich auf $8000-$BFFF eingeblendet, wie schon zuvor im linearen Mode (nach Reset). Hier ein Vorschlag für die Initialisierung des HC12compact:
main    lds  #StackPtr
        ; REM: MCU starts in Normal Expanded Wide Mode
        clr  COPCTL         ; Disable Watchdog
        movb #$0c,PEAR      ; LSTRE+RDWE, ECLK
        movb #$3F,CSCTL0    ; Enable CSP0+CSD+CS3+CS2+CS1+CS0
        movb #$10,CSCTL1    ; CSD covers $0000-$7fff
        movb #$30,CSSTR0    ; CSP0+CSD not stretched (CSP1:3x)
        movb #$FF,CSSTR1    ; CS0..3 stretched (3x)
        movb #$fe,PPAGE     ; Select Program Page $FE
        movb #$0f,MXAR      ; A16E...A19E
        movb #$c0,WINDEF    ; DWEN+PWEN
        movb #$80,DDRE      ; PE7=Out (LED driver)
        movb #$00,PORTE     ; LED on

C und der HC12compact

Damit die Programmierung des Boards mit dem ImageCraft ANSI-C Compiler ICC12 V6 erleichtert wird, haben wir einige Bibliotheksroutinen zusammengestellt. Sie demonstrieren die Bedienung der verschiedenen Peripheriefunktionen des HC12compact. In den Dateien ist zudem ein spezifisch auf den HC12compact angepaßtes C-Startup Modul enthalten.

Monitor-Updates

Sie können hier die neueste Monitorversion für den HC12compact laden: TwinPEEKs V1.3d - Zum Laden des neuen Monitors ist ein BDM-Tool, wie z.B. ComPOD12/StarProg erforderlich.

Revision History:
V1.3d
- Korrigiert ein Problem beim Programmieren von Flash Bausteinen des
  Herstellers STM anstelle AMD/Fujitsu
V1.3c
- Problem beim Setzen der RTC behoben: Fehler durch falsches Decrementieren
  eines BCD Wertes, wenn Monat oder Tag durch zehn teilbar waren 
V1.3b
- Program Page $FE als Default gesetzt, da dies dem Zustand im linearen
  Modus (beim Systemstart ohne aktiviertes Program Window) entspricht
- Aktueller PPAGE-Wert wird als Prompt ausgegeben
V1.3a
- Autostart Abfrage korrigiert: ging vorher nicht, weil der interne Pull-Up
  an PH1 den Pegel nicht schnell genug auf H gezogen hat; Speed-Up Pulse
  eingebaut (kurzer aktiver H Ausgangspegel, bevor PH1 auf Input geht)
V1.3
- Da das Monitorprogramm wesentlich umfangreicher geworden ist, wird ab sofort
  der gesamte EEPROM Bereich ($F000-$FFFF) für den Monitor reserviert und gegen
  versehentliches Überschreiben gesichert.
- Die Defaultadresse ist neu $8000 (vorher $F000), wichtig ist dies vor allem
  für die Autostartfunktion des Monitors.
- Es stehen zusätzliche Kommandos für ADC ("A"), DAC ("V") und Echtzeituhr ("T")
  zur Verfügung. Syntax siehe Onlinehilfe (Kommando H).
- Das Kommando "I" zeigt die Hersteller-ID des Flashbausteins an (2223 für den
  Am29F400BT)
- Es ist nun möglich, den gesamten Flashbereich ($8000-$FFFF) mit einem Anwender-
  programm zu laden - selbst in den Bereichen, die der interne EEPROM überdeckt.
  Der Monitor blendet hierzu bei Bedarf den oberen 16KB Adreßbereich ab $C000
  temporär in das Program Window ab $8000 ein und rechnet die Adressen um. Dies
  geschieht alles automatisch, das PPAGE Register wird dabei stets gerettet. Durch
  dieses Feature ist es möglich, ein Anwenderprogramm inkl. Interruptvektoren und
  Resetvektor ohne Umwege in den Flashmemory zu laden. Um das Anwenderprogramm zu
  starten, muß man nur noch die Mode-Jumper auf Normal Expanded Mode umstellen.
  Will man zurück zum Monitor wechseln, stellt man die Jumper zurück auf Normal
  Single Chip Mode. Zum Neustart ist selbstverständlich jeweils ein Reset
  erforderlich.
V1.2
- erste Release Version des Monitors

Letzte Änderung: 2014-01-25