Home

Projektarbeit

image

Contents

1. I Ankommende CAN Nachrichten werden hier abgearbeitet interrupt void CANO Receive void i UINT8 Temp Temp CANORXFG 4 hole Empfangsbyte putSCIO Temp Lokales Echo ber Hyperterminal CANORFLG 1 II clear rec flag Sende Funktion void SendCANMessage UINT8 NumBytes UINT8 BufPntr UINT8 NACAN C while ICAN0TFLG warte bis ein Sendepuffer verf gbar ist NACAN CANOTFLG w hle den n chst verf gbaren Sendepuffer CAN0TBSEL NACAN CAN0TXFG 0 0x80 Sende ID wird festgelegt CANOTXFG 1 0x00 11 Bit Identifierformat if NumBytes 8 NumBytes 8 for C 0 C lt NumBytes C II nur so viel Bytes senden wie bergeben CANOTXFG 4 C BufPntr Bytes ins Senderegister CANOTXFG 0x0C NumBytes JI Anzahl der Bytes ins Datenl ngenregister NACAN CANOTBSEL lese aktuellen Sendepuffer CANOTFLG NACAN Senden wird eingeleitet Staatliche Technikerschule Berlin Doege Liebig Kallauke JI CAN Initialisierung
2. UINT8 Keycodes 13 0x01 0x02 0x03 0x05 0x06 0x07 0x09 0x0a 0x0b 0x0d 0x0e 0x0f Hex Werte UINT8 Keywerte 13 1 2 3 4 5 6 7 8 9 0 II PIFP 0x40 H Interruptflag zur cksetzen keycode PTIP gt gt 2 amp 0x0f Inhalt vom Keypad auf die Adresse 0x3000 for i 0 i lt 16 i Zuordnung ASCI Code zum Keycode if Keycodes i keycode UINT8 0x3000 Keywerte i Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12 Compact Staatliche Technikerschule Berlin Autor Mario Kallauke Datei Lcd_test c Datum 2004 02 12 Funktion Ausgabe Laufschrift Projektarbeit HCS12 Compact include hcs12dp256 h include Lcd h void main void unsigned char String Projektarbeit HCS12 Compact i Icd ini Lcd Initialisierung do s_steuer 0x01 Il 1 Zeichen 1 Zeile Bildschirm l schen for i 0 String i i s data String i II ASCI s ins Datenregister delay 50000 if i 13 s_steuer Oxc0 1 Zeichen 2 Zeile while 1 Endlos Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12 Compact Staatliche Technikerschule Berlin Autor Mario Kallauke Datei Lcd c Datum 2004 02 12 Funktion Lcd Funktionen Frei Rs RW 07 D6
3. Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner Bedeutung Werte Effekt CANORXFG Empfangspuffer Empfangene Nachricht enthalten Zeigt den Zustand des Empfangspuffers CANORFLG Empfangsflagregister an Registeraufbau CANxRXFG msCAN Empfangspuffer Identifier Register 0 Data Segment Register 1 Data Segment Register 4 Time Stamp Register High Byte x0 xl o ii MUN SIS O Di gt e x m eo x a Time Stamp Register Low Byte Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 101 CANRFLG msCAN Empfangsflagregister Bit 7 6 5 lt 3 2 1 Bit O Read RSTAT1 RSTATO TSTAT1 TSTATO WUPIF CSCIF OVRIF RXF Write Reset 0 0 0 0 0 0 0 0 RXF zeigt an ob eine Nachricht erhalten wurde 1 Empfangstfifo ist nicht leer eine neue Nachricht kann aus dem Empfangspuffer geholt werden 0 keine neuen Nachrichten verf gbar Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 102 19 Akustischer Signalgeber 19 1 Allgemeines Der HCS12 Compact verf gt ber einen akustischen Signalgeber SP1 Dieser wird ber den Buffer IC6D getrieben und von der MCU ber den Portpin PT2 angesteuert PT2 ist mit einem der 8 Timerkan le verbunden Dies erm glicht die Frequenzerzeugung mit Hilfe der
4. Aufgabe Initialisierung der PS 2 Schnittstelle Header 512 ps2 h Funktionsaufruf init_ps2 bergabeparameter keine R ckgabeparameter keine Reccourcen keine Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner Bedeutung Werte Effekt Data Diretion Regis DDRJ ter von Port PJ1 auf Eingang PIEJ purlessn 0x02 Datasignal l st dann Interrupt aus void set CLKDAT ON void Aufgabe Setzt Clock und Datasignal auf high Header 512 ps2 h Funktionsaufruf set CLKDAT ON bergabeparameter keine R ckgabeparameter keine Reccourcen keine Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner DDRJ PTJ Bedeutung Data Diretion Regis PortJ Register Werte Effekt und PJ1 auf Ausgang Setzt Clock und Datasignal 002 auf high Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 28 void set CLKDAT OFF void Aufgabe Setzt Clock und Datasignal auf low Header 512 ps2 h Funktionsaufruf set CLKDAT OFF bergabeparameter keine R ckgabeparameter keine Reccourcen keine Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner Bedeutung Werte Effekt Data Diretion Regis
5. void CANInit void ImsCAN Control Register 0 CANOCTLO INITRQ Setze INITRQ um in den Initialisierungsmode zu gelangen while CANOCTL1 amp INITAK I warte bis INITAK gesetzt Initialisieungsmode kann beginnen ImsCAN Control Register 1 CAN0CTL1 CANE msCAN Modul wird enabled Bustimingregister CANOBTRO 0x03 CANOBTR1 0x32 II CAN Baudrate 500kbps bei 16 MHz Taktfrequenz Akzeptanz Control Register CANOIDAC 0x10 II verwendet vier 16 Bit Akzeptanzfilter Akzeptanzfilterregister 0 1 CANOIDARO 0x81 Setup Filter 1 1 Filter Bank CANOIDAR1 0x00 Maskenregister 0 1 CANOIDMRO 0x00 keine Maskenbits bei Empfangenen Nachrichten CANOIDMR1 0x07 die letzten Bits sind nicht benutzt Akzeptanzfilterregister 2 3 CANOIDAR2 0x81 Setup Filter 2 1 Filter Bank CANOIDAR3 0x00 Maskenregister 2 3 CANOIDMR2 0x00 keine Maskenbits bei Empfangenen Nachrichten CANOIDMR3 0x07 die letzten 3 Bits sind nicht benutzt Akzeptanzfilterregister 4 5 CANOIDARA 0x81 Setup Filter 3 2 Filter Bank CANOIDARS 0x00 Maskenregister 4 5 CANOIDMRA 0x00 keine Maskenbits bei Empfangenen Nachrichten CANOIDMR5 0x07 die letzten 3 Bits sind nicht benutzt Akzeptanzfilterregister 6 7 6 0x81 Setup Filter 4 2 Filter Bank CANOIDAR7 0x00 Maskenregister 6 7 CANOIDMR6 0x00 keine Maskenbits bei Empfangenen Nachrich
6. EE Interrupt reagiert auf fallende Flanke Header keypad h Funktionsaufruf keypad int bergabeparameter keine R ckgabeparameter keine Reccourcen PortP PP2 PP6 Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner Bedeutung Werte Effekt PIEP PORT P Interrupt Ox40 PP6 Interrupt Enable Enable Register PPSP PARTE Polany OxBF Interrupt reagiert auf fallende Flanke Select Register PORT P Data PORE Direction Register OxBF PP6 auf Eingang Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 72 Registeraufbau Bit 7 6 5 4 3 2 1 Bit O eg PIEP7 6 PIEP5 PIEP4 PIEP3 PIEP2 PIEP1 PIEPO PIEP Reset 0 0 0 0 0 0 0 0 Bit 7 6 5 4 3 2 1 Bit O es PPSP7 PPSP6 PPSP5 PPSP4 PPSP3 PPSP2 PPSP1 PPSPO PPSP Reset 0 0 0 0 0 0 0 0 Bit 7 6 5 4 3 2 1 Bit O E DDRP7 DDRP6 DDRP5 DDRP4 DDRP3 DDRP2 DDRP1 DDRPO DDRP Reset 0 0 0 0 0 0 0 0 Interruptserviceroutine 1 interrupt void Port P ISR void Aufgabe Interrupterviceroutine Wandlung des Tastencodes und schreiben an die Adresse 3000 in den RAM Header keypad h Funktionsaufruf keypad int bergabeparameter keine R ckgabeparameter keine Reccourcen PortP PP2 PP6
7. UINT8 keypad poll void while PTIP gt gt 6 amp 1 1 Warte auf fallende Flanke von DA keycode gt gt 2 amp 0x0f Inhalt vom Keypad in die Variable keycode for i 0 i lt 16 i Zuordnung ASCI Code zum Keycode if Keycodes i keycode while PTIP gt gt 6 amp 1 0 Warte bis Flanke von DA wieder steigt return Keywerte i R ckgabewert Keywert Il Ipterrupt O cT LL UINT8 keypad_int void bMem 0x3000 0 PIEP 0x40 Interrupt Enable PPSP amp 0x40 H Interrupt reagiert auf fallende Flanke DDRP amp 0 40 JI PP6 auf Eingang Interruptfreigabe Interruptfreigabe Staatliche Technikerschule Berlin Doege Liebig Kallauke 11 Interruptserviceroutine T interrupt void Port_P_ISR void UINT16 i UINT8 keycode RAFI Tatstatur 16 Tasten UINT8 Keycodes 16 0x0f 0x0e 0x0d 0x0c 0x0b 0x0a 0x09 0x08 0x07 0x06 0x05 0x04 0x03 0x02 0x01 0x00 UINT8 Keywerte 16 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xa 0xb 0xc 0xd 0xe 0xf Hex Werte UINT8 Keywerte 16 48 49 50 51 52 53 54 55 56 57 65 66 67 68 69 70 II ASCI s Tatstatur 12 Tasten 0 9
8. E pi gt Bee OR ADDR14 DATA14 L ADDR15DATA15 ECSIROMONE Bild 2 Blockschaltbild 5120 256 2 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 13 512 Port POS Stecker Bezeichnung RER NUSE j ANS NISSE AD Chat ezeichnung f hig f r bezeichnung ber J PJO X4 PJO ja PS 2 Clock PJO J PJ1 X4 PJ1 ja PS 2 Data PJ1 J PJ6 X4 SDA ja CAN RX SDA J PJ7 X4 SCI ja CAN TX SCI H PH0 X5 MISO1 ja Piaport CA1 H PH1 X5 MOSI1 ja Piaport CA2 H PH2 X5 SCK1 ja Piaport CB1 H PH3 X5 SS1 ja Piaport CB2 H PH4 X5 DHA ja intern H PH5 X5 PH5 ja intern H PH6 X5 PH6 ja intern H PH7 X5 SPIWR ja intern K PKO X4 PKO nein Display DO K PK1 4 PK1 nein Display D1 K PK2 X4 PK2 nein Display D 2 K PK3 X4 PK3 nein Display D3 K PK4 X4 PK4 nein Display R W K PK5 X4 PK5 nein Display RS K X5 PK7 nein Display E B PBO X4 PBO nein Piaport PBO B PB1 X4 PB1 nein Piaport PB1 B PB2 X4 PB2 nein Piaport PB2 B PB3 X4 PB3 nein Piaport PB3 B PB4 X4 PB4 nein Piaport PB4 B PB5 X4 PB5 nein Piaport PB5 B PB6 X4 PB6 nein Piaport PB6 B PB7 X4 PB7 nein Piaport PB7 A PA0 X5 PAO nein Piaport PAO A PA1 X5 PA1 nein Piaport PA1 A PA2 X5 PA2 nein Piaport PA2 A PA3 X5 PA3 nein Piaport PA3 A PA4 X5 PA4 nein P
9. Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner Bedeutung Werte Effekt PIFP DER 0x40 Interruptflag zur cksetzen Flag Register PTIP PortP Inputregister Gibt PORTP immer als Eingang wieder Registeraufbau Bit 7 6 5 4 3 2 1 Bit O jen PIFP7 6 5 PIFP4 PIFP3 PIFP2 PIFP1 PIFPO PIFP Reset 0 0 0 0 0 0 0 0 Bit 7 6 5 4 3 2 1 Bit O Read PTIP7 PTIP6 PTIP5 PTIP4 PTIP3 PTIP2 PTIP1 PTIPO PTIP Write Reset 7 Reserved or unimplemented Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 73 17 LCD Display 17 1 Allgemeines Als LCD Display kommt hier ein 2x16 Punkt Matrix Display zum Einsatz 2 Zeilen 16 Zei chen Das einheitliche Verhalten vieler Displays verdanken wir einem Controllerchip der sich als Standard durchgesetzt hat und der von vielen Herstellern verbaut wird Dabei handelt es sich um den HD44780 von Hitachi der hier zum Einsatz kommt Dieser Chip besitzt e einen 80 Zeichen langen Textpuffer e ein paralleles Interface e LCD Treiber mit 16 Punkt Zeilenleitungen und 40 Punkt Spaltenleitungen Das Dotmatrix Display wird mit einer Betriebsspannung Vdd von 5V 5 betrieben Der Vss Pin ist der Masseanschluss Die Stromaufnahme ohne Beleuchtung liegt meist unter 1 mA Maximalwerte von 5 mA sind m glich Au erdem wird eine Spannung zur E
10. Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner Bedeutung Werte Effekt PORTK PORTK Wert an PORTK Registeraufbau Name Bte Bt5 Bt4 Bits Bt2 Bi Bit O PORTK Bit 7 6 5 4 3 2 1 Bit O PORTK Read en e e 5 n Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 80 Unterfunktion 2 void busy void Aufgabe Abfrage des Busy Flags Header Lcd h Funktionsaufruf busy bergabeparameter keine R ckgabeparameter keine Reccourcen PortK PKO PK7 Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner Bedeutung Werte Effekt PORTK PORTK Wert an PORTK Registeraufbau Name Bte Bt5 Bt4 Bt2 Bit Bit O PORTK Bit 7 6 5 4 3 2 1 Bit O PORTK Read en f o s e a 2 son Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 81 18 CAN Schnittstelle 18 1 berblick CAN ist die Abk rzung f r Controller Area Network und bezeichnet eine gemultiplexte se rielle Kommunikation bis zu einer Daten bertragungsrate von 1 MBit pro Sekunde Die Kommunikation findet zwischen den verschiedenen Knoten Nodes statt die alle an einem zweiadrigen Kabel verbunden sind Die Kommunikation f
11. DDRJ ACLK PTJ SETCLK else DDRJ ACLK PTJ amp CLRCLK hnitialisierung der PS2 Schnittstelle IIPJ1 auf Eingang Datasignal loest Interrupt aus IlInterruptfreigabe Setzt Clock und Datasignal auf high IPJO und PJ1 Ausgang CLK Data IIPJ0 und PJ1 high Setzt Clock und Datasignal auf low IPJO und PJ1 Ausgang Data IIPJ0 und PJ1 low Setzt Clocksignal auf high IPJO Ausgang Setzt CLOCK auf high IISetzt Clocksignal auf low IPJO Ausgang Noesche gt low Setzt Datasignal auf high IPJ1 Ausgang Data IISetze DATA high PJ1 Ausgang Data Illoesche DATA low Setzt je nach Bit Clocksignal IPJO Ausgang Setzt CLOCK auf high IIPJ0 Ausgang low Staatliche Technikerschule Berlin Doege Liebig Kallauke 159 Jee void set_data UINT8 Bit Setzt je nach Bit Datasignal if Bit DDRJ ADATA 1 Ausgang Data PTJ SETDATA IISetze DATA high else DDRJ ADATA IPJ1 Ausgang Data PTJ amp CLRDATA Noesche DATA gt low a aaa int read_clock void IILese Clocksignal return PTIJ amp CLOCKBIT Jee int read_data void IILese Datasignal return PTIJ amp DATABIT gt gt DATASHIFT unsigned char kb_out void Tastatur gt Mikroprozessor unsigned char byte 0 stopbit paritybit INT8 a 0 parity ParityBit 0 w
12. void main void DDRE 0x80 while 1 PORTE 0x80 delay 7 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 26 8 PS 2 8 1 Allgemeines Die PS 2 Schnittstelle ist preiswerte M glichkeit eine Tastatur Maus an den Controller zu betreiben Die Tastatur wird dazu ber zwei digitale an das System ange schlossen Man spart dadurch eine Menge l O Anschl sse Die Daten der PS 2 Schnittstelle werden serial bertragen Die Tastatur erzeugt daf r ein Clock Signal Das bedeutet der Mikroprozessor muss sich nach dem Taktsignal der Tastatur richtet Tastatur 2 Master Mikroprozessor Slave Die Daten werden im Format eines UART Zeichens bertragen Serielles Datenformat Startbit immer 0 8 Bit Daten Scancode LSB zuerst Parit tsbit ungerade Quersumme Stoppbit am Zeichenende immer 1 Signal zwischen Zeichen immer 1 Bei den acht Daten Bits ist das LSB zuerst und MSB zuletzt Das Taktsignal kann je nach Tastatur zwischen 10kHz und 16 7 kHz schwanken Die Zeichen die bertragen werden bezeichnet man als Scan Codes Es gibt drei Scan Codes Datentransfer Tastatur gt Mikroprozessor CLOCK DATA o e e e sg oer c x lt lt lt lt lt lt 4 lt lt lt lt lt lt lt lt lt a a a a a a a a Datentransfer Mikroprozessor Tastat
13. Icd_ini Lcd Initialisierung keypad int Interrupt vorbereiten do s_steuer 0x01 1 Zeichen 1 Zeile Bildschirm l schen for i 0 String i i s data String i II ASCI s ins Datenregister delay 50000 if i 13 s steuer 0xcO Il 1 Zeichen 2 Zeile while 1 Endlos Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12 Compact Staatliche Technikerschule Berlin Autor Mario Kallauke Datei keypad c Datum 2004 02 12 Funktion Keypad Funktionen zinclude hcs12dp256 h include datatypes h include keypad h include delay h UINTS i UINT8 keycode RAFI Tatstatur 16 Tasten Hexadezimal UINT8 Keycodes 16 0x0f 0x0e 0x0d 0x0c 0x0b 0x0a 0x09 0x08 0x07 0x06 0x05 0x04 0x03 0x02 0x01 0x00 UINT8 Keywerte 16 0 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 0 0 0 0 0 4 Hex Werte UINT8 Keywerte 16 48 49 50 51 52 53 54 55 56 57 65 66 67 68 69 70 II ASCI s II Tatstatur 12 Tasten 0 9 ooo nnn on mo UINT8 Keycodes 13 0x01 0x02 0x03 0x05 0x06 0x07 0x09 0x0a 0x0b 0x0d 0x0e 0x0f Hex Werte UINT8 Keywerte 13 1 2 3 4 5 6 7 8 9 0 II ASCI s
14. nicht verbunden nicht verbunden Bild 5 Anschlussbelegung 9 poliger SUB D Stecker Das Programm PCANView ist ein CAN Bus Viewer Es erm glicht das Senden und Emp fangen von CAN Messages Beim ersten Start werden die Portadresse sowie der Interrupt des verwendeten Parallelports angegeben siehe Ger te Manager von Windows Danach wird der Typ der parallelen Schnittstelle gew hlt Ist der Modus des Parallelports im BIOS auf ECP gestellt kann der PCAN Dongle auch als PEAK Dongle CAN SJA EPP ange meldet werden Bild 6 Add CAN hardware Type of CAN hardware PEAK Dongle CAN 5 PEAK Dongle CAN 52 EPP I O address 378 v Interrupt gt lt con Bild 6 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 90 Als n chstes werden die Einstellungen f r den Empfangsfilter vorgenommen In diesem Fall werden nur Nachrichten im Standard Format mit der Adresse 400h empfangen Bild7 Connect to CAN hardware ZS PCANVIEw for CAN Dongle Available CAN hardware Add Delete PEAK Dongle CAN at address 0378h IRQ Baud rate 500 KBit sec v Baudrate register value Hex Message filter e Standard Extended From 400 Hex 1400 Hex Bild 7 Die zu sendende Nachricht wird ber Transmit New eingestellt In diesem Fall wird jede Sekunde eine Nachricht mit der ID 408h und einem Datenbyte 31 1 gesendet
15. Die Timer Control Register 3 und 4 sind die einzigen Register in denen die Timerfunktio nen eingestellt werden welche f r die Input Capture Funktion wichtig sind In diesen bei den Registern wird f r die einzelnen als Input Capture geschalteten Kan le festgelegt auf welche Flanke am Kanaleingang ein Input Capture ausgel st werden soll Output Compare Auf Deutsch bersetzt bedeutet Output Compare etwa soviel wie Ausgangsvergleicher Wird einer oder mehrere der Timerkan le 0 7 als Output Compare gesetzt wird dauernd der Inhalt des zum Kanal geh renden Timer Input Capture Output Compare Registers mit dem Timer Counter Register verglichen Sobald die beiden Inhalt gleich sind wird im TFLG1 das Input Capture Output Compare n Flag gesetzt Im TIE kann f r die einzelnen Kan le festgelegt werden ob nach einem Output Compare ein Interrupt ausgel st werden soll oder nicht Damit lassen beispielsweise Timer programmieren Es empfehlt sich in den meisten F llen den Vorteiler des Timer Count Registers im TSCR2 so einzustellen dass der Z hlintervall 1 s betr gt Damit lassen sich nachher am einfachsten Berechnungen ausf hren Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 51 Wichtige Register f r den Output Compare e CFORC Timer Compare Force Register ber dieses Register kann per Software ein Output Compare an einem als Output Compare geschalteten Kanal ausgel st wer
16. PWM ini for w 0 w lt 2 w T nt 3 mal for x 0xFF x gt 0x01 x Schleife f r die L nge des Tons PWMPERO 0xFF FPWM Periode aufs Maximum 0 00 y lt 0xFE y Feste Schleife um steigenden Ton zu generieren PWMDTYO y L d das PWM Dienststregister DelayO 0 Optionale Zeitschleife H herer Wert generiert l ngeren Ausgangston y gt 0x01 Feste Schleife um fallenden Ton zu generieren PWMDTYO y das PWM Dienststregister Delay0 0 FOptionale Zeitschleife H herer Wert generiert l ngeren Ausgangston Delay1 10000 PWM_disable PWM disable f Staatliche Technikerschule Berlin Doege Liebig Kallauke Jee void Warnsignal2 void Warnsignal Glocke i UINT8 w x y Einfache Z hlvariablen PWM ini for w 0 w lt 2 w Piept 3 mal for x 0xFE x gt 0x01 x Controllschleife f r Signalabschw chung PWMPERO x L d das PWM Period Register for y 0 y lt x y Schleife f r steigenden Ton PWMDTYO0 y FL d das PWM Dienstregister Delay0 2 Optionale Zeitschleife H herer Wert generiert l ngeren Ausgangston for y 0xFF y gt x y Schleife f r fallenden Ton PWMDTYO y FL d das PWM Dienststregister Delay0 10 l Optionale Zeitschleife H herer Wert generiert l ngeren Ausgangston Delay1 3 l Zeit zwischen den Piept nen 0 gibt e
17. Bt5 Bt4 Bit2 Bit Bit O PORTK des Bit 7 6 5 4 3 2 1 Bit O PORTK Read en f o s fe a 7 ee pos Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 78 Funktion 3 void s data UINT8 s Datenbyte wird in Nibble zerlegt diese werden nacheinander ins EE Datenregister geschrieben und damit auf dem Display dargestellt Header Lcd h Funktionsaufruf s_data UINT8 s bergabeparameter RR s ASCI s die auf dem Display dargestellt werden sol R ckgabeparameter keine Reccourcen PortK PKO PK7 Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner Bedeutung Werte Effekt DDRK PORTE ui Datenrichtungsregister tungsregister PORTK PORTK Wert an PORTK Registeraufbau Name Bte Bt5 Bt4 Bt2 Bit Bit 0 PORTK do Bit 7 6 5 4 3 2 1 Bit O PORTK Read en Sejr o fe a 2 n Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 79 Aufgerufene Unterfunktionen f r s data und steuer Unterfunktion 1 void enable void Aufgabe Enable LCD Port K kurz auf enable und wieder disable Header Lcd h Funktionsaufruf enable bergabeparameter keine R ckgabeparameter keine Reccourcen PortK PKO PK7
18. EDG2 SH26 Comparator Pin logic C7 capture compare registe SH37 Bild 3 Detailed Timer Block Diagram in Latch mode Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 49 TMCLK 16 bit Free running ep 16 bit load register main timer 2 1 4 8 16 1 2 2 bus clock 16 bit modulus aa e E H 1 RESET lt Pin logic M elay counte EDG i o LATCHO TCOH hold register 24 hold register RESET 1 n e Se hold register PATH hold register RESET E 0 P2 Lm EL LL EDG C1 capture icompare registe Q LATCH Comparator C2 capture compare registe PAC2 m TC2H hold register 2 hold register o RESET Comparator P3 e hold register P4 el Pin logic E284 LATQ SUFEN C4 caplure compare registe queue mode as MUX 5 54 LATCH LATCH EDGI Read TC3H B ES Comparator hold register Pad ces r 1 EDG SH15 hold register C8 capture compare registe 2 MUX Read TC1H B EDG2 hold register SH26 Comparalor me All isis 7 i li ak C7 capture compare registe hold register U EDG3 gt SH37 A Bild 4 Detailed Timer Block Diagram in Queue mode Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grund
19. PT2 pin Register 2 Main Timer TFLG1 Interrupt Flag 1 0x01 clear Intr flag Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 105 20 LED 20 1 Programmfunktionen void led on void Aufgabe LED ein Header 512 led h Funktionsaufruf led on bergabeparameter keine R ckgabeparameter keine Reccourcen PORTE void led off void Aufgabe LED aus Header 512 led h Funktionsaufruf led off bergabeparameter keine R ckgabeparameter keine Reccourcen PORTE void led toggle void Aufgabe LED aus Header 512 led h Funktionsaufruf led toggle bergabeparameter keine R ckgabeparameter keine Reccourcen PORTE Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 106 21 Interessanter Fehler bei der Projektarbeit Wir hatten das Problem dass bei ZAP BDM nach dem bertragen an das S12Compact Modul die Fehlermeldung Can t Find Taget Speed angezeigt wurde Es war einfach nicht mehr m glich mit dem Modul in Verbindung zu kommen A Can t Find Target Speed Was war passiert Es gab ein Problem beim Flashen das einige Bits im Modul setzte das so genannte Flash Security Register In diesem Register kann man den Zugriff von Au en sperren um d
20. TSCR1 Register TIE Timer Interrupt Mask Im Timer Interrupt Mask wird f r jeden einzelnen Timerkanal festgelegt ob nachdem das Timer Interrupt Flag gesetzt worden ist ein Interrupt ausgel st werden soll oder nicht Nach einem Reset sind diese Bit alle auf 0 gesetzt das hei t das Ausl sen eines Inter rupts ist deaktiviert Um die Interruptfunktion zu aktivieren m ssen die Bits der betreffen den Kan le 1 gesetzt werden Lese und Schreibzugriffe auf dieses Register sind jederzeit m glich Register offset 5 0C BIT7 BITO I I9I T TIE s RESET Timer Input Capture Output Compare x Interrupt Enable Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 53 TSCR2 Timer System Control Register 2 Im Timer Interrupt Mask 2 werden verschiedene Einstellungen die f r den Betrieb des Ti mers von Bedeutung sind vorgenommen Hier kann festgelegt werden ob bei einem ber lauf des Timers von 65535 nach 0 ein Interrupt ausgel st werden soll Ebenfalls in diesem Register wird der Timer Prescaler der Vorteiler f r den Timer Counter eingestellt Die fol genden Beschreibungen und die Tabelle geben Auskunft ber die verschiedenen Einstel lungsm glichkeiten dieses Registers Register offset 5 0D 6 BITO T gt RESET 0 TSCR2 Register TOI Timer Overflow Interrupt Enable 0 Interrupt deaktiviert 1 Beim setzen
21. nibble s amp OxOf PORTK amp clear PORTK nibble enable PORTK amp clear void s_data UINT8 s UINT8 nibble PK Aus JI delay 16 Oxfff busy nibble s gt gt 4 amp 0x0f PORTK amp clear PORTK BM 5 PORTK nibble enable PORTK amp BM 5 JI delay 16 Oxfff busy nibble s amp OxOf PORTK amp clear PORTK BM 5 PORTK nibble enable PORTK amp BM 5 void I_busy void UINT8 a 0 b 1 i DDRK 0xf0 while b PORTK clear PORTK BM 4 PORTK BM 7 a PORTK PORTK amp BM 7 enable if a gt gt 3 amp 1 0 b 0 PORTK amp BM 4 PK Aus Schreiben ins Steuerregister PortK alle Ausgang kurz warten o II Busy Flag abfragen 1 Nibble herausfiltern PortK Clear 1 Nibble auf PortK enable kurz warten o II Busy Flag abfragen 2 Nibble herausfiltern PortK Clear 2 Nibble auf PortK enable PortK Clear Schreiben ins Datenregister II PortK alle Ausgang kurz warten o II Busy Flag abfragen 1 Nibble herausfiltern PortK Clear RS High 1 Nibble auf PortK enable RS Low kurz warten o Busy Flag abfragen 2 Nibble herausfiltern PortK Clear RS High 2 Nibble auf PortK enable RS Low Busyflag lesen PKO PK3 gt Input Warte so lang
22. 0x81 Setup Filter 3 2 Filter Bank CANAIDAR5 0x00 Maskenregister 4 5 CANAIDMRA 0x00 keine Maskenbits bei Empfangenen Nachrichten CANAIDMRS5 0x07 die letzten Bits sind nicht benutzt Akzeptanzfilterregister 6 7 CANAIDARSG 0x81 Setup Filter 4 2 Filter Bank CANAIDAR7 0x00 Maskenregister 6 7 CANAIDMRS 0x00 keine Maskenbits bei Empfangenen Nachrichten CANAIDMRT 0x07 die letzten Bits sind nicht benutzt ImsCAN Control Register 0 CANACTLO amp INITRQ INITRQ zur cksetzen um Initialisierungsmode zu verlassen while CANACTL1 amp INITAK warte bis INITAK zur ckgesetzt Initialisieungsmode wird verlassen ImsCAN Control Register 1 CANACTL1 CANE enable msCAN Modul Receiver Interrupt Enable Register CANARIER 1 enable receive interrupt I Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12 Compact Staatliche Technikerschule Berlin Autor Mario Kallauke Datei freqout_test c Datum 2004 02 20 Funktion Buzzer Test Ausgabe Polizeisirene 5mal include datatypes h include freqout h void main void UINT8 x 5 do freqout x while x mal Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12 Compact Staatliche Technikerschule Berlin Autor Mario Kallauke
23. 5 7 D7 1N4002 5 VOUTA VOUTB U2B LM348N Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS 12 Compact Can Bus Anhang Seite 2 CAN_Aktiv Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit Staatliche Technikerschule Berlin HCS 12 Compact Display Anhang Seite 3 O 5VextGND O 5Vext LED Display Doege Liebig Kallauke Projektarbeit HCS 12 Compact Piaport Anhang Seite 4 N 5VextGND 5Vext 12Vext 12VextGND 12Vext 15Vext 15Vext C14 C10 C11 C15 C16 012 Cis 17 100n 10 10u 100n 100n 10u 10u 100n ofo Some cut 48 Spannung out J9 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS 12 Compact Pulsweitenmodulator Timer Anhang Seite 5 74LS541 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS 12 Compact Steckverbinder Anhang Seite 6 bondi ga O VCC O GND O 5VextGND O 5Vext gt lt gt Il NAOS oN Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS 12 Compact Tastatur Anhang Seite 7 Tastatur Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS 12 Compact USB PS 2 Anhang Seite 8 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS 12 Compact Toplayer Anhang S
24. Kallauke Projektarbeit HCS12Compact Grundplatine 92 Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner Bedeutung Werte Effekt berwachung und Steuerung des CANxCTLO Control Register CAN Moduls berwachung und Steuerung des CANOCTL1 Control Register1 CAN Moduls CANOBTRO Bus Timing Register 0 0x03 CAN Baudrate 500kbps CAN0BTR1 Bus Timing Register 1 0x32 bei 16 MHz Taktfrequenz CANOIDAC dentifier Acceptance 0x40 verwendet vier 16 Bit Akzeptanzfilter Control Register Identifier Mask keine Maskenbits bei Empfangenen SES Register 0 27 Nachrichten GANDIDNMRI Mask 0x07 die letzten 3 Bits sind nicht benutzt Register 1 Identifier Mask keine Maskenbits bei Empfangenen Register 2 Nachrichten CANGIDMRA Jenter Mask 0x07 die letzten Bits sind nicht benutzt Register 3 Identifier Mask keine Maskenbits bei Empfangenen SAN Register 4 R Nachrichten GANOIDMRS dentifler Mask 0 07 die letzten 3 Bits sind nicht benutzt Register 5 Identifier Mask keine Maskenbits bei Empfangenen EE Register 6 9X09 Nachrichten GANOIDMRZ Gener Mask 0 07 die letzten 3 Bits sind nicht benutzt Register 7 CANOIDARO Identifier Acceptance 0x841 Setup Filter 4 1 Filter Bank Registers 0 CANOIDAR1 Identifier Acceptance 0x00 Registers 1 Identifier Acceptance CAN0IDAR2 Reaisters 2 0x81 Setup Filter 2 1 Filter Bank Identifier Acceptanc
25. NRZ Signal auf dem CAN Bus SYNC_SEG PROP_SEG PHASE SEG1 Synchronisations Verz gerungs Ph t1 segment segment e 25 Tq 1 Bitzeit PHASE SEG2 Phasensegment 2 4 8 Sendezeitpunkt Abtastzeitpunkt einmalige oder dreimalige Abtastung Bild 2 Aufbau einer Bitzeit Jedes Bit das auf dem CAN Bus bertragen wird kann in vier Segmente aufgeteilt wer den Die L nge der einzelnen Segmente kann im msCAN Modul festgelegt werden und h ngt zum einen von der Baudrate und zum anderen von den physikalischen Verh ltnissen auf dem CAN Bus ab Die vier Segmente sind das Synchronisationssegment SYNCH SEG das Verz gerungssegment PROP SEG das Phasensegment1 PHA SE SEG1 und das Phasensegment2 PHASE SEC2 Die Zeitdauer einer Bitzeit ist die Summe der vier einzelnen Segmente Das Synchronisationssegment hat die feste L nge eines Zeitquantums Tq und stellt f r jede CAN Station den Start eines Bits dar F r Sende stationen beginnt der neue Bitwert mit dem Synchronisationssegment F r die Empfangs station wird der Beginn des Bits innerhalb dieses Segments erwartet d h das msCAN Modul erwartet die erste Flanke von der aus dann die Bitzeit gestartet wird Auf Grund von Signalverz gerungen innerhalb des Busses ist das Synchronisationssegment zwischen dem Sender und dem Empf nger etwas verz gert Die Verz gerungszeit h ngt von der L nge zwischen dem Sender und dem Empf nger ab Das
26. SCI1S8R1 amp BM_TDRE 0 SCI1DRL c Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12 Compact Staatliche Technikerschule Berlin Autor Winold Doege Mario Kallauke Goeran Liebig Datei led und usb test c Datum 2004 05 16 Funktion LED Menu ueber USB Schnittstelle include lt stdio h gt include lt string h gt include hcs12dp256 h include s12_crg h include datatypes h include s12_sci h include s12_led h include s12_ps2 h Iwarte void HC12Setup void COPCTL 0x00 initPLL void usbprintf const char s int a for a 0 s a a putSC11 s a char usbgetchar void return getSCI1 void main void char cTaste string 256 0 _HC12Setup auf 16 MHz die CPU zu takten initSCI1 51 IICPU Takt ist auf 16 MHz gestellt 19600bps Baudratenteiler Taktfrequenz 16 Baudrate Hyperterminal auf 19600bps einstellen do usbprintf n rMenue n rBitte waehlen Sie usbprintf n rLed ein 1 usbprintf n rLed aus 2 usbprintf n rLed toggle 3 cTaste usbgetchar switch cTaste case 1 led_on break case 2 led_off break case 3 led toggle break default usbprintf n rDie Taste kommt im Menue nicht vor while 1 endlos schleife Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12 Compact Staat
27. define ACLKDATA 0x03 IPJO und PJ1 Ausgang Data Eingang define ECLK OxFE PJO Eingang CLK define EDATA OxFD IIPJ1 Eingang Data define ECLKDATA OxFC IPJO und PJ1 Eingang Data Jet define SETCLK 0x01 Setze CLK high define SETDATA 0x02 Setze DATA high define SETCLKDATA 0x03 Setze und Data Reset define CLRCLK OxFE low Zdefine CLRDATA OxFD DATA gt low define CLRCLKDATA OxFC lloesche und Data define CLOCKBIT 0x01 IPJO define DATABIT 0x02 IIP J1 Zdefine CLKDAT 0x03 und PJ1 Zdefine CLOCKSHIFT 0 0 nach rechts schieben Zdefine DATASHIFT 1 1 nach rechts schieben Zdefine HIGH 1 Zdefine LOW 0 Zdefine ON 1 define OFF 0 ifndef COSMIC COMPILER define COSMIC COMPILER define ENABLE INTERRUPTS _asm cli define DISABLE INTERRUPTSY _asm sei endif ifndef__COSMIC_COMPILER Prototypen von PS2 Schnittstelle void init_ps2 void IlInitialisierung der PS2 Schnittstelle void set CLKDAT ON void Setzt Clock und Datasignal auf high void set CLKDAT OFF void Setzt Clock und Datasignal auf low void clock on void IISetzt Clocksignal auf low Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 157 void clock_off void Setzt Clocksignal auf high void data_on void Setzt Datasignal auf low void data off void IISetzt Datasignal
28. printf n r Falsche Eingabe while Spannung lt 0 Spannung gt 4 096 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 112 Spannung in 16 Bit Wert wandeln wert UINT16 Spannung 0 0000625 0 5 UN lt U ULSB 0 5 gt JI for wert 0 a 0 wert lt a lt Spannung wert a a 0 0000625 geht auch bergabe Kanal und 16 Bit Wert an DA Wandler putdac Kanal wert Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12 Compact Staatliche Technikerschule Berlin Autor Mario Kallauke Datei DA c Datum 2004 02 12 Funktion Funktionen f r den DA Wandler zinclude hcs12dp256 h include datatypes h include 612 spi h void putdac UINT8 channel UINT16 value SPIOCR1 BM_SPE BM_MSTR BM_CPHA Setup SPI Mode CPOL 0 CPHA 1 Sende Kommandos DDRH Oxf0 PTH 0x10 enable D A Wandler if channel A xferSPIO 0x10 JI DACA else xferSPI0 0x24 JI DACH Sende Daten xferSPlO value gt gt 8 Sende Bits 15 8 xferSPlO value Sende Bits 7 0 PTH 0x70 DDRH 0x00 H disable D A Wandler Projektarbeit HCS12 Compact Staatliche Technikerschule Berlin Autor Mario Kallauke Datei s12_spi c Datum 2004 02 12 Funktion Funktionen f r die SPI Schnittstelle include datatypes h zinclude hcs12dp256 h zinclu
29. 0 UINT8 y 0 for x 0 x lt delayTime x for y 0 y lt 1 y FKurz delay u erer Schleifenz hler innerer Schleifenz hler void Delay1 int delayTime UINT16 x 0 UINT8 y 0 for x 0 x lt delayTime x for 0 y 100 Lang delay u erer Schleifenz hler l innerer Schleifenz hler Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12 Compact Staatliche Technikerschule Berlin Autor Mario Kallauke Datei Keypad Lcd poll c Datum 2004 02 12 Funktion Eingabe Keypad aufs Display polling include datatypes h include hcs12dp256 h include keypad h include Lcd h void main void main zum testen von keypad poll und LCD UINT16 i 0 a 3 lcd ini do s data keypad poll i if i 16 0 if a 2 0 s_steuer 0x01 1 Zeichen 1 Zeile else s steuer 0xcO 1 Zeichen 2 Zeile att Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12 Compact Staatliche Technikerschule Berlin Autor Mario Kallauke Datei Keypad Lcd int c Datum 2004 02 12 Funktion Laufschrift l uft w hrend dessen Keypad Interrupt Eingabe auf 0x3000 include include include include include datatypes h hcs12dp256 h keypad h Lcd h delay h void main void UINT8 String Projektarbeit HCS12 Compact i
30. 163 CAN BUS 164 LCD 165 Piaport 166 Timer 167 Steckverbinder 168 Tastatur 169 USB PS 2 170 Top Layer 171 Button Layer 172 Best ckungsplan 173 24 Best ckungsplan 174 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 7 1 Vorwort Ziel unseres Projektes ist die Entwicklung der Bau und die Funktionspr fung einer Platine zur Aufnahme des HCS 12 Compactmodules Dieser neuartige 16 Bit Mikrocontroller soll im Rahmen der Lehrt tigkeit der Staatlichen Technikerschule eingesetzt werden Es ist geplant die vorhandenen HC 11 Module der Staatlichen Technikerschule schrittweise durch die entwickelte Tr gerplatine abzul sen und damit den Unterricht vor allem der Au tomatsierungsklassen noch an die Bedingungen der Industrie heranzuf hren Hierzu war es notwendig sich mit den elektrischen Anschlussbedingungen des 5 12 Moduls den mechanischen Vorgaben der vorhandenen Unterrichtsmittel sowie den teil weise v llig neuen Befehlss tzen der Assemblerprogrammierung vertraut zu machen In enger Zusammenarbeit mit unserem Projektleiter Herrn Stahl und der Elektrowerkstatt der staatlichen Technikerschule wurde bei der Projektentwicklung auch Problematiken wie Ressourcennutzung der vorhandenen elektrischen Bauteile und M glichkeiten des sp te ren effektiven Umbaus der Module umfassend angesprochen und gel st Diese Dokumentation kann nur einen kleinen Einblick in die vi
31. 2 1 0 R PPOL7 PPOL6 PPOL5 PPOL4 PPOL3 PPOL2 PPOL1 PPOLO PWMPOL RESET 0 0 0 0 0 0 0 0 d 6 5 4 3 2 1 0 V PCLK7 PCLKL6 PCLK5 PCLK4 PCLK3 PCLK2 PCLK1 PCLKO PWMCLK RESET 0 0 0 0 0 0 0 0 U 6 5 4 3 2 1 0 R 0 0 w ss PCKB2 PCKB1 PCKBO PCKA2 PCKA1 PCKAO PWMPRCLK RESET 0 0 0 0 0 0 0 0 Unimplemented or Reserved Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 67 7 6 5 4 3 2 1 0 5 7 CAE6 5 4 2 CAE1 CAEO RESET 0 0 0 0 0 0 0 0 f 6 5 4 3 2 1 0 45 CON67 CON45 CON23 CON01 PSWAI PFRZ PWMCTL RESET 0 0 0 0 0 0 0 0 Unimplemented or Reserved 7 6 5 4 3 2 1 0 5 Bit 7 6 5 4 3 2 1 Bit O PWMDTY0 RESET 1 1 1 1 1 1 1 1 Unterfunktion 2 void PWM disable void Aufgabe PWM an PPO wird abgeschalten Header PWM_Warnsignale h Funktionsaufruf PWM_disable bergabeparameter keine R ckgabeparameter keine Reccourcen PORTP PP0 Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner Bedeutung Werte Effekt PWME PWM Enable Register OXFE PWM PPO disable Registeraufbau 7 6 5 4 3 2 1 0 R 2 2 PWME7 PWME6 PWMES 4 PWME2 PWME1 PWMEO pwME RESET 0 0 0 0 0 0 0 0 Sta
32. 5 1 p PWM5 Period and Duty Counter Control nn Channel 4 gt PWM4 Period and Duty Counter Channel 3 PWM3 Enae Period and Duty Counter Polarity Channel 2 gt PWM2 Period and Duty Counter Ali La m ignment Channel gt PWM1 Period and Duty Counter Channel 0 PWM0 Period and Duty Counter gt Bild 1 Blockschaltbild PWM Modul Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 65 15 2 Funktionstest Programmfunktionen Registerbeschreibungen In unserem Funktionstest fordern wir ber das Hyperterminal zur Auswahl eines Alarmsig nals auf Ist dieses eingegeben schrillt es aus einem Lautsprecher welcher am PPO Aus gang angeschlossen ist Die Frequenzen f r die Alarmsignale werden nat rlich im PWM Modul erzeugt Quelltext PWM_test c Folgende spezielle Funktionen werden im Programm verwendet Funktion 1 void Warnsignali void Aufgabe Warnsignal 1 3 kurze T ne Header PWM Warnsignale h Funktionsaufruf Warnsignal1 bergabeparameter keine R ckgabeparameter keine Reccourcen PORTP PPO Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner Bedeutung Werte Effekt PWMPERO PWM Periodenregister PWM Periode PWMDTYO PWM Dienstregister PWM Pulsweite Regist
33. 9 0 n Unimplemented or Reserved Figure 3 3 SCI Control Register 1 SCICR1 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 35 Um den Modus einzustellen Register address _3 Unimplemented Reserved Figure 3 4 SCI Control Register 2 SCICR2 TE Transmitter Enable Bit TE enables the SCI transmitter and configures the TXD pin as being controlled by the SCI The TE bit can be used to queue an idle preamble 1 Transmitter enabled 0 Transmitter disabled RE Receiver Enable Bit RE enables the SCI receiver 1 Receiver enabled 0 Receiver disabled UINT8 getSClO void Aufgabe Ein Byte von der RS232 Schnittstelle lesen Header 512 sci h Funktionsaufruf UINT8 getSCI0 bergabeparameter Keine R ckgabeparameter Ein Byte von der RS 232 Schnittstelle Reccourcen RS 232 Port S RXDO TXDO Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner Bedeutung Effekt SCISR1 Ist etwas da Holt Wert aus SCIDRL wenn 0 sciopRL Register wo das Byte li 0x Wird ausgelesen Register address 5 4 7 8 5 4 3 2 1 0 R TORE TC RoRF oe OR w FE PF SET 0 0 Unimplemented or Reserved Figure 3 5 SCI Status Register 1 SCISR1 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grun
34. 9 0 0 0 0 _E m Unimplemented or Reserved Register address _7 7 8 4 3 2 1 o LE LR 1 m5 LS L i EH mom poe nnam T2 0 kal Unimplemented or Reserved Figure 3 7 SCI Data Registers SCIDRH L void putSCI1 UINT8 Aufgabe Ein Byte zur RS232 Schnittstelle schicken Header 512 sci h Funktionsaufruf putSCI1 UINT8 bergabeparameter Ein Byte was auf der USB Schnittstelle gesendet wird R ckgabeparameter Keine Reccourcen USB Port S RXD1 TXD1 Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner Bedeutung Werte Effekt SCISR1 Ist das vorherige Byte Schreibt Wert in das SCIDRL schon weg wenn O Register wo das Byte SCIDRL hi 0x Wird geschrieben ingeschrieben wird Register address 5 4 5 3 0 LR pee Toe pes TETUR TIE TET BE weg vm 5 Il 1 7 Unimplemented or Reserved Figure 3 5 SCI Status Register 1 SCISR1 Register address _6 F 6 en F 1 Unimplemented or Reserved Register address _7 Unimplemented or Reserved Figure 3 7 SCI Data Registers SCIDRH L Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 45 11 Timer 11 1 Allgemeines Das Timerport PORTT des HC S 12 kann f r verschiedene Timerfunktionen genutzt wer den z B als Recheck und oder Sinusg
35. AD PAD08 X5 PAD08 nein frei AD PAD09 X5 PAD09 nein frei AD PAD10 X5 PAD10 nein frei AD PAD11 X5 PAD11 nein frei AD PAD12 X5 PAD12 nein frei AD PAD13 X5 PAD13 nein frei AD PAD14 X5 PAD14 nein frei AD PAD15 X5 PAD15 nein frei Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 15 6 Das S12 Compact Board 6 1 berblick S12compact S12compact ist eine leistungsf hige Controllerbaugruppe im kompakten Halbeuro Format auf Basis der 16 Bit Mikrocontrollerfamilie HCS12 von Motorola Das S12compact Modul erleichtert die Implementierung von umfangreichen Controlleranwendungen wie z B Da tenloggerapplikationen Auf dem S12compact kommt eine leistungsstarke MCU vom Typ MC9S12DG256 zum Einsatz Dieser Mikrocontroller enth lt die 16 Bit HCS12 CPU 256KB Flash 12KB RAM 4KB EEPROM und eine gro e Menge integrierter Peripheriefunktionen wie SCI SPI CAN IIC Timer PWM ADC und Input Output Kan le Der MC9S12DG256 ist vollst ndig mit 16 Bit breiten internen Datenpfaden ausgestattet Die integrierte PLL Schaltung erm glicht es Performance und Strombedarf auf einfache Weise den jeweiligen Anforderungen anzupassen Zus tzlich zu den integrierten Controllerfunktionen bietet das S12compact Modul einige interessante Peripherieoptionen Dazu z hlen ein 16 Bit D A Wandler nebst Pr zisions Spannungsreferenz eine batteriegepufferte Echtzeituhr RTC und ein USB Interface Die f r die HCS12
36. Augenmerk muss auf die Entkopplung des VDDA Pfades gelegt werden da der interne Spannungsregler aus dieser Spannung seinen Referenzwert VDDA 2 ableitet Die interne 2 5 Volt Corespannung wird an mehreren Stellen nach au en gef hrt um sie dort ebenfalls entkoppeln zu k nnen Hierzu sind den Anschlusspaaren VDD1 VSS 1 VDD2 VSS2 sowie VDDPLL VSSPLL weitere Keramikkapazit ten vorgesehen C19 C20 C21 Eine statische Belastung der internen Betriebsspannung durch externe Schaltungs komponenten ist nicht statthaft Das gilt grunds tzlich auch f r VDDPLL die als Referenz punkt f r die extern angeschlossene PLL Filterkombination R3 C3 C4 dient In die Do m ne der Versorgungsspannungen f llt auch die Referenzspannung f r die integrierten Analog Digital Wandler Die untere Referenzspannungsgrenze wird ber den Anschluss VRL festgelegt welcher hier wie meist blich auf Massepotential liegt Die obere Refe renzspannung VRH ist ber die L tbr cke BR1 mit VDDA verbunden C18 dient hier zur Entkopplung Um die Aufl sung der internen 10 Bit A D Wandler voll auszusch pfen kann eine externe Referenzspannung eingespeist werden In diesem Fall ist BR1 zu ffnen VRH darf jedoch VDDA niemals bersteigen Der TEST Pin wird nur werkseitig bei Motorola verwendet in Anwenderschaltungen ist dieser Pin stets mit dem Massepotential zu verbin den Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact G
37. Controller erh ltliche umfassende Softwareunterst tzung Monitor C Compiler BDM Debugger erleichtert die Entwicklung von Embedded Systemen jeglicher Art 6 2 Technische Daten MC9S12DG256 im LQFP112 Package SMD HCS12 16 Bit CPU Programmiermodell und Befehlssatz wie beim HC12 16 MHz Quarztakt bis zu 25 MHz Bustakt ber PLL 256KB Flash 4KB EEPROM 12KB RAM 2x SCI asynch serial Interface z B RS232 LIN 3x SPI synch serial Interface 1x IIC Inter IC Bus 2x msCAN Module CAN 2 0A B kompatibel 8x 16 Bit Timer Input Capture Output Compare 8x PWM Pulse Width Modulator 16 Kanal 10 Bit A D Wandler BDM Background Debug Mode Schnittstelle Spezieller LVI Schaltkreis Reset Controller BDM Anschluss f r Download und Debugging Serielles Interface mit 5232 z B f r PC Verbindung Zweiter serieller Port f r IF Module RS232 RS485 LIN Indikator LED Akustischer Signalgeber High Speed phys CAN Interface Resettaster bis zu 70 freie Ein Ausgabeleitungen acht zus tzliche digitale Eing nge acht zus tzliche digitale Ausg nge Betriebsspannung 5V Typ Stromaufnahme ca 70 mA Abmessungen 80mm x 100mm Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 16 Vorhandene Optionale Komponenten e batteriegepufferte Echtzeituhr e DAC 2 Kanal 16 Bit D A Wandler 4096mV e USB Full speed USB2 0 Interface belegt zweiten
38. DDRJ t r von PJO und PJ1 auf Ausgang PTJ PortJ Register OxFC Setzt Clock und Datasignal auf low void clock on void Aufgabe Setzt Clocksignal auf high Header 512 ps2 h Funktionsaufruf clock on bergabeparameter keine R ckgabeparameter keine Reccourcen keine Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner Bedeutung Werte Effekt Data Diretion Regis DDRJ ter von Port J PJ0 auf Ausgang PTJ PortJ Register 0x01 Setzt Clocksignal auf high void clock_off void Aufgabe Setzt Clocksignal auf low Header s12_ps2 h Funktionsaufruf clock off bergabeparameter keine R ckgabeparameter keine Reccourcen keine Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 29 Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner Bedeutung Werte Effekt Data Diretion Regis DDRJ ier von Boit J PJO auf Ausgang PTJ PortJ Register OxFE Setzt Clocksignal auf low void data on void Aufgabe Setzt Datasignal auf high Header 512 ps2 h Funktionsaufruf data on bergabeparameter keine R ckgabeparameter keine Reccourcen keine Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner Bedeutung We
39. HyperTerminal Datei Bearbeiten Ansicht Anrufen bertragung Da 55 AB Wenn man jetzt den S12compact neu startet bzw ein 2 Reset ausl st kommt diese Meldung Copyright 1996 2002 Motorola Semiconductor For Commands type Help Verbunden 00 00 36 ANSIW 9600 8 N 1 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 34 9 2 Programmfunktionen Die RS232 Schnittstelle und die dazugeh rigen Funktionen Eine bersicht des Aufbaues befindet sich am Ende von 9 2 void initSCIO UINT16 bauddiv Aufgabe Initialisierung der SCI Schnittstelle Header 512 sci h Funktionsaufruf initSCIO UINT16 bauddiv bergabeparameter Baudratenteiler Taktfrequenz 16 Baudrate R ckgabeparameter Keine Reccourcen RS 232 Port S RXDO TXDO Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner Bedeutung Werte Effekt SCIBD Bauddiv amp 0x1fff Initialisierung der Baudrate Ein und Ausgang SCICR2 normal kein Inter OxOC Sender Empf nger einstellen rupt Registeraufbau BASIS Adresse ist 0xC8 Register address 5 0 RESET Register address 1 7 6 en tw 2 A RESET 0 9 D 0 0 1 0 0 Unimplemented Reserved Figure 3 2 SCI Baud Rate Registers SCI BDH L 13 Bit f r die Baudraten Einstellung Register address 5 2 8 0 RESET
40. Output Compare Funktion des Timersystems 19 2 Funktionstest Programmfunktionen Registerbeschreibungen Das folgende Beispiel demonstriert wie eine Interruptgesteuerte Output Compare Funktion eingesetzt werden kann um Tonfrequenzen Polizeisirene zu erzeugen Quelltext freqout test c Funktion 1 void freqout void Aufgabe In dieser Funktion wird die Polizeisirene erzeugt Header freqout h Funktionsaufruf freqout bergabeparameter R ckgabeparameter keine Reccourcen PortP PT2 Aufgerufene Unterfunktionen Unterfunktion 1 void delay16 UINT 16 i Aufgabe Integerwert wird runtergez hlt Header delay h Funktionsaufruf delay bergabeparameter Integerwert 0 OxFFFF R ckgabeparameter keine Unterfunktion 2 void initFreqOut void Aufgabe Initialisierung des Timers Header freqout h Funktionsaufruf initFreqOut bergabeparameter R ckgabeparameter keine Reccourcen PortP PT2 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 103 Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner Bedeutung Werte Effekt TSCR1 Timer System 0x0a make sure timer is enabled Control Register 1 Timer System Tm TSCR2 Control Register 2 0x04 prescaler 2 4 16 Ti
41. P 0x0201 define CAN3BTRO _ 0 0202 define CAN3BTRI _P 0x0203 define CAN3RFLG _P 0x0204 define CAN3RIER _ 0 0205 define CAN3TFLG _P 0x0206 define CAN3TIER _P 0x0207 define CAN3TARQ _P 0x0208 define CAN3TAAK _P 0x0209 define CAN3TBSEL _P 0x020A define CAN3IDC _P 0x020B H define Reserved 0 020 H define Reserved 0 020 define CAN3RXERR _P 0x020E define CAN3TXERR 0 020 define CAN3IDAR0 P 0x0210 define CANSIDAR1 _P 0x021 1 define 2 _P 0x0212 define _P 0x0213 define CAN3IDMRO _P 0x0214 define CANSIDMR1 _P 0x0215 define CAN3IDMR2 _P 0x0216 define CAN3IDMR3 P 0x0217 define CAN3IDAR4 _P 0x0218 define CAN3IDAR5 _ 0 0219 define CAN3IDAR6 _P 0x021A define CAN3IDAR7 _P 0x021B define CAN3IDMR4 _P 0x021C define CANSIDMR5S _P 0x021D define CAN3IDMR6 _P 0x021E define CAN3IDMR7 P 0x021F define CAN3RXFG _ADDR 0x0220 define CAN3TXFG _ADDR 0x0230 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 149 define PTT define PTIT define DDRT define RDRT define PERT define PPST _P 0x0240 _P 0x0241 _P 0x0242 _ 0 0243 P 0x0244 P 0x0245 define Reserved 0 0246 define Reserved 0 0247 define PTS define PTIS define DDRS define RDRS define PERS define PPSS define WOMS _P 0x0248 _P 0x0249 _P 0x024A _
42. Polling Betrieb wird DA regelm ig abgefragt Au erdem kann DA als Eingang f r einen Interrupt benutzt werden Folgende Tastencodes liegen bei Bet tigung der Tasten an Taste 0111213 45 617 89 AJB CIDIEIF Code 9 817 6151413121110 Diese Codes werden einer Funktion in den dazugeh rigen Tastewert gewandelt 16 2 Funktionstest Programmfunktionen Registerbeschreibungen F r das Keypad Modul f hrten wir zwei Funktionstests durch Einmal im Polling Betrieb wo st ndig das DA Bit abgefragt wird und einmal im Interruptbetrieb wo bei einer Tasten bet tigung ein Interrupt ausgel st wird Der Interruptbetrieb hat gegen ber dem Pollingbe trieb zum Vorteil dass keine Rechenzeit der CPU gebunden wird es kann nach Priorit ten geordnet werden und mehrere Programme k nnen quasi gleichzeitig ablaufen Der Pol lingbetrieb ist dagegen einfacher zu programmieren Im 1 Beispiel wird das Keypad im Pollingbetrieb verwendet Das Keypad wird abgefragt und bei Bet tigung einer Taste wird der Wert auf dem LCD Display ausgegeben Quelltext Keypad Lcd poll c Folgende spezielle Funktionen werden im Programm verwendet Funktion 1 UINT8 keypad poll void fragt Keypad im Pollingbetrieb ab und liefert als R ckgabewert den 06 fertig gewandelten Tastencode Header keypad h Funktionsaufruf keypad_poll
43. S 7 Unimplemented Reserved Figure 3 7 SCI Data Registers SCIDRH L Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 37 SCI Data Register Receive Shift Registe Bus Clk Receive amp Wake Up Control BAUD Generato IRQ To CPU IRQ Gene ration TXData Out Blockschaltbild der SCI Schnittstelle Use Ac SCI Baud Rate Register High SCIBDH SCI Baud Rate Register Low SCIBDL SCI Control Register1 SCICR1 SCI Status Register 1 SCISR1 SCI Status Register 2 SCISR2 SCI Data Register High SCIDRH SCI Data Register Low SCIDRL BASIS Adresse ist 0xC8 f r SCI 0 und OxDO f r SCI 1 SCI Control Register 2 SCICR2 Register Quick Reference Register name 6 5 Bito Addr 4 3 2 1 0 o o SCIBDH SBR12 SBR11 SBR10 SBR9 SBR8 0 Write s Read SCIBDL Write SBR7 SBR6 SBR5 SBR4 SBR3 SBR2 SBR1 SBRO 1 Read SCICR1 Write LOOPS SCISWAI WAKE ILT PT 2 Write MEN Read TORE TC RORF DIE OR nF T FE Pr GE DEER EE EES SCISR2 Read o 0 o o I 0 BRK13 TXDIR 55 write 0 1 SCIDRH Reed RB 75 0 0 J o co 0 write H EE E SCIDRL R7 Re RS R F Write Reserved or unimplemented Staatliche Technikerschule Berlin Doege Liebig Kal
44. Signalgeber SP1 wird durch den Buffer IC6D getrieben und wird von der MCU ber den Portpin PT2 angesteuert es sei denn die L tbr cke BR3 ist offen PT2 ist mit einem der acht Timerkan le der MCU verbunden Dies erm glicht die Frequenzerzeugung mit Hilfe der Output Compare Funktion des Timersystems 6 3 8 RS232 Interface Der MC9S12DG256 verf gt ber zwei asynchrone Schnittstellen SCIO SCI1 Jede dieser Schnittstellen umfasst zwei Signalleitungen RXDx TXDx Handshakeleitungen sind nicht Bestandteil der SCI Module des Controllers sie sind durch Einbeziehung zus tzlicher Ports zu realisieren SCIO dient auf dem S12compact als RS232 Interface F r diese Schnittstelle k nnen auf dem Modul die Ports PM2 und PM3 als Handshakesignale einge setzt werden Diese Portsignale lassen sich ber die L tbr cken BR7 und BR5 mit dem RS232 Pegelwandler IC3 verbinden Ebenso sind die Signalleitungen RXDO und TXDO ber Br cken BR6 mit IC3 verbunden ffnet man diese L tbr cken k nnen die Controllersignale anderweitig verwendet werden Sie werden dazu am Steckverbinder X5 bereitgestellt Der RS232 Anschlu erfolgt ber X2 Dieser Steckverbinder ist so gestaltet dass durch ein Flachbandkabel mit angecrimpter Sub D9 Buchse eine direkte Verbindung zu einem PC COM Port hergestellt werden kann 6 3 9 USB Interface IC15 ist ein USB UART vom FT232BM Er realisiert die bidirektionale transparente Umsetzung einer asynchrone
45. Technikerschule Berlin Autor Mario Kallauke Datei Piaport c Datum 2004 02 12 Funktion Lauflicht Piaport void main void unsigned char i A B long zeit DDRA Oxff Port A All Output DDRB 0xff Port B All Output do 0 80 erste LED Port A 0 01 letzte LED Port B for i 0 lt 8 i PORTA A PORTB B A A gt gt 1 LED shiften B B lt lt 1 LED shiften for zeit 50000 zeit gt 0 zeit Zeitschleife while 1 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12 Compact Staatliche Technikerschule Berlin Autor Mario Kallauke Datei vectors c Datum 2004 04 03 Funktion Interrupt Vektortabelle Interruptserviceroutinen I 2 2 2 2 2 22 222222222222222222222 2222322222222 22222222022 include keypad h Keypad Interruptserviceroutine include freqout h Timer 2 zinclude msCANO h 0 include msCANA h II Can4 extern void _stext startup routine Vektortabelle Startadresse ff8 void const VectorTable Dummy_ISR reserviert Dummy ISR reserviert Dummy ISR reserviert Dummy ISR reserviert Dummy ISR reserviert Dummy ISR reserviert Dummy ISR JI PWM Emergency Shutdown Port P ISR Port P Dummy ISR I CAN
46. X close Configure Exit Configure current device Configuration Data Handshaking Special Chars BaudRate 115200 w Flow Control None E XON 11 Data Bits 8 bits XOFF 13 Stop Bits 1 pit ATSV Party None v DIRW P Timeouts Events RX mska _ FILEVENTLASCHR FT_EVENT_MODEM_STAT DK Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 42 10 4 Programmfunktionen Die USB Schnittstelle und die dazugeh rigen Funktionen void initSCI1 UINT16 bauddiv Aufgabe Initialisierung der Schnittstelle Header 512 sci h Funktionsaufruf initSCI1 UINT16 bauddiv bergabeparameter Baudratenteiler R ckgabeparameter Keine Reccourcen USB Port S RXD1 TXD1 Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner Bedeutung Werte Effekt bauddiv amp PS SCIBD Initialisierung der Baudrate SCICR1 0 gt 8N1 Ein und Ausgang SCICR2 normal kein Inter 0x0C Transmitter Receiver aktiv rupt Registeraufbau BASIS Adresse ist 0xC8 Register address _0 RESET 0 0 Register address 5 1 Unimplemented or Reserved Figure 3 2 SCI Baud Rate Registers SCI BDH L 13 Bit f r die Baudraten Einstellung Register address 5 2 Unimplemented Reserved Figure 3 3 SCI Control Register 1 SCICR1 Um
47. auf 19600bps einstellen do printf c c 0x06 0x0c Bildschirm loeschen printf n rMenuel n rBitte waehlen Sie printf n rLed ein 1 printf n rLed aus 2 printf n rLed toggle 3 cTaste getchar switch cTaste case 1 led ont break case 2 led off break case 3 led toggle break default printf n rDie Taste c kommt im menue nicht vor cTaste warte 2000000 while 1 endlos schleife Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12 Compact Staatliche Technikerschule Berlin Autor en Winold Doege Mario Kallauke G ran Liebig Datei s12_sci h Datum 2004 05 10 Funktion Initialisierung der SCIO RS232 und SCI1 USB Das Holen und Senden von Bytes ifndef 512 512 SCI define BM LOOPS 0x80 define BM SCISWAI 0x40 define BM RSRC define BM M 0x10 define BM WAKE define BM ILT 0x04 define BM PE 0x02 define BM PT 0x01 define BM TIE define BM TCIE define BM HIE define BM define BM TE 0x08 define BM RE 0x04 define BM RWU define BM SBK define BM TDRE define BM TC 0x40 define BM RDRF define BM IDLE define BM OR define BM NF 0x04 define BM FE 0x02 define BM PF 0x01 define BM SBK13 0x04 define BM TXDIR 0x02 define BM RAF Prototypen void initSCIO UINT16 bauddiv UINT8 getSClO void void putSCIO UINT8 vo
48. auf high void set clock UINT8 Bit Setzt je nach Bit Clocksignal void set data UINTS Bit Setzt je nach Bit Datasignal int read clock void Lese Clocksignal int read data void Lese Datasignal interrupt void kb isr void Interrupt Routine void warte volatile unsigned long wert Verzogerung um dem Wert x unsigned char kb out void Lesen eines Bytes aus der Tastatur void kb in UINT8 byte Ischreiben eines Bytes in die Tastatur unsigned char scancode ascii unsigned char code Scancode Zeichen gt ASCII Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12 Compact Staatliche Technikerschule Berlin Autor en Winold Doege Mario Kallauke G ran Liebig Datei s12_ps2 c Datum 2004 05 16 Funktion PS2 an S12Compact anschliessen include lt stdio h gt include s12_ps2 h include hcs12dp256 h include datatypes h void init_ps2 void DISABLE INTERRUPTSY DDRJ amp EDATA PIEJ SETDATA ENABLE INTERRUPTSY void set CLKDAT ON void DDRJ ACLKDATA PTJ SETCLKDATA void set CLKDAT OFF void DDRJ ACLKDATA PTJ amp CLRCLKDATA void clock on void DDRJ ACLK PTJ SETCLK void clock off void DDRJ ACLK PTJ amp CLRCLK void data_on void DDRJ ADATA PTJ SETDATA void data off void DDRJ PTJ amp void set clock UINT8 Bit if Bit
49. des Timer Overflow Flags wird ein Interrupt ausgel st TCRE Timer Counter Reset Enable Wenn dieses Bit gesetzt wird wird nach einem Output Compare am Timerkanal 7 der Ti mer Counter auf 0 zur ckgestellt Ben tigt wird diese Funktion vor allem f r die Pulswei tenmodulation Wenn TC7 auf 0x0000 und TCRE auf 1 gesetzt ist bleibt der Timer Coun ter immer auf 0x0000 stehen Ist auf OXFFFF und auf 1 gesetzt z hlt der Counter immer von 0x0000 bis OxFFFF aber das Timer Overflow Flag wird nie gesetzt werden 0 Counter Reset Funktion ist deaktiviert der Timer z hlt immer bis zum Maximal wert 1 Counter Reset nach Output Compare an Kanal 7 PR2 PR1 PRO Timer Presca ler select ber diese drei Bits wird der Vorteiler Divisor des Timer Count Registers festge legt Die m glichen Konfiguration sind in der folgenden Tabelle aufgelistet Pro PRI PRO Preseale Factor Der Vorteiler ist von 1 bis 128 einstellbar TSCR2 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 54 TFLG1 Timer Interrupt Flag 1 Die Bits im Interrupt Flag Register werden gesetzt wenn sich an dem zum entsprechenden Bit geh renden Kanal eine Interruptbedingung erf llt hat das Eintreffen der im TCTL3 4 festgelegten Flanke oder ein Output Compare Um das Flag zu l schen muss eine 1 in das entsprechende Bit geschrieben werden das Schreiben einer 0 hat keine Auswirkun g
50. eine Ansteuerung mit 4Bit entschieden haben Neben den vier Datenleitungen DB4 DB5 DB6 und DB7 werden noch die Anschl sse RS RW und E ben tigt ber RS wird ausgew hlt ob man einen Befehl oder ein Datenbyte an das LCD schicken m chte Ist RS Low dann wird das ankommende Byte als Befehl interpretiert ist RS High dann wird das Byte auf dem LCD angezeigt RW legt fest ob geschrieben oder gelesen werden soll High bedeutet lesen Low bedeutet schreiben Wenn man RW auf lesen einstellt und RS auf Befehl dann kann man das Busy Flag lesen das anzeigt ob das LCD den vorhergehenden Befehl fertig verarbeitetet hat Ist RS auf Daten eingestellt dann kann man z B den Inhalt des Displays lesen LCD Steuerung o ScwebenmsStuemegsteriR 0 LeseBusyFlagundAdressziher O Schreiben ins Datenregister und Display Data RAM Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 75 Power on Wait for than 15 ms after Voc rises to 4 5 V RS RAN DB7 DB6 085 DB4 0 0 0 0 51 1 Wait for more than 4 1 ms RS R W DB7 DB6 DB5 DB4 gU 0 9 0 4 1 Wait for more than 100 us RS RAW D I DB6 DB5 DB4 E NE NE RS RAW D I DB6 D85 DB4 0 0 Initialization ends Wait for more than 40 ms after Vcc rises to 2 7 V Function set Interface is 8 bits long BF cannot be checked before this instruction Function set Inte
51. gesetzt so gibt der IC die Information 4 Bit auf den Bus In unserer Anwendung wurde der Chip st ndig aktiviert lowaktives OE auf Masse 6 5 8 USB PS 2 Hier erfolgte nur eine Anpassung der USB Schnittstelle des HCS 12 an eine Standard USB Buchse Die PS 2 Schnittstelle erhielt ebenfalls zwei Porteing nge und zwei Pulldown Widerst nde zur Erkennungsm glichkeit f r den Anschluss der Tastatur Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 25 7 Der Einstieg 7 1 Blink 1 Das erste Programm F r das allererste Mikroconrollerprogramm ist es sinnvoll einen Ausgabekanal zu verwen den der auf Anhieb funktioniert Ohne langes Nachdenken ber die richtigen Initialisierungsschritte Was w re da geeigneter als eine Leuchtdiode Auf dem Mikrocontrollerboard HCS12 Compact ist eine solche Leuchtdiode vorhanden Sie ist an der Leitung PORTE 7 des Mikrocontrollers angeschlossen d h am obersten Bit des Port E In unserem Funktionstest lassen wir diese LED blinken und verwenden daf r das folgende Testprogramm blink1 c Projektarbeit HCS12 Compact Staatliche Technikerschule Berlin Autor en Mario Kallauke G ran Liebig Winold Doege Datei BLINKl c Datum 2004 02 12 Funktion LED auf s12Compact blinken lassen finclude hcs12dp256 h void delay void unsigned long n 200000 while n
52. k nnen geringe unterschiedliche L ngen einer Bitzeit von einer Sende und Empfangsstation ausgeglichen werden Die Synchronisationssprungweite kann im Bereich von 1 und 4 Time Quanta eingestellt werden Alle oben erw hnten Parameter werden in den msCAN Bustimingregistern CANBTRO und CANBTRI definiert Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 87 X CAN Bussignal Positiver Phasenfehler e gt 0 Bitl nge beim Empf nger Knoten B Bitl nge beim Empf nger sync veer ses synchronisiert Knoten B Negativer Phasenfehler e lt 0 Bitl nge beim Empf nger Knoten B Bitl nge beim Empf nger synchronisiert Knoten B PS1 Phasensegment 1 PS2 Phasensegment 2 SYNC Synchronisationssegment PROP_SEG Verz gerungssegment Bild 3 Beispiel f r die Synchronisation bei positiven und negativen Phasenfehlern Oszillator oder CAN bd SYNC PROP SEG Bitzeiten Bustakt Baud raten Vorteiler CAN L S n El Abtastzeitpunkte Bild 4 Zusammenhang zwischen Systemtakt CAN Takt und CAN Bitzeiten Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 88 18 7 Bestimmung der Bustiming Parameter Ein CAN Bus kann auf beliebige Baudraten konfiguriert werden Ein CAN Controller kann bei der Konfiguration die Baudrate jedoch nicht direkt entgegennehmen die erforderliche Ei
53. kann durch eine externe Referenzspannungs quelle ersetzt werden kann wenn zuvor BR9 aufgetrennt wird Auswirkung auch auf den Der Lastwiderstand an den Ausg ngen sollte 2kOhm nicht unterschreiten Beim Einschalten der Betriebsspannung wird die Ausgangsspannung der beiden DAC Kan le im IC auf OV zur ckgesetzt Der DAC wird wie auch ADC und die Zusatz 1 Os ber SPIO angesteuert SPICS1 dient das Chipselectsignal f r den DAC Die Ausgangssignale VOUTA und VOUTB sind am Steckverbinder X4 verf gbar 6 3 11 CAN Interface Der MC9S12DG256 verf gt ber zwei CAN Module die mit CANO und CANA bezeichnet werden CANO kommuniziert ber die Portpins PMO und PM1 mit einem on board CAN Interface Chip IC5 welcher das physische Businterface bildet Die CAN Bussignale CANH und CANL sind dann an X4 63 und X4 64 abzugreifen Wenn der S12compact der letzte Knoten am CAN Bus ist wird eine Terminierung erforderlich Sie kann durch Schlie der L tbr cke BR2 aktiviert werden Das Businterface f r ist nicht auf dem S12compakct realisiert es muss ggf extern in der Anwenderschaltung realisiert werden Die TTL Signale f r CAN4 werden ber die Portpins PJ6 und PJ7 geleitet Hierbei ergibt sich eine berschneidung mit der IIC Funktion Wenn beide Funktionen und CANA genutzt werden sollen kann man CANA mittels MODRR auf PM4 5 oder PM6 7 umleiten allerdings mit Einschr nkungen der Nutzbarkeit des IF Anschl
54. zeigt an dass sich IC15 im Suspend Mode befindet ber Controllerpin PM5 kann der Zustand dieses Signals ausgewertet wer den Soll durch ein Systemreset auch der USB UART zur ckgesetzt werden ist BR11 zu schlie en Ein Systemreset bedeutet in diesem Fall stets eine zeitwei se Abkopplung des USB Device vom Bus mit nachfolgender Re Enumeration Im Default zustand ist BR11 offen dennoch ist ein korrektes Power On Reset des USB UART ge w hrleistet Der serielle EEPROM 1C16 kann Konfigurationsdaten f r den USB UART ent halten er ist jedoch im Lieferzustand gel scht Der USB UART antwortet dann auf einen Descriptor Request mit seinen Standarddescriptoren User Descriptoren VID PID Strings Seriennummern etc k nnen im EEPROM mit Hilfe eines PC basierten Utility Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 20 Programms abgelegt werden Die Programmierung erfolgt in circuit via USB Hinweis Ist die USB Option best ckt steht der IF Modul Anschluss X3 nicht mehr zur Verf gung 6 3 10 D A Wandler DAC Der 16 Bit D A Wandler 12 ist einen weitere Schaltungsoption des S12compact Zum Einsatz kommt ein DAC8532 von Burr Brown Dieser Baustein bietet zwei Kan le deren Ausgangsspannungen VOUTA und VOUTB sowohl nacheinander als auch gleichzeitig ak tualisiert werden k nnen IC10 liefert die Referenzspannung 4 096V welche die obere Ausgangsspannungsgrenze vorgibt Sie
55. 0 024 _P 0x024C _P 0x024D _P 0x024E H define Reserved _P Ox024F define PTM define PTIM define DDRM define RDRM define PERM define PPSM define WOMM _P 0x0250 _P 0x0251 _P 0x0252 _P 0x0253 _P 0x0254 _P 0x0255 _P 0x0256 define Reserved _P 0x0257 define PTP define PTIP define DDRP define RDRP define PERP define PPSP define PIEP define PIFP define PTH define PTIH define DDRH define RDRH define PERH define PPSH define PIEH define PIFH define PTJ define PTIJ define DDRJ define RDRJ define PERJ define PPSJ define PIEJ define PIFJ _P 0x0258 _P 0x0259 _P 0x025A _P 0x025B _P 0x025C _P 0x025D _P 0x025E _P 0x025F _P 0x0260 _P 0x0261 _P 0x0262 _P 0x0263 _P 0x0264 _P 0x0265 _P 0x0266 _P 0x0267 _P 0x0268 _P 0x0269 _P 0x026A _P 0x026B _P 0x026C _P 0x026D _P 0x026E _P 0x026F H define Reserved _P 0x0270 0x027F define CANACTLO P 0x0280 define CANACTL1 P 0x0281 define CANABTRO _P 0x0282 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 150 define CANABTR1 _P 0x0283 define CANARFLG _P 0x0284 define CAN4RIER _P 0x0285 define CANATFLG _P 0x0286 define CANATIER __P 0x0287 define CANATARQ _P 0x0288 define CANATAAK _P 0x0289 define CANATBSEL _P 0x028A define CANAIDAC _P 0x028B H define Reserved 0 028 H define Rese
56. 107 define Reserved for Factory Test P 0x0108 define Reserved for Factory Test 0 0109 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 145 define Reserved for Factory Test _P 0x010A define Reserved for Factory Test P 0x010B define Reserved P define Reserved P define Reserved P define Reserved P 0x010C 0x010D 0x010E 0x010F define ECLKDIV _P 0x0110 define Reserved _P 0x0111 define Reserved for Factory Test _P 0x0112 define ECNFG _P 0x0113 define EPROT _ 0 0114 define ESTAT _P 0x0115 define ECMD P 0x0116 define Reserved for Factory Test _P 0x0117 define Reserved for Factory Test _P 0x0118 define Reserved for Factory Test _P 0x0119 define Reserved for Factory Test _P 0x011A define Reserved for Factory Test _P 0x011B 0x011C 0x011D 0x011E 0x011F define Reserved P define Reserved P define Reserved P define Reserved P define ATD1CTLO _P 0x0120 define ATD1CTL1 _P 0x0121 define ATD1CTL2 _P 0x0122 define ATD1CTL3 _P 0x0123 define ATD1CTL4 _P 0x0124 define ATD1CTL5 _P 0x0125 define ATD1STATO _P 0x0126 define ATD1STAT1 _P 0x0127 define ATD1TEST0 0 0128 define ATD1TEST1 _P 0x0129 define Reserved _P 0x012A define Reserved _P 0x012B define Reserved _P 0x012C
57. 2 Unterfunktion 3 Unterfunktion 4 void PWM__ini void void PWM_disable void void Delay0 int delayTime void Delay1 int delayTime Siehe PWM Warnsignale 1 Funktion3 void Warnsignal3 void Aufgabe Warnsignal 3 3 mal Telefon Header PWM Warnsignale h Funktionsaufruf Warnsignal3 bergabeparameter keine R ckgabeparameter keine Reccourcen PORTP PPO Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner Bedeutung Werte Effekt PWMPERO PWM Periodenregister PWM Periode PWMDTYO PWM Dienstregister PWM Pulsweite Registeraufbau 7 6 5 4 3 2 1 0 5 Bit 7 6 5 4 3 2 1 Bit O PWMPERO RESET 1 1 1 1 1 1 1 1 6 5 4 3 2 1 0 R w Bit 7 6 5 4 3 2 1 Bit 0 PWMDTY0 RESET 1 1 1 1 1 1 1 1 Aufgerufene Unterfunktionen Unterfunktion 1 void PWM ini void Unterfunktion 2 void PWM disable void Unterfunktion 4 void Delay1 int delayTime Siehe PWM Warnsignale 1 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 70 16 Keypad 16 1 Allgemeines Das Keypad 16 Tasten Hexadezimal RAFI besitzt au er der Spannungsversorgung 5 Anschl sse DA DATA available zeigt den Status des Keypads an 0 bedeutet keine Tas te bet tigt 1 bedeutet Taste bet tigt Die Daten an den Pins 1 4 sind nur g ltig wenn DA eine 1 anzeigt Im
58. 3 Adobe Idea12 2 10f amp 2 11g Cosmic Zap SIM 6812 3 71a Cosmic Zap BDM 6812 3 72 PCAN View 2 42 4 0 Peak System Technik OC Console Terminalprogramm D2xxAPP 1 0 FTDI Ltd 9512 Unsecure Prog 1 04 P amp E Microcomputer Systems Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 11 5 Die MCU vom MC9S12DG256 5 1 MC9S12DG256 Auf dem S12compact kommt eine leistungsstarke MCU vom MC9S12DG256 zum Ein satz Dieser Mikrocontroller enth lt die 16 Bit HCS12 CPU 256KB Flash 12KB RAM 4KB EEPROM und eine Menge integrierter Peripheriefunktionen wie SCI SPI CAN IIC Timer PWM ADC und Input Output Kan le Der MC9S12DG256 ist vollst ndig mit 16 Bit breiten internen Datenpfaden ausgestattet Die integrierte PLL Schaltung ermoglicht es Performance und Strombedarf auf einfache Weise den jeweiligen Anforderungen anzupas sen V reg 5V to 2 5V E 16 key Wakeup IRQ Ports Internal Bus Bild 1 MC9S12DG256 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 12 5 2 Portbelegung Die CPU hat diverse Input und Output Anschl sse siehe Blockschaltbild Port Integration Module hel nterrupt Logic 1 Port S B qm L z mh rout SE Port E AA A h b A RD RR KDM P L ADDRT11 DATA11 SL
59. 4 symbol U break case Ox5b symbol break case Ox1c symbol A break case 0x1b symbol S break case 0x23 symbol D break case 0x2b symbol F break case 0x34 symbol G break case 0x33 symbol H break case 0x3b symbol J break case 0x42 symbol K break case 0x4b symbol L break case 0x4c symbol break case 0x52 symbol break case 0x5d symbol break case 0x13 symbol lt break case Ox1a symbol break case 0x22 symbol X break case 0x21 symbol C break case 2 symbol V break case 0x32 symbol B break case 0x31 symbol 7 N break case 0x3a symbol M break case Ox41 symbol break case 0 49 symbol break case 4 symbol break case 0x6c symbol 7 break case Ox6b symbol 7 4 break case 0x69 symbol 1 break case 0x77 symbol break case 0x75 symbol 8 break case 0x73 symbol 5 break case 0x72 symbol 2 break case 0x70 symbol 0 break case 0x7e symbol break case 0x7d symbol 9 break case Ox74 symbol 6 break case symbol 3 break case 0x84 symbol break case 0x61 symbol break case 0x79 symbol break case 0x7b symbol break case 0x7c symbol 5 break case 0x71 symbol break default break Staatlich
60. 4 senden CANA Receive JI CAN 4 empfangen Dummy ISR JI CAN 4 Fehlerbehandlung Dummy ISR II CAN 4 wakeup Dummy ISR I CAN senden Dummy ISR II CAN empfangen Dummy ISR CAN Fehlerbehandlung Dummy ISR JI CAN wakeup Dummy ISR I CAN 2 senden Dummy ISR II CAN 2 empfangen Dummy ISR II CAN 2 Fehlerbehandlung Dummy ISR JI CAN 2 wakeup Dummy ISR I CAN 1 senden Dummy ISR II CAN 1 empfangen Dummy ISR CAN 1 Fehlerbehandlung Dummy ISR II CAN 1 wakeup Dummy ISR CAN 0 senden CANO Receive CAN 0 empfangen Dummy ISR II CAN 0 Fehlerbehandlung Dummy ISR CAN 0 wakeup Dummy ISR Flash Dummy ISR II EEPROM Dummy ISR SPI2 Dummy ISR H SPM Dummy ISR Dummy ISR BDLC wird hier nicht verwendet Dummy ISR II SCME Dummy ISR CRG Lock Dummy ISR Pulsakkumulator B Overflow Dummy ISR Down Counter Underflow Dummy ISR Port H Dummy ISR 1 Port J Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 137 Dummy_ISR I ATD1 Dummy ISR I ATD2 Dummy ISR ISCH Dummy ISR 1 8612 Dummy ISR SPIO Dummy ISR Pulsakkumulator Eingangsflanke Dummy ISR Pulsakkumulator berlauf Dummy ISR 11 Timer berlauf Dummy ISR Timer Kanal 7 Dummy ISR Timer Kanal 6 Dummy ISR Timer Kanal 5 Dummy ISR Timer Kanal 4 Dummy ISR Timer Kanal isrOC2 Timer Kanal 2 Dummy ISR Tim
61. 6 5 4 2 1 Write Reset 0 0 0 0 0 0 0 0 Address Offset 19 CANIDAR5 Read AC7 AC6 AC5 AC4 AC3 AC2 AC1 AC0 Write Reset 0 0 0 0 0 0 0 0 Address Offset 1A CANIDAR6 Read AC7 AC6 5 ACA AC3 AC2 AC ACO Write Reset 0 0 0 0 0 0 0 0 Address Offset 1B CANIDAR7 Read ACT AC6 AC5 AC4 AC3 AC2 AC1 AC0 Write Reset 0 0 0 0 0 0 0 0 Um 29 Bit Identifier Filtern zu k nnen m ssen die Bits 19 IDE und 20 SRR gesetzt sein CANRIER Address Offset 8 05 Bit 7 6 5 4 3 2 1 Bit 0 Read WUPIE CSCIE RSTATE1 RSTATEO TSTATE1 TSTATEO OVRIE RXFIE Write Reset 0 0 0 0 0 0 0 0 RXFIE Wenn Empfangsregister voll wird Interrupt wird ausgel st 1 wenn Empfangsregister voll wird Interrupt wird ausgel st 0 kein Interrupt bei vollen Empfangsregister Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 98 Funktion 2 void SendCANxMessage UINT8 NumBytes UINT8 BufPntr Dies ist eine Funktion zum versenden einer CAN Message Hier wird gewartet bis ein Sendepuffer verf gbar ist Wenn ja wird die ser ausgew hlt Au erdem wird hier die Sende ID festgelegt die mit dem Akzeptanzfilter des Empf ngers bereinstimmen sollte Aufgabe Danach werden die Datenbytes ins Senderegister geschrieben Zus tzlich gibt es hier eine kleine Funktion die das Datenl ngen register beschreibt je nach dem wie viel Bytes man bertragen m chte Nach
62. Bild8 New transmit message KI ID Hex Length Data 0 7 408 bh NES Period 1000 ms Extended Frame Remote Request CHE NN Bild 8 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 91 Hier sieht man die gesendeten und empfangenen Nachrichten PCANView for CAN Dongle Client Transmit Help P ki 632 Message Length Period Count RTR Per RTR Cnt 1 400h 1 Message Period Count Trigger 1000 18 Time Connected to PEAK Dongle CAN 500 KBit sec Overruns 0 QXmtFull O Bild 9 Quelltext CANx_test c Folgende spezielle Funktionen werden im Programm verwendet Funktion 1 void CANxInit void Initialisierung des jeweiligen CAN Moduls Hier werden die Busti ming Werte f r eine Bitrate von 500 kbit s und einer Taktfrequenz von 16 MHz Die CPU wird vorher ber die Funktion HCS12 Setup Aufgabe auf 16 MHz getaktet gesetzt Au erdem werden die vier 16 Bit Akzeptanzfilter Bestimmen welche Botschaft mit welchem Identi fier angenommen wird konfiguriert Die Maskenregister werden so gesetzt dass das jedes Bit im Akzeptanzfilter verglichen wird Header msCANx h Funktionsaufruf CANxlnit bergabeparameter keine R ckgabeparameter keine Reccourcen PortM PM1 gt PJ6 PJ7 CANA Staatliche Technikerschule Berlin Doege Liebig
63. D10504 Durchsuchen O Nicht suchen sondern den zu installierenden Treiber selbst w hlen Verwenden Sie diese Option um einen Ger tetreiber aus einer Liste zu w hlen Es wird nicht garantiert dass der von Ihnen gew hlte Treiber der Hardware am besten entspricht lt Zur ck Weiter gt Abbrechen Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 39 Ordner suchen az Laufwerksbuchstabe und Verzeichnis ausw hlen und Hardwarekomponente enth lt d r cke n BJPrinter amp COSMIC E E Dokumente und Einstellungen EXPORT C3 program files amp Ob Programme B B Temp Klicken Sie auf ein Pluszeichen um Unterordner anzuzeigen OK Abbrechen pem S m Treiber wird in das Verzeichnis C Windows System32 kopiert e FTDI FT8UZXX Device FTD2XXUN ini nach CNWINDOWSSystem32 Assistent f r das Suchen neuer Hardware P Fertigstellen des Assistenten Ferti g stellen d ru cken Die Software fur die folgende Hardware wurde installiert FTDI FT8U2 Device Klicken Sie auf Fertig stellen um den Vorgang abzuschlie en Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 40 10 3 Terminal f r USB Schnittstelle Datei Bearbeiten Ansicht Favoriten Extra gt Qe Q C C lTem
64. D5 D4 Beschaltung l PK7 x 5 PK4 PK3 PK2 PK1 PKO EE zinclude hcs12dp256 h include datatypes h include Lcd h void lcd ini void UINT16 i UINT 16 Steuerbytes 4 0x28 0x0c 0x01 0x06 1 0x28 Function set A Du Interface zweizeilig 5 7 Punktmatrix OXOE Display ein Cursor aus Blinken aus 0x01 Anzeige l schen Adressz hler 00 0x06 Entry Mode Adressz hler autoincrement delay Oxfff M glichen Power On Reset abwarten PK Aus I PORTK Ausgang PORTK amp 0x00 PORTK 0x03 for i 0 lt 3 i mal hintereinander eine 3 in das Steuerregister enable delay Oxfff S steuer 0x02 Um die 4Bit Operation einzuschalten for i 0 lt 4 i Steuerbytes ins Steuerregister s_steuer Steuerbytesli _ void enable void Port K kurz auf enable und wieder zur ck UINT8 i PORTK BM_7 enable 1 for i 0 i lt 2 i kurz warten PORTK amp BM 7 enable 0 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 125 void s steuer UINT8 s UINT8 nibble PK Aus JI delay 16 Oxfff busy nibble s gt gt 4 amp 0x0f PORTK amp clear PORTK nibble enable JI delay16 Oxfff busy
65. DRH7 DDRH7 DDRH5 DDRH4 DDRH3 DDRH2 DDRH1 DDRH0 DDRH 0260 PTH famis PTH7 PTH6 PTH5 PTH4 PTH3 PTH2 PTH1 PTHO PTH Bit 7 6 5 4 3 2 1 Bit O R E SPIE SPE SPTIE MSTR CPOL CPHA SSOE LSBFE SPIOCR1 Reset 0 0 0 0 0 1 0 0 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 63 Aufgerufene Unterfunktionen Unterfunktion 1 UINT8 xferSPI0 UINT8 abyte Aufgabe Senden eines Bytes ber die SPI Schnittstelle Header s12_spi h Funktionsaufruf XferSPIO UINT8 abyte bergabeparameter UINT8 abyte Byte was ber die SPI geschickt werden soll R ckgabeparameter Inhalt des SPI Datenregisters PortS MISO MOSI serielle Daten bertragung SCK Taktsyn chronisierung Reccourcen Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner Bedeutung Werte Effekt SPIODR SPI Datenregister 212 was ber die SPI geschickt werden SPIOSR SPI Statusregister 0x80 Abfragen ob SPI besch ftigt ist Registeraufbau Bit 7 6 5 4 3 2 1 Bit O r Bit 7 6 5 4 3 2 2 Bit 0 Reset 0 0 0 0 0 0 0 0 SPIODR Bit 7 6 5 4 3 2 1 Bit O R SPIF 0 SPTEF MODF 0 0 0 0 SPIOSR Reset 0 0 1 0 0 0 0 0 Reserved Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Com
66. Datei freqout c Datum 2004 02 12 Funktion Gibt eine Timer Interruptgesteuerte Polizeisirene aus include datatypes h zinclude hcs12dp256 h zinclude s12 ect h contains 512 value include freqout h include delay h include s12 crg h Static Vars Y nenne nnn ne T M UINT16 freqout tticks void initFreqOut void TSCR1 BM_TEN make sure timer is enabled TSCR2 0x04 prescaler 2 4 16 TIOS BM 2 select Output Compare function for channel 2 DDRT BM 2 TIE BM 2 enable Interrupt for channel 2 TCTL2 amp BM_OM2 BM OL2 II timer disconnected from PT2 pin period is ps void setFreqOut UINT16 period UINT16 tticks tticks period 512 2000000L tticks TIMER_TCNT_PRE if period 0 TCTL2 amp DM OM2 BM OL2 disconnect PT2 pin else TCTL2 BM_OL2 connect PT2 pin freqout tticks tticks Staatliche Technikerschule Berlin Doege Liebig Kallauke void freqout void UINT8 i Interruptfreigabe initFreqOut for i 0xff i gt 0x6f i setFreqOut i delay 1000 for i 0x6f i lt 0xff i setFreqOut i delay 1000 initFreqOut interrupt void isrOC2 void TC2 freqout tticks TFLG1 BM_2 clear Intr flag Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12 Compact Staatliche
67. L2 Controlregister 2 0x80 enable ATDOCTL4 ATDO0 Controlregister 4 0x05 10 Bit Aufl sung Clock Teiler 12 Registeraufbau 02 7 6 5 4 St 1 0 R ADPU ETRIGLE ETRIGP ETRIGE W ATDOCTL2 RESET 0 0 0 0 0 0 Unimplemented or Reserved 04 7 6 5 4 3 2 1 0 R SRES8 5 SMPO PRS4 PRS3 PRS2 PRS1 PRSO W ATDOCTLA RESET 0 0 0 0 0 1 0 1 wass Unimplemented or Reserved BusClock x05 ATDclock IPRS T11 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 59 Funktion 2 UINT16 getATD0 UINT8 channel bei bergabe des ATD Eingangskanals liefert die Funktion je Aufgabe nach Spannungswert einen digitalen Ausgangswert zwischen 0 und 1024 10 Bit Aufl sung Header s12 atd h Funktionsaufruf getATDO UINTS8 channel bergabeparameter ATDO Kanal 0 7 R ckgabeparameter ATDO Datenregister Reccourcen PADO Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner Bedeutung Werte Effekt ATDO ATDOCTL3 Gontrolradister 0x08 W hlt eine Umwandlung per Sequenz ATDO Rechtsb ndiger Vorzeichenloser Daten ATDOCTL5 0x8x mode Arbeitet in Einzelsequence ein Aus Controlregister 4 gang von 8 Kan len ATD0 ATDOSTATO Sequence Comp
68. M4 AM3 AM2 AM1 AM0 Write Reset 0 0 0 0 0 0 0 0 Address Offset 17 CANIDMR3 Read AMT AM6 AM5 AM4 AM3 AM2 AM1 AMO Write Reset 0 0 0 0 0 0 0 0 Bit 7 6 5 4 3 2 1 Bit O Address Offset 1C CANIDMR4 Read AMT AM6 AM5 AM4 AM3 AM2 AM1 AMO Write Reset 0 0 0 0 0 0 0 0 Address Offset 1D CANIDMRS5 Read AM7 AM6 AM5 AM4 AM3 AM2 AM1 AMO Write Reset 0 0 0 0 0 0 0 0 Address Offset CANIDMR6 Read AMT AM6 AM5 AM4 AM3 AM2 AM1 AMO Write Reset 0 0 0 0 0 0 0 0 Address Offset AF CANIDMR7 Read AM6 AM5 AM4 AM3 AM2 AM1 AMO Write Reset 0 0 0 0 0 0 0 0 AM 0 ID Bit muss mit Code bereinstimmen AM 1 ID Bit ist f r die Filterung nicht relevant Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 97 CANXIDARx msCAN Identifier Acceptance Registers Bit 7 6 5 4 3 2 1 Bit 0 Address Offset 10 CANIDARO Read ACT AC6 AC5 AC4 AC3 AC2 AC1 AC0 Write Reset 0 0 0 0 0 0 0 0 Address Offset 11 CANIDAR1 Read ACT AC6 AC5 AC4 AC3 AC2 AC1 AC0 Write Reset 0 0 0 0 0 0 0 0 Address Offset 42 CANIDAR2 Read AC7 AC6 AC5 AC4 AC3 AC2 AC1 AC0 Write Reset 0 0 0 0 0 0 0 0 Address Offset 13 CANIDAR3 Read ACT AC6 5 4 2 AC1 AC0 Write Reset 0 0 0 0 0 0 0 0 Bit 7 6 5 4 3 2 1 Bit O Address Offset 18 CANIDAR4 Read AC7 AC
69. Mech Elektrischer Aufbau Layout Dokumentation Pr sentation Mario Kallauke Programmierung des ATD DAC PWM Keypad LCD CAN0 CAN4 akustischer Signalgeber Piaport Lauflicht Versuchsaufbauten Dokumentation Pr sentation Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 10 4 Quellen Literatur Hinweis Mikrocontrollerdesign Standardwerk ber den 68HCx12 benutzerhandbuch pdf 12 Compact Benutzerhandbuch s12cov110 schema pdf Schaltplan vom S12Compact CPU12RG pdf Reference Guide S12CPUV2 pdf Reference Manual MC9S12DG256PB pdf bersicht vom S12 amp Datenbl tter S12ATD10B3CV2 pdf Analog Digital Wandler S12MSCANV2 pdf CAN Schnittstelle S12PWM8B8CV1 pdf PWM S12SCIV2 pdf SCI S12SPIV2 pdf SPI S12ECT16B8V1 pdf Timer 74c922 pdf Tastaturtreiber f r Keypad DRMOO8 pdf Alarm Control Panel Designer Reference dev12 tutorial pdf DEV12 Tutorial timer pdf Timerbeschreibung auf Deutsch Internet http www elektronikladen de http www ftdichip com Treiber f r USB Schnittstelle FT232BM http www motorola com Datenbl tter ber den S12 http govschl ndsu nodak edu achapwes PICmicro index html PS 2 http www elektronikladen de occonsole html OC Console http www lemps ch tipps sin50 sinusgenerator html Timer und PWM Software Version Hersteller Orcad 9 2 446 CIS Cadence Design Systems Microsoft Word 2002 Microsoft AG Adobe Acrobat Prof 6 0 0 19 05 200
70. P define CAN0IDAR3 _P 0x0150 0x0151 0x0152 0x0153 define CANOIDMRO P define CANOIDMR1 P define CANOIDMR2 P define CANOIDMR3 P 0x0154 0x0155 0x0156 0x0157 define CANOIDARA P define CANOIDAR5 P define CANOIDAR6 P define CANOIDAR7 P 0x0158 0x0159 0x015A 0x015B A EX define CANOIDMR4 _P define CANOIDMR5 P define CANOIDMR6 P define CANOIDMR 7 P 0x015C 0x015D 0 015 0x015F Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 147 define CANORXFG _ADDR 0x0160 define CANOTXFG _ADDR 0x0170 define CANTCTLO P define CANTCTL1 define CANTBTRO P 0x0180 0x0181 _ P 0x0182 define CAN1BTR1 _P 0x0183 define CANTRFLG _P 0x0184 define CANTRIER _P 0x0185 define CANTTFLG _P 0x0186 define CAN1TIER _P 0x0187 define CANTTARQ _P 0x0188 define CAN1TAAK _P 0x0189 define CAN1TBSEL _P 0x018A define CAN1IDAC _P 0x018B define Reserved 0 018 define Reserved _P 0x018D define CANTRXERR _P 0x018E define CANTTXERR _P 0x018F define CAN1IDARO _P define CAN1IDAR1 define CAN1IDAR2 P define CAN1IDAR3 _P 0x0190 0x0191 0x0192 0x0193 define CAN1IDMRO _P 0x0194 define CAN1IDMR1 _P 0x0195 define CAN1IDMR2 _P 0x0196 define CAN1IDMR3 _P 0x0197 define CAN1IDAR4 _P 0x0198 define CAN1IDAR5 _P 0x0199
71. PARTID LP 0x1A define MEMSIZO 0 1 define MEMSIZ1 _P 0x1D define INTCR P Ox1E Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 140 define HPRIO _P Ox1F define Reserved _P 0x20 define Reserved _P 0x21 define Reserved _P 0x22 define Reserved _P 0x23 define Reserved P 0x24 define Reserved P 0x25 define Reserved _P 0x26 define Reserved P 0x27 define BKPCTO _P 0x28 define BKPCT1 _P 0x29 define BKPOX _P 0x2A define BKPOH _P 0x2B define BKPOL _P 0x2C define BKPO 0 2 define BKP1X _P 0x2D define BKP1H _ 0 2 define BKP1L _P Ox2F define BKP1 0 2 define PPAGE _P 0x30 define Reserved _ 0 31 define PORTK _P 0x32 define DDRK _P 0x33 define SYNR _ 0 34 define REFDV _P 0x35 define CTFLG _P 0x36 define CRGFLG _P 0x37 define CRGINT _P 0x38 define CLKSEL _P 0x39 define PLLCTL _P 0x3A define RTICTL _P 0x3B define COPCTL _P 0x3C define FORBYP _P 0x3D define CTCTL _P 0x3E define ARMCOP _P 0x3F define TIOS _P 0x40 define TCFORC _P 0x41 define TOC7M _P 0x42 define TOC7D _P 0x43 define TCNT _LP 0x44 define TSCR1 _ 0 46 define TTOV 0 47 define TCTL1 _P 0x48 define TCTL2 _P 0x49 define TCTL3 P 0x4A define TCTLA _ 4 define TIE _ 0 4 define TSCR2 _P 0x4D TFLG1 P Ox4E define
72. Projektarbeit HCS12Compact Grundplatine Projektarbeit von Winold Doege G ran Liebig Mario Kallauke Betreuer Herr Stahl Thema Entwicklung Inbetriebnahme und Programmierung eines Mikrocontrollersystems S12Compact zur Ausbildung an der STB Abgabedatum 27 Mai 2004 Prototyp des Projektes Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine TE Inhalt 1 Vorwort 7 2 Selbstst ndigkeitserkl rung 8 d Aufgabenstellung und Verteilung 9 4 Quellen Software 10 5 Die MCU vom Typ MC9S12DG256 11 5 1 MC9S12DG256 11 5 2 Portbelegung 12 6 Das S12 Compact Board 15 6 1 berblick S12compact 15 6 2 Technische Daten 15 6 3 Elektrische Funktion der S12 Compactplatine 16 6 3 1 Stromversorgung 16 6 3 2 Reseterzeugung 17 6 3 3 Takterzeugung und PLL 17 6 39 4 Betriebsarten BDM Unterst tzung 18 6 3 5 Integriertes EEPROM 18 6 3 6 Indikator LED 18 6 3 7 Signalgeber 19 6 3 8 RS232 Interface 19 6 3 9 USB nterface 19 6 3 10 D A Wandler DAC 20 6 3 11 CAN Interface 20 6 4 Mechanischer Aufbau der Tr gerplatine 21 6 5 Elektrischer Aufbau der Tr gerplatine 22 6 5 1 Analog Digital Wandler 22 6 5 2 Digital Analog Wandler 22 6 5 3 CAN Controller 23 6 5 4 LCD Display 23 6 5 5 Piaport 23 6 5 6 Timer Pulsweitenmodulation 23 6 5 7 Tastatur 23 65 8 USB PS2 23 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbe
73. R6 P 0xBA define PWMPER7 0 define PWMDTYO _P OxBC Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 143 define PWMDTY1 _P 0xBD define PWMDTY2 _P 0xBE define PWMDTY3 _P 0xBF define PWMDTY4 _ define PWMDTY5 _P 0xC1 define PWMDTY6 0 2 define PWMDTY7 _P 0xC3 define PWMSDN _P 0xC4 define Reserved _P 0xC5 define Reserved P 0xC6 H define Reserved _P 0xC7 define SCIOBDH _P 0xC8 define SCIOBDL _P 0xC9 define SCIOBD _LP 0xC8 define SCOCR1 _P 0xCA define SCIOCR1 _P OxCA define SCIOCR2 _P OxCB define SCIOSR1 0 define SCOSR1 SCIOSR1 compatability define SCOSR2 P OxCD define SCIOSR2 P OXCD define SCIODRH _P OxCE define SCIODRL _P OxCF define SCODRL SCIODRL compatability define SCIODR LP OxCE define SCITBDH P OxDO define SCITBDL P OxD1 define SCITBD _LP 0xD0 SCIICR1 define SCIICR2 _P define SCITSR1 P define SCIISR2 P 0xD2 0xD3 OxD4 OxD5 define SCIIDRH _P 0xD6 define SCIIDRL _P 0xD7 define SCIIDR _LP 0xD6 define SPIOCR1 _ 0 08 define SPIOCR2 _ 0 09 define SPIOBR _P 0xDA define SPIOSR _P 0xDB define Reserved _P 0xDC define SPIODR _P OxDD define Reserved _P 0xDE H define Reserved _P 0xDF define IBAD _ 0 0 define IBFD _P OxE1 define IBCR P 0xE2 defin
74. Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner DDRJ PTJ Bedeutung Data Diretion Regis PortJ Register Werte Effekt PJ1 auf Ausgang 0 oder 1 Setzt Datasignal den Bitwert int read clock void Aufgabe Lese Clocksignal Header 512 ps2 h Funktionsaufruf read clock bergabeparameter keine R ckgabeparameter Bitwert O oder 1 Reccourcen keine Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 31 Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner Bedeutung Werte DDRJ Data Diretion Regis 0x01 ter von Port J PTIJ PortJ nur lesen Re oder Effekt PJ0 auf Eingang liest Clocksignal den Bitwert gister int read data void Aufgabe Lese Datasignal Header 512 ps2 h Funktionsaufruf read data bergabeparameter keine R ckgabeparameter Bitwert O oder 1 Reccourcen keine Registerwerte die f r diese Funktion von Bedeutung sind gister Bezeichner Bedeutung Werte Effekt Data Diretion Regis DDRJ ter von Port J PJ1 auf Eingang PTIJ HEES reegen Datasignal den Bitwert unsigned char kb_out void Aufgabe Byte von der Tastatur einlesen Header s12_ps2 h Funktionsaufruf kb_out be
75. SCI Kanal 6 3 Elektrische Funktion der S12 Compactplatine Hier m chten wir Ausz ge des Bedienerhandbuches f r das HCS 12 einf gen Dieser Er kl rung ist wegen Ihrer Komplexit t nichts zuzuf gen Weitere Daten finden Sie dem beilie genden Bedienerhandbuch 5 12 da wir hier nur auf die tats chlich im Rahmen des Pro jektes ben tigten Baugruppen des HCS 12 eingehen 6 3 1 Stromversorgung Der Mikrocontroller IC1 verf gt ber drei Anschlusspaare zur Zuf hrung der Versor gungsspannung VDDR VSSR VDDX VSSX und VDDA VSSA Die Betriebsspannung be tr gt nominal 5 Volt intern arbeitet der Prozessor jedoch mit 2 5 Volt Der hierzu erforderli che Spannungsregler ist bereits in der MCU integriert VREGEN gibt den internen Span nungsregler frei der Pin ist normalerweise stets mit H Pegel 5V zu verbinden Die Span nungsreduzierung im Core ist in erster Linie erforderlich durch die geringen Strukturbreiten des Fertigungsprozesses 0 25um und kleiner Von au en verh lt sich der HCS12 jedoch wie ein 5V Baustein da an den Ein Ausgabepins Pegelwandler vorhanden sind Eine Ausnahme stellen die Anschl sse f r Oszillator und PLL dar n heres dazu unten Die drei genannten Versorgungsanschlusspaare m ssen sorgf ltig entkoppelt werden In unmittel barer N he der Pins befindet sich daher je ein 100nF Keramikkondensator C15 C16 C17 dem zus tzlich ein 10uF Elektrolytkondensator parallel geschaltet wird C5 C7 Besonderes
76. Sendepuffer CANATFLG NACAN Senden wird eingeleitet Staatliche Technikerschule Berlin Doege Liebig Kallauke JI CAN Initialisierung void CANAInit void ImsCAN Control Register 0 CANACTLO INITRQ Setze INITRQ um in den Initialisierungsmode zu gelangen while CANACTL1 amp INITAK warte bis INITAK gesetzt Initialisieungsmode kann beginnen ImsCAN Control Register 1 CANACTL1 msCAN Modul wird enabled Bustimingregister CANABTRO 0x03 CANABTR1 0x32 II CAN Baudrate 500kbps bei 16 MHz Taktfrequenz Akzeptanz Control Register CANAIDAC 0x10 verwendet vier 16 Bit Akzeptanzfilter Akzeptanzfilterregister 0 1 CANAIDARO 0x81 Setup Filter 1 1 Filter Bank CANAIDAR1 0x00 Maskenregister 0 1 CANAIDMRO 0x00 keine Maskenbits bei Empfangenen Nachrichten CANAIDMR1 0x07 die letzten Bits sind nicht benutzt Akzeptanzfilterregister 2 3 CANAIDAR2 0x81 Setup Filter 2 1 Filter Bank CANAIDAR3 0x00 Maskenregister 2 3 CANAIDMR2 0x00 keine Maskenbits bei Empfangenen Nachrichten CANAIDMR3 0x07 die letzten 3 Bits sind nicht benutzt Akzeptanzfilterregister 4 5 CANAIDARA
77. Staatliche Technikerschule Berlin Autor Mario Kallauke Datei DA test c Function Test DA Wandler gt bei Eingabe eines Spannungswertes ber das Hyperterminal wird dieser in ein Spannungswert gewandelt DACA oder DACB 0x0000 gt ON 0xffff gt 4 096 V include lt string h gt include lt ctype h gt include hcs12dp256 h include datatypes h zinclude DA h include s12 crg h zinclude s12 sci h n void HC12Setup void Startup Code COPCTL 0x00 same as reset default initPLL FT M a void main void UINT8 cTaste Kanal UINT16 wert DOUBLE Spannung a _HC12Setup H um auf 24 MHz die CPU zu takten initSCI0 13 I CPU Takt ist auf 24 MHz gestellt 115200bps do do printf n rMenueln rBitte geben Sie den Ausgabekanl an printf n rVOUTIAJ printf n rVOUTIB cTaste toupper getchar Ausgabekanal einlesen switch cTaste case A Kanal 7 A break case Kanal B break default printf n rDie Taste c kommt im menue nicht vor cTaste while cTaste A amp amp cTaste B do printf n r n rBitte geben Sie die Spannung f r diesen Kanal an printf n r 0 4 096 V scanf lf amp Spannung Spannung einlesen if Spannung lt 0 Spannung gt 4 096
78. TFLG2 _P 0x4F define TCO LP 0x50 define TC1 LP 0x52 define TC2 _1 0 54 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 141 define 1 0 56 define 4 LP 0x58 define TC5 LP 0x5A define TC6 LP 0x5C define TC7 LP Ox5E define PACTL _P 0x60 define PAFLG _P 0x61 define PACN3 _P 0x62 define PACN2 _P 0x63 define PACN1 _P 0x64 define PACNO _P 0x65 define MCCTL _P 0x66 define MCFLG _P 0x67 define ICPAR _P 0x68 define DLYCT _P 0x69 define ICOVW _P 0x6A define ICSYS _P 0x6B define Reserved _P 0x6C define TIMTST _P 0x6D define Reserved _P 0x6E define Reserved _P 0x6F define PBCTL _P 0x70 define PBFLG _P 0x71 define PA3H _P 0x72 define PA2H _P 0x73 define PATH _P 0x74 define PAOH _P 0x75 define MCCNT _LP 0x76 define TCOH _LP 0x78 define TC1H _LP 0x7A define TC2H _LP 0x7C define TC3H _LP OX7E define ATDOCTLO _P 0x80 define ATDOCTL1 _P 0x81 define ATDOCTL2 _P 0x82 define ATDOCTL3 _P 0x83 define ATDOCTL4 _P 0x84 define ATDOCTL5 _P 0x85 define ATDOSTAT _LP 0x86 define ATDOSTATO _P 0x86 define ATDOSTAT1 _P 0x87 define AIDOTESTO _P 0x88 define AIDOTEST1 _P 0x89 Htdefine Reserved _P 0x8A Htdefine Reserved _ 0 8 Htdefine Reserved _P 0x8C define ATDODIEN _ 0 80 H define Reserved _P 0x8E define PORTADO _P 0x8F defi
79. Verz gerungssegment kann auf die L nge 2 bis 8 Time Quanta festgelegt werden Es beinhaltet die physikalischen Verz gerungszeiten des CAN Busses des Eingangskompa rators des Empf ngers und des Ausgangstreibers des Senders Es verschiebt den fr hestm glichen Zeitpunkt der Bitabtastung um den Zeitbetrag nach hinten der gebraucht Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 86 wird um alle Knoten im Bus zu erreichen Das Verz gerungssegment ist auch notwendig damit sendende Knoten beim Abarbeitungsprozess das Bit zur cklesen k nnen Die Phasensegmente 1 und 2 haben ebenfalls jeweils die L nge 2 bis 8 Time Quanta Die Verh ltnisse der beiden Phasensegmente bestimmen den Abtastzeitpunkt zu dem das CAN Modul den Pegel des CAN Busses einliest Dieser Pegel stellt dann den Wert des Bits dar Das Phasensegment 2 wird auch Zeitsegment 2 genannt In der msCAN Implementierung kann das Verz gerungssegment und das Phasensegment 1 nicht getrennt eingestellt werden Man programmiert beide zusammen als Zeitsegment 1 das dann die L nge von 4 bis 16 Time Quanta haben kann Der Sendezeitpunkt ist der Zeitpunkt an der einen Sendestation einen neuen Wert auf den CAN Bus legt Die Emp fangsstation tastet den CAN Bus zum Abtastzeitpunkt ab Es kann im msCAN Modul ein gestellt werden ob einmal oder dreimal abgetastet werden soll Bei dreimaligem Abtasten stellt der Abtastzeitpunkt die dri
80. as auslesen bzw schreiben zu verhindern Das geistige Eigentum des Programmierers soll so gesch tzt werden Mit dem Programm unsecure 12 install exe von P amp E Microcomputer Systems kann man sehr einfach das Problem beseitigen P amp E Microcomputer Systems MC9S12 Unsecure Port Number C Lon Usbi UGC Frequency Hz C Let Usb2 16880008 Help C Lpt3 Usb3 E xit Copyright 2002 www pemicro com Interface Cable Detected Searching for Interface Speed Interface Speed Determined Initial Flash Security Register FSEC FE WHAT Device is Already Unsecured Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 107 22 Quellcodes Projektarbeit HCS12 Compact Staatliche Technikerschule Berlin Autor Mario Kallauke Datei ATD test c Datum 2004 02 12 Funktion Analog Digital Wandler 10 Bit Aufl sung gt 5V 1024 OV 0 holt Wert vom Temperatursensor 1 375V 0 C gt N 282 3 625V 100 743 Wert wird 1000 aufgenommen und dann der Durchschnitt aufs Display polling Wert wird nur neu auf das Display ausgegeben wenn er sich ndert ee Ee EE EE EE EE EE EE EE EE sE include lt stdio h gt include hcs12dp256 h include datatypes h include Lcd h include s12_atd h void main void UINT8 anzeige 8 C_anz 13 Grad 1 UINT16 ATD_we
81. atliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 68 Unterfunktion 3 void DelayO int delayTime Aufgabe Kurze Warteschleife Header delay h Funktionsaufruf DelayO int delayTime bergabeparameter Integerwert 0 OxFFFF R ckgabeparameter keine Unterfunktion 4 void Delayt int delayTime Aufgabe Lange Warteschleife Header delay h Funktionsaufruf Delay1 int delayTime bergabeparameter Integerwert 0 OXFFFF R ckgabeparameter keine Funktion2 void Warnsignal2 void Aufgabe Warnsignal 2 3 mal Glocke Header PWM Warnsignale h Funktionsaufruf Warnsignal2 bergabeparameter keine R ckgabeparameter keine Reccourcen PORTP PPO Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner Bedeutung Werte Effekt PWMPERO PWM Periodenregister PWM Periode PWMDTYO PWM Dienstregister PWM Pulsweite Registeraufbau 7 6 5 4 3 2 1 0 5 Bit 7 6 5 4 3 2 1 Bit 0 PWMPERO RESET 1 1 1 1 1 1 1 1 7 6 5 4 3 2 1 0 R R 3 w Bit 7 6 5 4 3 2 1 Bit 0 PWMDTYO RESET 1 1 1 1 1 1 1 1 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 69 Aufgerufene Unterfunktionen Unterfunktion 1 Unterfunktion
82. bergabeparameter keine R ckgabeparameter Wert der gedr ckten Taste Reccourcen PortP PP2 PP6 Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner Bedeutung Werte Effekt PTIP PortP Inputregister Gibt PORTP immer als Eingang wieder Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 71 Registeraufbau Bit 7 6 5 4 3 2 1 Bit O Read PTIP7 PTIP6 PTIP5 PTIP4 PTIP3 PTIP2 PTIP1 PTIPO Write PTIP Reset Reserved or unimplemented Im 2 Beispiel wird das Keypad im Interruptbetrieb betrieben W hrend ein Programm ab l uft in diesem Fall unsere Laufschrift aus dem LCD Test kann eine Taste bet tigt wer den womit ein Interrupt ausgel st wird Da das Keypad an Port P angeschlossen ist wird in der Interruptvektortabelle in den Vektor von Port P die Startadresse der Interruptservice routine gelegt Port ISR Zur Interruptfreigabe muss der Pin 6 DA an Port P zum In terrupt freigegeben werden Sobald eine Taste bet tigt wird wird die Interruptservicerouti ne abgearbeitet In dieser wird der Tastecode eingelesen gewandelt und an die Adresse 3000 in den RAM des HCS12 Compact geschrieben Quelltext Keypad Lcd int c Folgende spezielle Funktionen werden im Programm verwendet Funktion 1 void keypad int void gibt Interrupts Frei Interruptenablebit an PP6 wird gesetzt
83. capture Output compare Channel 3 Input capture Output compare Channel 4 Input capture Output compare Channel 5 Input capture Output compare Channel 6 Input capture Output compare Channel 7 Input capture Output compare Bild 2 Timer Block Diagram HCS12 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 48 2 16 bit Free running 16 bit load register 1 2 128 main timer 2 1 4 8 16 16 bit modulus bus clock Prescaler PCLK Prescaler down counter 0 RESET H Comparator x PO Pin logic CD capture compare registe d EDGO E FADH hold register hold register m Comparalor Pi Pin logic B rau ee m asd am Gen C1 capture compare registe P Pin Comparator 2 Pin logic Stee Ges C2 capturelcompare registe m TC2H hold register P3 lt Pin logic RS PA1H hold register 0 RESET PA2H hold register 0 RESET C3 capturelcompare registe hold register ICLAT LATQ SUFEN force latch Write 52002 to modulus counter MDC latch enable LATCH Ee Comparator C4 capturelcompare registe EDG SH04 t Comparator og x C5 capture compare regisie MUX EDG SH15 P Comparalor og capturelcompare registe MUX gt
84. cher Signalgeber 102 19 1 Allgemeines 102 19 2 Funktionstest Programmfunktionen Registerbeschreibungen 102 20 LED 105 20 1 Programmfunktionen 105 21 Interessanter Fehler bei der Projektarbeit 106 22 Quellcodes 107 Analog Digital Wandler ATD_test c Testprogramm 107 s12_atd c Funktionen 109 Digital Analog Wandler DA test c Testprogramm 111 DA c Funktionen 113 SPI s12_spi c Funktionen 114 Pulsweitenmodulationsausg nge PWM test c Testprogramm 114 s12 PWM Wearnsignale c Funktionen 115 Keypad Keypad Lcd poll c Testprogramm 119 Keypad Lcd int c Testprogramm 120 Keypad c Funktionen 121 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 5 LCD Lcd_test c Testprogramm 123 Lcd c Funktionen 124 CAN0 CAN0_test c Testprogramm 126 CANO c Funktionen 127 CANA CANA test c Testprogramm 129 CANA c Funktionen 130 Akustischer Signalgeber freqout test c Testprogramm 132 freqout c Testprogramm 133 PIAPORT Piaport c 135 Interruptvektortabelle vectors c 136 Datentypen datatypes h 138 HCS12 I O hcs12dp256 h 139 RS232 LED led und rs232 test c 151 s12_sci h 152 512 sci c 153 USB LED led_und_usb_test c 154 PS 2 ps2_test c 155 s12_ps2 h 156 s12_ps2 c 158 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 6 Timer rechteckgenerator c 162 23 Schaltpl ne AD Wandler
85. de s12 spi h void initSPIO UINT8 bauddiv UINT8 cpol UINT8 cpha DDRS 0xe0 II SS SCK MOSI Output SPIOBR bauddiv SPI Baudrate enable SPI Master Mode select clock polarity phase SPIOCR1 BM_SPE BM_MSTR cpol BM CPOL 0 cpha BM 0 SPIOCR2 0 H default UINT8 xferSPIO UINT8 abyte SPIODR abyte starte Transfer while SPIOSR amp BM_SPIF 0 warte bis Transfer beendet return SPIODR Empfangene Daten zur ck Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12 Compact Staatliche Technikerschule Berlin Autor Mario Kallauke Datei PWM test c Datum 2004 02 12 Funktion Ausgabe 3 verschiedener Arlarmsignale ber das PWM Modul Alarmsignal kann ber das Hyperterminal ge hlt werden include lt string h gt zinclude hcs12dp256 h include datatypes h include PWM Warnsignale h include s12 crg h include s12_sci h JEE void _HC12Setup void Startup Code COPCTL 0x00 same as reset default initPLL n M A void main void UINT8 cTaste _HC12Setup CPU auf 24 MHz initSC10 13 115200bps do do printf n rMenue n rWelches Alarmsignal soll ertoenen printf n
86. define ATDDIEN _P 0x012D define ATD1DIEN _P 0x012D define Reserved _P 0x012E define PORTAD1 _P 0x012F define ATD1DR0H _P 0x0130 define ATDIDROL _P 0x0131 define ATDIDRO _LP 0x0130 define ATDTDR1H _P 0x0132 define ATD1DR1L _P 0x0133 define ATDIDR1 _LP 0x0132 define ATDIDR2H _P 0x0134 define ATD1DR2L _P 0x0135 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 146 define ATD1DR2 _LP 0x0134 define ATDTDR3H 0 0136 define ATD1DR3L _P 0x0137 define ATDIDR3 _LP 0x0136 define ATDIDRAH _P 0x0138 define ATDTDRAL _P 0x0139 define ATD1DR4 _LP 0x0138 define ATDTDR5H _P 0x013A define ATD1DRSL _P 0x013B define ATD1DR5 _LP 0x013A define ATDIDR6H 0 013 define ATDTDR6L _P 0x013D define ATDTDR6 _LP 0x013C define ATDIDR7H 0 013 define ATD1DR7L _P 0x013F define ATD1DR7 _LP 0x013E define CANOCTLO P define CANOCTL1 define CANOBTRO _P define CANOBTR1 _P 0x0143 define CANORFLG _P 0x0144 define CANORIER _P 0x0145 define CANOTFLG _P 0x0146 define CANOTIER _P 0x0147 define CANOTARQ _P 0x0148 define CANOTAAK _P 0x0149 0x0140 P 0x0141 27 define CANOTBSEL P 0x014A define CANOIDAC 0 014 define Reserved 0 014 define Reserved _P 0x014D define CANORXERR 0 014 define CANOTXERR _P 0x014F define CANOIDARO P define CAN0IDAR1 _P define CAN0IDAR2 _
87. define CAN1IDAR6 _P 0x019A define CAN1IDAR7 _P 0x019B define CAN1IDMR4 _P 0x019C define CAN1IDMR5 _P 0x019D define CAN1IDMR6 _P 0x019E define CAN1IDMR7 _P 0x019F define CANTRXFG _ADDR 0x01A0 define CANTTXFG _ADDR 0x01B0 define CAN2CTLO _P define CAN2CTL1 _P define CAN2BTRO _P 0x01C0 0x01C1 0x01C2 define CAN2BTR1 P E P 0x01C3 define CANZ2RFLG _P 0x01C4 define CAN2RIER _P 0x01C5 define CAN2TFLG _P 0x01C6 define CAN2TIER _P 0x01C7 define CAN2TARQ _P 0x01C8 define CAN2TAAK _P 0x01C9 define CAN2TBSEL _P 0x01CA define CAN2IDAC _P 0x01CB H define Reserved 0 01 H define Reserved _P 0Ox01CD define CAN2RXERR 0 01 define CAN2TXERR 0 01 define CAN2IDARO _P 0x01DO define CAN2IDAR1 _P 0x01D1 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 148 define CAN2IDAR2 _P 0x01D2 define CAN2IDAR3 _P 0x01D3 define CAN2IDMRO _P 0x01D4 define CAN2IDMR1 _P 0x01D5 define CAN2IDMR2 _P 0x01D6 define CAN2IDMR3 _P 0x01D7 define CAN2IDAR4 _P 0x01D8 define CAN2IDAR5 _P 0x01D9 define CAN2IDAR6 _P 0x01DA define CAN2IDAR7 _P 0x01DB define CAN2IDMR4 _P 0x01DC define CAN2IDMR5 _P 0x01DD define CAN2IDMR6 _P 0x01DE define CAN2IDMR7 _P 0x01DF define CAN2RXFG _ADDR 0x01E0 define CAN2TXFG _ADDR 0x01F0 define CAN3CTLO _P 0x0200 define CAN3CTL1
88. dem das Senderegister vollst ndig beschrieben wurde wird der Sendevorgang eingeleitet Header msCANx h Funktionsaufruf SendCANxMessage UINT8 NumBytes UINT8 BufPntr NumBytes Anzahl der zu bertragenden Bytes BufPntr gt Anfangsadresse des gepufferten Bytes R ckgabeparameter keine Reccourcen PortM PMO PM1 CANO PortJ PJ6 PJ7 gt CAN4 bergabeparameter Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner Bedeutung Werte Effekt Identifizieren des verf gbaren leeren CANXTFLG Sendeflagfregister Sendepuffers CANXxTBSEL Sendepufferauswahl Auswahl des Sendepuffers der CANxTXFG Sendepuffer Anfangsadresse des Sendepuffers schrieben werden soll Registeraufbau CANTFLG msCAN Sendeflagregister Reset 0 0 E TXEx zum Identifizieren des verf gbaren leeren Sendepuffers 1 Sendpuffer ist verf gbar 0 Sendpuffer ist voll Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 99 CANXTBSEL msCAN Sendepufferauswahl Bit 7 6 5 3 2 1 Bit O Read 0 0 0 0 0 TX2 TX1 Write Reset 0 0 0 0 0 0 0 0 Unimplemented TXEx erlaubt die Auswahl des Sendepuffers der beschrieben werden soll 1 Sendpuffer wird ausgew hlt 0 Sendpuffer nicht ausgew hlt Anm ist mehr als ein Bit gesetzt wird der Puffer mit dem ni
89. den e TOC7M Timer Output Compare 7 Mask Register Dieses Register hat f r die als Output Compare geschalteten Kan le dieselbe Bedeutung wie die Datenrichtungs register f r die normalen I O Ports e TOC7D Timer Output Compare 7 Data Register Hier wird festgelegt welchen Zu stand die einzelnen Output Compare Kan le die in TOC7M als Ausg nge geschaltet wurden nach einem Output Compare an Kanal 7 haben e TCTL1 2 Timer Control Register 1 2 In diesen beiden Registern wird f r die ein zelnen als Output Compare geschalteten Kan le festgelegt was an dessen Aus gang nach einem Output Compare passieren soll Register mit denen die Timerfunktionen gesteuert werden e TIOS Timer Input Capture Output Compare Select Hier wird f r die einzelnen Ti merkan le festgelegt ob sie als Input Capture oder als Output Compare verwendet werden sollen TSCR1 Timer System Control Register 1 lm TSCR1 wird der Timer aktiviert und festgelegt ob nach einem Zugriff auf eines der Timer Input Capture Output Compare Register das Timer Interrupt Flag im TFLG1gel scht wird e TIE Timer Interrupt Enable Register In diesem Register wird f r jeden einzelnen Kanal festgelegt ob nach einem Input Capture oder einem Output Compare je nach Einstellung im TIOS ein Interrupt ausgel st wird e SCR2 Timer System Control Register 2 Unter anderem wird hier der Timer Pres caler Zeitteiler eingestellt es wird hier festgelegt ob nach einem Outp
90. den Modus einzustellen Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 43 Register address _3 Unimplemented or Reserved Figure 3 4 SCI Control Register 2 SCICR2 TE Transmitter Enable Bit TE enables the SCI transmitter and configures the TXD pin as being controlled by the SCI The TE bit can be used to queue an idle preamble 1 Transmitter enabled Transmitter disabled RE Receiver Enable Bit RE enables the SCI receiver 1 Receiver enabled Receiver disabled UINT8 getSCI1 void Aufgabe Ein Byte von der RS232 Schnittstelle lesen Header 512 sci h Funktionsaufruf UINT8 getSCI1 bergabeparameter Keine R ckgabeparameter Ein Byte von der USB Schnittstelle Reccourcen USB Port S RXD1 TXD1 Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner Bedeutung Werte Effekt SCISR1 Ist etwas da 0x20 Holt Wert aus SCIDRL wenn 0 SCIODRL Register wo das Byte liegt 0x Wird ausgelesen Register address S 4 5 3 2 1 0 DR o r on RESET 0 zs Unimplemented or Reserved Figure 3 5 SCI Status Register 1 SCISR1 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 44 Register address _6 Eu cma Hasc ce ue CUI HAE puer uen Meu ape gp pee uml w i zip Emm RESET 9
91. der Fall kann die CPU auf den Puffer zugreifen und die Botschaft auswerten Jede auf dem CAN Bus befindliche Botschaft wird in den Hintergrundpuffer geschrieben und abh n gig von dem Filter Identifier Acceptance Filter wird die CPU benachrichtigt Damit verhin dert man dass Botschaften die nicht f r die Station bestimmt sind die CPU belasten 18 5 Filtern von Botschaften im msCAN Beim msCAN Modul stehen acht Akzeptanzfilterregister msCAN Identifier Acceptance register CANIDARO bis CANIDARO zur Verf gung deren Inhalt mit jedem ankommenden Identifier verglichen wird Es werden nur solche Botschaften an die CPU gemeldet bei de nen der Akzeptanzfilter identisch mit dem Identifier der Botschaft ist Es gibt zwei 32 Bit breite Akzeptanzfilter die jeweils einen 29 Bit Inhalt f r das Extended Format vier 11 Bit Inhalte f r das Standardformat oder acht 8 Bit Inhalte enthalten k nnen F r das Extended Format k nnten nur zwei unterschiedliche Botschaften herausgefiltert werden das w re f r praktische Anwendungen zu wenig Deshalb hat das msCAN Modul noch ein Maskenregis ter msCAN Identifier Mask register CANIDMRO bis CANIDMRT7 in dem jedes entspre chende Bit bestimmt ob ein Bit im Maskenregister gesetzt AM Bit 1 wird das Bit an der Stelle im Akzeptanzfilter ignoriert Das erm glicht ganze Gruppen von Botschaften heraus zufiltern Filterung von Extended 29 Bit Identifiern bergab
92. des DAC Ka nals DACA DACB auf Danach wird die gew nschte Spannung an diesem Kanal einge geben In unserem Programm setzen wir dann den eingegeben Wert in den 16 Bit Wert um der dieser Spannung entspricht Da am DAC eine Referenzspannung von 4 096V FS anliegt ist dieser bei unipolar Betrieb der gr te 16 Bit Wert Oxffff zugeordnet Daraus ergibt sich ebenfalls eine Aufl sung von 62 5uV Bit Uses Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 62 Quelltext DA test c Folgende spezielle Funktionen werden im Programm verwendet Funktion 1 void putdac UINT8 channel UINT16 value SPI Setup Mode wird durchgef hrt Kanal DACA oder DACB wird Aufgabe ausgewahlt 16 Bit Wert wird ber die SPI Schnittstelle an den DAC gesendet Header DA h Funktionsaufruf putdac UINT8 channel UINT16 value bergabeparameter channel A f r DACA B f r DACB R ckgabeparameter keine PortH PH4 PH6 f r DAC enable PortS MOSI serielle Daten bertragung SCK Taktsynchronis Reccourcen Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner Bedeutung Werte Effekt DDRH Datenrichtungsregister mp O 3Eingang 4 7Ausgang PTH PORTH PIM D A Wandler Enable SPIOCR1 SPI Control Register 1 0x54 SPI Enable CPOL 0 CPHA 1 Registeraufbau 0262 DDRH 5 D
93. dplatine 36 Register address _6 7 6 3 2 1 0 m PS Si DENM isu INE SI ees unan en oa 0 0 0 0 0 0 RESET n x Unimplemented or Reserved Register address S 7 7 6 5 4 3 2 1 BEL BL ATA TATA SES RESET D 0 0 0 0 0 0 0 rn Unimplemented or Reserved Figure 3 7 SCI Data Registers SCIDRH L void putSCIO UINTS8 Aufgabe Ein Byte zur RS232 Schnittstelle schicken Header 512 sci h Funktionsaufruf putSCIO UINTS8 bergabeparameter Ein Byte was auf der RS 232 Schnittstelle gesendet wird R ckgabeparameter Keine Reccourcen RS 232 Port S RXDO TXDO Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner Bedeutung Werte Effekt SCISR1 Ist das vorherige 0x80 Schreibt Wert in das SCIDRL Byte schon weg wenn 0 sc pr Register wo das Byte hingeschrieben wird 0x Wird geschrieben Register address S 4 mamami e a Lo s s r ac r h 1 RESE Ela s Unimplemented or Reserved Figure 3 5 SCI Status Register 1 SCISR1 Register address S 6 7 6 5 4 3 2 1 o LR RB aaa T ose jimatkan rsen Bon ac nra prsi j aan RESET 9 9 0 o D 0 FEF Unimplemented or Reserved Register address
94. e CANOIDAR3 Reaisters 3 CANOIDARA dentifier Acceptance 0x84 Setup Filter 3 2 Filter Bank Registers 4 CANOIDAR5 Identifier Acceptance Registers 5 CANOIDAR6 dentifier Acceptance 0x841 Setup Filter 4 2 Filter Bank Registers 6 CANOIDAR7 Identifier Acceptance Register 7 Receiver Interrupt CANORIER Enable Register 0x01 Receiver Interrupt enable Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 93 Registeraufbau CANXCTLO msCAN Control Register0 Bit 7 6 5 4 3 2 1 Bit O Read RXACT SYNCH RXFRM CSWAI TIME WUPE SLPRQ INITRQ Write Reset 0 0 0 0 0 0 0 1 sn Unimplemented RXFM Empfangs Frame Flag 1 eine g ltige Nachricht wurde empfangen 2 es wurde keine g ltige Nachricht empfangen RXACT Empf nger Status 1 das msCAN Modul sendet eine Nachricht 0 das msCAN modul sendet oder steht still CSWAI CAN geht in den Wartemodus 1 w hrend des Wartemodus wird der Takt abgeschalten 0 das Modul wird nicht bewegt des Wartemodus SYNCH Synchronisationsstatus 1 msCAN ist mit dem CAN Bus synchronisiert 1 msCAN ist nicht mit dem CAN Bus synchronisiert TIME Timer enable 1 interner msCAN Timer enable 0 interner msCAN Timer disable WUPE Wake up enable 1 Wake Up enabled msCAN kann geweckt warden 0 Wake Up disabled msCAN igno
95. e Busy high 1 1 PORTK auslesen 0 1 0 wenn Busy 0 gt Abbruch I 0 II Port K alles Ausgang Staatliche Technikerschule Berlin Doege Liebig Kallauke Autor Mario Kallauke Datei CANO test c Datum 2004 03 11 Funktion CANO test include msCAN h include hcs12dp256 h include datatypes h include s12_crg h include s12 sci h void main void UINT8 Temp HCS12Setup initSC10 52 CANInit Interruptfreigabe do Temp getSCIO SendCANMessage 1 amp Temp while Temp 27 void HCS12Setup void COPCTL 0x00 initPLL II CPU auf 16 MHz Setup serielle Schnittstelle 0 19200bps Initialisierung des CAN Moduls gebe Interupts frei Startup Code ICPU auf 16 MHz Projektarbeit HCS12 Compact Staatliche Technikerschule Berlin lese ein Byte von der seriellen Schnittstelle sende ein CAN Paket mit dem Byte was ber SCI eingegeben wurde Abbruch mit ESC warte auf den Empfangsinterupt Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12 Compact Staatliche Technikerschule Berlin Autor Mario Kallauke Datei msCAN0 c Datum 2004 03 11 Funktion CAN0 Funktionen Interuptserviceroutinen include msCAN h include hcs12dp256 h include datatypes h include s12 sci h
96. e IBSR P OxE3 define IICDR _ 0 4 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 144 H define Reserved _P 0xE5 H define Reserved _P 0xE6 H define Reserved _P 0xE7 define DLCBCR1 _P 0xE8 define DLCBSVR 0 9 define DLCBCR2 P OxEA define DLCBDR _P OxEB define DLCBARD 0 define DLCBRSR _P OxED define DLCSCR _P OxEE define DLCBSCR _P OxEE define DLCBSTAT _P OxEF alternate possible names for registers define BDLCCR1 P OxE8 BDLCSVR 0 9 define BDLCCR2 define BDLCDR _ define BDLCARD _P 0xEC define BDLCRSR _P 0xED define BDLCSCR _P 0xEE define BDLCSTAT _P 0xEF define SPIICR1 _P 0xF0 define SPIICR2 _P OxF1 define SPIIBR 0 2 define SPIISR _P OxF3 I ttdefine Reserved _P 0xF4 define SPIIDR _P 0xF5 define Reserved _P 0xF6 define Reserved _P 0xF7 define SPIZCR1 _P 0xF8 define SPIZCR2 0 9 define SPI2BR define SPI2SR _P OxFB define Reserved P OxFC define SPI2DR P OXFD define Reserved _P OxFE Reserved _P OxFF define FCLKDIV _P 0x0100 define FSEC _P 0x0101 define COBTRO _P 0x0102 define Reserved for Factory Test 0 0102 define FCNFG _P 0x0103 define FPROT _P 0x0104 define FSTAT _P 0x0105 define FCMD _P 0x0106 define Reserved for Factory Test 0 0
97. e Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 162 return symbol void delay void volatile unsigned n 0 while n Projektarbeit HCS12 Compact Staatliche Technikerschule Berlin Autor en Winold Doege Mario Kallauke Goeran Liebig Datei rechteckgenerator c Datum 2004 05 18 Funktion 1kHz sym Rechtecksignal am Ausgang 1 bis 4 II Die CPU ist auf 8MHz getaktet Im Register TSCR2 ist der Teiler 32 eingestellt include datatypes h zinclude hcs12dp256 h void main void TIOS 0xff TSCR1 0x80 TSCR2 0x0d RDRT 0x0F TFLG1 0xff TOC7M 0x0F TOC7D 0x0F TCTL2 0xAA TC0 127 TC1 127 2 127 MCU Hupe TC3 127 TC7 255 Timer Setup Kanaele 0 bis 7 als OC init Timer Enable Bit setzen Prescaler 32 Timer Counter Reset Enable Strombegrenzung an fuer 1 bis 4 Timer Interrupt Flag loeschen I 1 bis 4 als Ausgang 1 bis 4 auf High nach OC an 7 I1 1 bis 4 auf Low nach OC an 1 JI Ausgang 50 50 Ausgang 50 50 Ausgang 50 50 Ausgang 50 50 JI Wenn diese Wert erreicht wird gt Periode neu starten Endlosschleife Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS 12 Compact AD Wandler Anhang Seite 1 5Vext O 5VextGND O 12Vext O 12Vext O 12VextGND U1A H LM348N 3 1 H U1B LM348N
98. echnikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12 Compact Staatliche Technikerschule Berlin Autor Mario Kallauke Datei msCAN4 c Datum 2004 03 11 Funktion CAN4 Funktionen Interuptserviceroutinen include msCAN4 h include hcs12dp256 h include datatypes h include s12 sci h I Ankommende CAN Nachrichten werden hier abgearbeitet interrupt void Receive void UINT8 Temp Temp CAN4RXFG 4 hole das erste Byte putSCIO Temp Lokales Echo CANARFLO 1 II clear rec flag Sende Funktion void SendCANA4Message UINT8 NumBytes UINT8 BufPntr UINT8 NACAN C while ICAN4TFLG I warte bis ein Sendepuffer verf gbar ist NACAN CANATFLG H w hle den n chst verf gbaren Sendepuffer CANATBSEL 7 NACAN CANATXFG 0 0x80 Sende ID wird festgelegt CANATXFG 1 0x00 H 11 Bit Identifierformat if NumBytes 8 NumBytes 8 for C 0 C lt NumBytes C II nur so viel Bytes senden wie bergeben CANATXFG 4 BufPntr JI Bytes ins Senderegister CANATXFG 0x0C NumBytes JI Anzahl der Bytes ins Datenl ngenregister NACAN CANATBSEL II lese aktuellen
99. ederwertigeren TXx Bit ausgew hlt msCAN Sendepuffer Identifier Register 1 Identifier Register 2 Identifier Register 3 Data Segment Register 0 Data Segment Register 1 Ze Data Segment Register 2 SCH Data Segment Register 3 S Data Segment Register 4 Data Segment Register 5 e K Gol o ce gt x X X X x gt x o N O Data Segment Register 6 Data Segment Register 7 x Time Samo Regster Han ge SF Time Stamp Register Low x7 x9 xA xB A e x lt Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 100 Interruptserviceroutine interrupt void CANx Receive void Der Empfang einer CAN Nachricht wird ber eine Interruptservice routine abgearbeitet Diese wird gestartet sobald eine neue Nach richt empfangen wurde Hier werden die Bytes aus dem Emp Aufgabe fangspuffer geholt und nach der Zwischenspeicherung in einer Variable auf dem Hyperterminal dargestellt Damit die Interrupt serviceroutine gestart werden kann ist darauf zu achten dass in der Interruptvektortabelle auf dem Vektor von CAN Receive die Startadresse der Interruptserviceroutine abgelegt wird Header msCANx h Funktionsaufruf interrupt void CANx Receive void bergabeparameter R ckgabeparameter Reccourcen PortM PMO PM1 CANO PortJ PJ6 PJ7 gt CAN4
100. eichert Zum Senden und Empfangen von Daten stehen auf dem msCAN Modul getrenn te Puffer zur Verf gung F nf Empfangspuffer Rx Puffer sorgen daf r dass alle empfan genen Daten von der CPU verarbeitet werden k nnen ohne die CPU zu sehr zu beanspru chen Die Sendedaten k nnen auf drei Sendepuffer aufgeteilt werden wobei jeder Puffer mit einer Priorit t versehen werden kann Das msCAN Modul sendet dann denjenigen Puf fer mit der h chsten Priorit t zuerst wenn mehrere gef llte und sendebereite Puffer zur Verf gung stehen Receiver Transmitter Bild 1 Puffer Schema des msCAN Moduls Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 83 18 3 Sendevorgang des msCAN Modul Heutzutage setzt manche Software der Anwendungsschicht voraus dass eine CAN Station Node einen kontinuierlichen Datenstrom bestehend aus einer bestimmten Reihenfolge von Botschaften senden und empfangen kann Damit man die Daten l ckenlos versenden kann stellt das msCAN Modul beim MC9S12DG256 drei Sendepuffer zur Verf gung Dann kann die CPU einen Sendepuffer f llen w hrend das msCAN Modul einen anderen Puffer sendet Jedem zum Senden bereiten Puffer kann eine Priorit t von 0x00 bis OxFF zugeteilt werden die die Reihenfolge des Sendens vorgibt Jeder Sendepuffer besteht aus 13 Byte die den Identifier 4 Byte 8 Bytes Daten und das Datenl ngenregister enthalten Zus tz lich steh
101. eite 9 ETETETT gt fles TTT E No r LL LLL S s al a El d a al a D MER CEA KA EA L LLK EIERE Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS 12 Compact Best ckungsplan Anhang Seite 11 Les L Lad L El k Hm 7 S IE 9 B d 7 e CR IA Ir 197 155 jk Drs ar 2347 at Hoa Sie Ge k Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS 12 Compact Best ckungsliste Bauelement Wert RM Bauform Bemerkungen C1 10 pF 200 stehend TP ADW C2 10 pF 200 stehend TP ADW C3 10 pF 200 stehend TP ADW C4 10 pF 200 stehend TP ADW C5 10 pF 200 stehend TP ADW C6 10 pF 200 stehend TP ADW C7 100 nF 200 stehend C8 10 uF 100 Stehend Elko C9 100 nF 200 stehend C10 10 uF 100 Stehend Elko C11 10 uF 100 Stehend Elko C12 10 uF 100 Stehend Elko C13 10 uF 100 Stehend Elko C14 100 nF 200 stehend C15 100 nF 200 stehend C16 100 nF 200 stehend C17 100 nF 200 stehend C18 100 nF 200 stehend C19 1 uF 100 Stehend Elko C20 100 nF 200 stehend C21 100 nF 200 stehend D1 Bat 42 700 liegend D2 Bat 42 700 liegend 42 700 liegend D4 Bat 42 700 l
102. elf ltigen Einsatzm glichkei ten des HCS 12 geben Die durchgef hrten Programmieraufgaben haben sich stark an den Wissensstand des zu vermittelnden Lehrstoffes orientiert und k nnen deswegen nur ein Wegweiser sein Es ist sinnvoll die diversen Datenbl ttern die zum Mikrocontroller geh ren zu lesen oder mindestens einen berblick zu verschaffen Die Datenbl tter sind als PDF Datei auf der CD ROM unter Handb cher abgelegt F r die Programmierung der vorhandenen Schnittstellen liegt im Anhang jeweils eine funk tiont chtige Quelle vor Entsprechende Verweise finden sich in den jeweiligen Kapiteln Wir hoffen das durch unsere Arbeit viele weitere Technikergenerationen die M glichkeit erhalten sich mit der Arbeitsweise des HCS 12 umfassend vertraut zu machen Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 8 2 Selbstst ndigkeitserkl rung Wir erkl ren dass wir die vorliegende Arbeit selbstst ndig und nur unter Verwendung der angegebenen Hilfsmittel angefertigt haben Alle Fremdanteile haben wir kenntlich gemacht und auf die Quellen verwiesen Winold Doege G ran Liebig Mario Kallauke Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 9 3 Aufgabenstellung und Verteilung Winold Doege Programmierung der RS 232 USB PS2 Schnittestelle Timer Versuchsaufbauten Dokumentation Pr sentation Goran Liebig
103. en Zugriffe auf dieses Register sind jederzeit m glich Falls das TFFCA Bit im Timer Sys tem Control Register gesetzt ist wird bei einem Lese oder Schreibzugriff auf das Output Compare Register TCO bis9 das zugeh rige Bit im TFLG1 automatisch gel scht Register offset S 0E 0 RESET pe SE CnF Input Capture Output Compare Kanal n Flag TFLG2 Timer Interrupt Flag 2 Das Bit 7 des Timer Interrupt Flag 2 wird bei berlauf des 16 Bit Z hlers von 0xFFFF nach 0x0000 gesetzt Um das Flag zu l schen muss eine 1 ins Bit 7 geschrieben werden Der Zugriff ist immer m glich Falls im Timer System Control Register das TFFCA Bit gesetzt ist wird Timer Overflow Flag Bit 7 nach jedem Zugriff auf das Timer Count Register au tomatisch gel scht Register offset 6 1 0 EE EE TFLG2 Register TOF Timer Overflow Flag Weitere Informationen finden Sie unter S12ECT16B8CV1 pdf und timer pdf Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 55 12 Piaport Um die Ports A und B zu testen bietet sich das Piaport E A Modul aus dem Unterricht an In unserem Funktionstest wird einfach ein Lauflicht ausgegeben Quelltext piaport c Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 56 13 Der Analog Digital Wandler 13 1 Allgemeines Ein Analog Digitalwandler s
104. enerator mit RC Glied Die Timer kann man auch als PWM benutzen ber die Software kann f r jeden einzelnen PIN festgelegt werden ob er als Input Capture oder als Output Compare genutzt werden soll F r den Pulsweitenmo dulator stehen die Kan le 0 6 zur Verf gung Werden die Timerfunktionen nicht ben tigt so l sst sich das PORTT als normales digitales 1 O Port nutzen Der Timer setzt den Status des Datenrichtungsregisters DDRT au er Kraft Der Timer ist ein 16Bit Z hler 0 65535 Der Timerausgang PT2 ist gleichzeitig am Buzzer angeschlossen Durch ffnen der L t br cke BR3 ist die Hupe deaktiviert Die Bezeichnungen haben sich ge ndert alt neu TSCR TSCR1 TMSK2 TSCR2 TMSK1 TIE OC7M TOC7M OC7C TOC7C BUZZ 74AHCT125 BR3 BUZZ Open disable buzzer Close enable buz Bild 1 PT2 Hupe Es gibt verschiedene Energiespar Modi STOP Der Timer ist aus und alle Takte sind gestoppt FREEZE Der Hauptz hler l uft weiter WAIT Der Hauptz hler l uft weiter NORMAL Der Hauptz hler l uft weiter Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 46 Pulsweitenmodulator PWM Mit dem Output Compare l sst sich beim HC12 ein Pulsweitenmodulator realisieren der ohne den Prozessor zu belasten betrieben werden kann Der Output Compare Kanal 7 hat gegen ber den anderen Kan len eine Sonderstellung Wird im Timer Int
105. er Kanal 1 Dummy ISR Timer Kanal 0 Dummy ISR Real Time Interrupt Dummy ISR Dummy ISR II XIRQ Dummy ISR Software Interrupt Dummy ISR TRAP Illegal Opcode Dummy ISR COP Watchdog Dummy ISR Clock Monitor _stext Programmeingang Hauptprogramm Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12 Compact Staatliche Technikerschule Berlin Autor Mario Kallauke Datei datatypes h Datum 2004 02 12 Funktion Definition der Datentypen Bitmasken ifndef DATATYPES define _ DATATYPES H define INT8 define INT16 define INT32 define UINT8 define UINT16 define UINT32 define VINT8 define VINT16 define VINT32 define VUINT8 define VUINT1 6 define VUINT32 define FLOAT define DOUBLE define BOOL Boolean values ifndef FALSE define FALSE 0 define TRUE 1 endif general bit masks define BM_7 define BM_6 define BM_5 define BM_4 define BM_3 define BM_2 define BM_1 define BM_0 Compiler 0x80 0x40 0x20 0x10 0x08 0x04 0x02 0x01 IIInterruptfreigabe define Interruptfreigabe IIInterupt define interrupt endif DATATYPES H signed char signed int signed long unsigned char unsigned int unsigned long volatile signed char volatile signed int volatile signed long volatile unsigned char volatile unsigned int volatile unsigned long float do
106. eraufbau 7 6 5 4 3 2 1 0 2 m PwwPERO RESET 1 i T 1 i 1 i 7 6 5 4 3 2 1 0 R gt w Bit 7 6 5 4 3 2 1 Bit 0 PWMDTYO RESET 1 1 1 1 I 1 1 1 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 66 Aufgerufene Unterfunktionen Unterfunktion 1 void PWM ini void Initialisierung PWM PPO enable Takt startet High Clock B ist Aufgabe die Clock Quelle Clock B ist der Bus Takt links ausgerichteter Ausgangsmode 8 bit PWM Kan le Header PWM Warnsignale h Funktionsaufruf PWM ini void bergabeparameter Keine R ckgabeparameter Keine Reccourcen PORTP PPO Registerwerte die f r diese Funktion von Bedeutung sind Bedeutung Effekt Bezeichner PWME PWM Enable Register PWM PPO enable PWMPOL PWM Polarity Register Takt startet High PWMCLK Select Register Clock B ist die Clock Quelle PWMPRCLK E EES Clock B ist der Bus Takt keine Teilung PWMCAE gt ERSER Links ausgerichteter Ausgangsmode PWMCTL PWM Control Register 8 bit PWM Kan le PWM Channel 0 PWMDTYO 0x80 Takt initialisiert auf Ox80 Duty Register Registeraufbau T 6 5 4 3 2 1 0 R PWME7 PWME6 PWMES5 4 PWME2 PWME1 PWMEO PWME RESET 0 0 0 0 0 0 0 0 6 5 4 3
107. errupt Mask 2 Re gister das TCRE Bit gesetzt ist wird bei einem Output Compare am Kanal 7 das Timer Count Register auf 0 zur ckgestellt Das bedeutet dass mit dem Kanal 7 die Perioden dauer des Rechtecksignales festgelegt wird die anderen sieben Kan le lassen sich als PWM verwenden Im OC7D wird eingestellt welchen Zustand High Low die einzelnen OC Kan le nach einem Output Compare am Kanal 7 haben sollen Durch die Werte in den Timer Input Capture Output Compare Registern 0 6 lassen sich die Pulsweiten regulieren Wichtig ist dass die Timer Control Register 1 2 so eingestellt sind dass sich der Zustand am Ausgang der PWM Kan le sich nach einem Output Compare ndert Pulse Accumulator Pulse Accumulator hei t auf Deutsch etwa soviel wie Impulsz hler Der HC12 Pulse Accu mulator kann allerdings einiges mehr als einfach Impulse zu z hlen Der Pulse Accumula tor ist wie der Timer Counter ein 16 Bit Z hler der falls im Time Accumulation Mode lau fend ber den Timer Prescaler angesteuert wird Die Einstellung dieses Teilers hat aller dings keinen Einfluss der Pulse Accumulator wird immer ber einen Teiler durch 64 betrie ben Ein Takt des Pulse Accumulator Clocks PACLK dauert beim Lemps12 also 8_s Der Pulse Accumulator kann als Vorteiler f r den Timer Counter verwendet werden damit las sen sich sehr lange Zeiten am Timer Counter generieren Im Time Accumulation Mode z hlt der Pulse Accumulator die Zeit w hrend der der Ka
108. etzt eine analoge Eingangsspannung in einen digitalen Ausgabewert um Ein Eingang von 0 Volt z B liefert den Bitwert 0 ein Eingang von 5 Volt liefert den Bitwert 1024 10 Bit Aufl sung 5 Volt Ure unipolar d h nur positive Eigangsspannungen Die zu erfassende Spannung l sst sich mit analogen Schaltungen an den Analogeingang des Wandler Bausteins anpassen Der MC9S12DG256 besitzt zwei integrierte Analog Digitalwandler und ATD1 Jeder dieser AD Wandler ist ein 8 Kanal 10 Bit Wandler der nach dem Prinzip der sukzessi ven Approximation mit gemultiplexten Eing ngen arbeitet Umsetzer nach dem Verfahren der Schrittweisen N hrung Sukzessive Approximation oder W geverfahren f hren den Vergleich Bitweise durch Beginnend mit der werth chsten Bitposition wird die Vergleichs spannung probeweise um den Wert einer Bitposition erh ht und wenn diese gr er als die zu messende Spannung ist wieder entfernt Ein 10 Bit Wandler ben tigt also zehn Schrit te Die wichtigsten Eigenschaften sind einstellbare Aufl sung von 8 oder 10 Bit 7us Wandlungszeit f r einfache 10 Bit Wandlung Mess Zwischenverst rker f r Samplevorgang programmierbare Sample Zeit Ergebnisse links oder rechtsseitig ausgerichtet Ergebnisse mit oder ohne Vorzeichen Steuerung durch externes Triggerereignis m glich Interrupt nach Beendigung der Wandlung Eingangs Multiplexer f r acht Analogeing nge Pins k nnen als Analog oder Digita
109. ewert Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Akzeptanzfilter 1 ID28 ID27 ID26 1025 1024 1023 1022 1021 Akzeptanztfilter 2 1020 1019 1018 SRR E1 IDE 1 ID17 ID16 ID15 Akzeptanzfilter 3 ID14 ID13 ID12 ID11 ID10 ID9 ID8 ID7 Akzeptanzfilter 4 ID6 ID5 ID4 ID3 ID2 ID1 ID0 RTR Maskenregister 1 M M M M M M M M Maskenregister 2 M M M M M M M M Maskenregister 3 M M M M M M M M Maskenregister 4 M M M M M M M M 0 ID Bit muss mit Code bereinstimmen M 1 ID Bit ist f r die Filterung nicht relevant Um 29 Bit Identifier Filtern zu k nnen m ssen die Bits 19 IDE und 20 SRR gesetzt sein Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 85 18 6 Taktversorgung des msCAN Moduls Das msCAN Modul kann Baudraten von 10 kbps bis 1 Mbps erzeugen Dazu verwendet es entweder als Taktquelle den IP Bus Takt oder den OSCCLK Takt aus dem CRG Clock and Reset Generator Modul Um die verschiedenen Taktraten zu erzeugen kann der Takt im msCAN Modul noch einmal heruntergeteilt werden Dazu ist ein Vorteiler vorhanden der den CANCLK Takt mit dem Faktor 1 bis 64 teilen kann Der resultierende Takt der Time Quanta Takt Tq ist die kleinsteTakteinheit im msCAN Modul Aus diesem Takt werden die Bitzeiten f r die bertragung erzeugt Die kleinste Informationseinheit das Bit wird also in weitere Segmente unterteilt deren Grundeinheit das Zeitquantum Tq ist
110. falschen Resetvektors Es ist daher ebenso wichtig niemals gr ere Kapazit ten an die Resetlei tung des HCS12 anzuschlie en denn der resultierende Effekt w re derselbe 6 3 3 Takterzeugung und PLL Der On Chip Oszillator des MC9S12DG256 kann den prim ren Takt OSCCLK mit Hilfe eines Quarzes Q1 erzeugen der an die Pins EXTAL und XTAL angeschlossen wird Der zul ssige Frequenzbereich ist 0 5 bis 16 MHz Wie blich sind zwei Lastkapazit ten C1 C2 Teil der Oszillatorschaltung Die Anordnung ist jedoch modifiziert wenn man die Schal tung mit der Standard Pierce Konfiguration vergleicht wie sie beim HC11 und den meisten HC12 Typen verwendet wurde Der MC9S12DG256B verwendet einen Colpitts Oszillator mit translated Ground Der Hauptvorteil dieser Oszillatorschaltung ist eine sehr geringe Leistungsaufnahme daf r ist die Komponentenwahl um einiges kritischer Der 512compact verwendet einen Automotive Quartz von mit zwei Lastkapazit ten von lediglich 3 9pF Dar ber hinaus wurde beim Design besonders auf die Minimierung von parasit ren Kapazit ten geachtet die sich nachteilig auf die Signale EXTAL und XTAL auswirken k nn ten Mit einem OSCCLK von 16 MHz ergibt sich ein Default Bustakt von 8 MHz Zur Erreichung h herer Taktfrequenzen bedient man sich der PLL Schaltung des HCS12 Der MC9812DG256 kann intern mit bis zu 25MHz Bustakt arbeiten wobei die meisten Designs eine Frequenz von 24MHz nutzen denn dies m glic
111. hile read_clock LOW amp amp read_data LOW while read_clock HIGH for a 0 byte 0 parity 0 a lt 9 a Bits einlesen while read_clock LOW while read_clock HIGH byte byte read_data lt lt a if a lt 7 1 if read_data 1 parity if 8 paritybit read data if a 9 stopbit read data if stopbit 0 if parity 2 0 ParityBit 1 ist Vorgabe siehe oben if ParityBit paritybit byte 0x00 return byte Staatliche Technikerschule Berlin Doege Liebig Kallauke void kb_in UINT8 byte Rechner gt Tastatur UINT8 Bit 11 0 0 0 0 0 0 0 0 0 1 0 volatile unsigned n 0 int a 0 parity 0 ParityBit 0 b 0 for a 0 a lt 7 a Bit a byte gt gt a amp 0x01 if Bit a 1 parity if parity 2 0 Bit 8 1 0 ist Vorgabe siehe oben data off warte 200 warte ca xxx uS while read for a 0 lt 9 a do set_data Bit a while read_clock LOW while read_clock HIGH ENABLE 5 JI Geforderte Zeit durch 1 5us wert void warte volatile unsigned long wert while wert interrupt void kb isr void unsigned cvar DISABLE_INTERRUPTS Alle Interrupts sperren cvar kb out hole Zeichen von der Schnittstelle 0 warte 12000 l
112. ht eine besonders flexible Festlegung der SCI Baudraten An den Controllerpin XFC wird eine Tiefpassfilterkombination angeschlossen sie besteht aus den Bauelementen R3 C3 und C4 Ihre Aufgabe ist die Verminderung der Welligkeit des VCO Signals Falls die PLL unbenutzt bleibt kann XFC mit VDDPLL verbunden wer den andernfalls bildet VDDPLL den Bezugspotenzial f r den Filter Die Wahl der Filter komponenten ist stets ein Kompromiss zwischen Einschwingzeit und Stabilit t der Schleife 5 bis 10kHz Bandbreite und ein Dampingfaktor von 0 9 sind gute Startwerte f r die Berech nung Mit einer Quarzfrequenz von 16MHz und einem gew nschten Busclock von 24MHz ergibt sich eine m gliche Auswahl zu R3 4 7k und C3 22nF C4 sollte etwa 1 20 1 10 x betragen hier also 2 2nF Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 18 6 3 4 Betriebsarten BDM Unterst tzung Drei Pins des HCS12 dienen der Auswahl der MCU Betriebsart MODA MODB und BKGD MODC MODA und MODB werden durch die Widerst nde R1 und R2 auf L Pegel ge bracht um Single Chip Mode auszuw hlen BKGD ist ber R7 mit H Pegel verbunden damit die MCU im Normal Single Chip Mode startet Dies ist die bliche Betriebsart zur Abarbeitung von Anwendungsprogrammen Die HCS12 Betriebsart welche f r Download und Debugging genutzt wird hei t Background Debug Mode BDM BDM ist direkt nach Reset aktiv wenn die MCU im Special S
113. iaport PA4 A PA5 X5 PA5 nein Piaport PA5 A PA6 X5 PA6 nein Piaport PA6 A PA7 X5 PA7 nein Piaport PA7 M PM0 X4 PM0 nein intern M PM1 X4 PM1 nein intern M PM2 X4 PM2 nein intern M PM3 X4 PM3 nein intern M PM4 X4 PM4 nein intern M PM5 X4 PM5 nein intern M PM6 X5 PM6 nein intern M PM7 X5 PM7 nein intern Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 14 312 Port Port Stecker Bezeichnung Interrupt Anschluss Anschluss Abgesichert ezeichnung f hig f r bezeichnung ber P PPO X4 PPO nein Pulsweiten Y 1 TALS245 P PP1 X4 PP1 nein Pulsweiten Y2 TALS245 P PP2 X4 PP2 nein Tastatur DO P PP3 X4 PP3 nein Tastatur D1 P 4 X4 4 Tastatur D2 P PP5 X4 PP5 nein Tastatur D3 P PP6 X4 PP6 nein Tastatur DA P PP7 X4 PP7 nein frei T PTO X4 PTO nein Timer out Y3 74LS245 T PT1 X4 PT1 nein Timer out Y4 74LS245 T PT2 X4 PT2 nein Timer out Y5 74LS245 T PT3 X4 PT3 nein Timer out Y6 74LS245 T PT4 X4 PT4 nein frei T PT5 X4 PT5 nein frei T PT6 X4 PT6 nein frei T PT7 x4 PT7 nein frei AD PADOO X5 PAD00 nein ADW PAD00 LM348 AD PAD01 X5 PAD01 nein ADW PAD01 LM348 AD PAD02 X5 PAD02 nein ADW PAD02 LM348 AD PAD03 X5 PAD03 nein ADW PAD03 LM348 AD PAD04 X5 PAD04 nein frei AD PAD05 X5 PAD05 nein frei AD PAD06 5 PAD06 nein frei AD PAD07 X5 PAD07 nein frei
114. id initSCI1 UINT16 bauddiv UINT8 getSCI1 void void putSCI1 UINT8 0x20 0x08 0x80 0x40 0x20 0x10 0x02 0x01 0x80 0x20 0x10 0x08 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12 Compact Staatliche Technikerschule Berlin Autor en Winold Doege Mario Kallauke G ran Liebig Datei S12 sci c Datum 2004 05 10 Funktion Initialisierung der SCIO RS232 und SCI1 USB Das Holen und Senden von Bytes include datatypes h include hcs12dp256 h include s12_sci h void initSCIO UINT16 bauddiv SCIOBD bauddiv amp 0x1fff baudrate divider has 13 bits SCIOCR1 0 mode 8N1 SCIOCR2 BM RE Transmitter Receiver enable UINT8 getSCI0 void 1 while SCIOSR1 amp BM RDRF 0 return SCIODRL void putSCI0 UINT8 c while SCIOSR1 amp BM 0 SCIODRL c void initSCI1 UINT16 bauddiv SCI1BD bauddiv amp 0x1fff baudrate divider has 13 bits SCI1CR1 0 mode 8N1 SCI1CR2 BM_TE BM_RE Transmitter Receiver enable UINT8 getSCI1 void while SCIHSR1 amp BM RDRF 0 return SCI1DRL void putSCI1 UINT8 while
115. iegend D5 Bat 42 700 liegend D6 Bat 42 700 liegend D7 Bat 42 700 liegend D8 Bat 42 700 liegend J1 14 polig Messerleiste J2 10 polig Messerleiste J3 10 polig Messerleiste J4 2 polig Steckleiste J5 14 polig Steckleiste J6 2 polig Steckleiste J7 40 polig Messerleiste J8 6 polig Klemmleiste J9 6 polig Klemmleiste J10 14 polig Messerleiste J11 2 polig Steckleiste J12 72 polig Steckleiste J13 72 polig Steckleiste J14 10 polig Messerleiste J15 4 polig USB Buchse J16 2 polig Steckleiste J17 6 polig PS Buchse Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS 12 Compact Best ckungsliste Bauelement Wert RM Bauform Bemerkungen R1 10 Kohm 400 liegend TP ADW R2 10 Kohm 400 liegend TP ADW R3 10 Kohm 400 liegend TP ADW R4 10 Kohm 400 liegend TP ADW R5 10 Kohm 400 liegend TP ADW R6 10 Kohm 400 liegend TP ADW R7 120 Ohm 400 liegend R8 10 Kohm 400 liegend R9 20 Kohm liegend Poti R10 20 Kohm 400 liegend R11 10 Kohm 400 liegend R12 10 Kohm 400 liegend U1 LM 348 mit Fassung 14 polig U2 LM 348 mit Fassung 14 polig U3 VFC424 mit Fassung 8 polig 04 7415541 Fassung 20 polig 05 74C922 mit Fassung 14 polig Staatliche Technikerschule Berlin Doege Liebig Kallauke
116. igkeit aus Durch eine Erh hung der Eingangsspannung w rde selbige an den Ausgang weitergereicht werden und als R ckkopplung auf den invertierenden Ein gang diesen gegenl ufig steuern Somit wurden bei idealen Operationsverst rkern extrem hochfrequente Rechteckspannungen entstehen Bei realem Operationsverst rker kann die Ausgangsspannung dem Eingang nicht schnell genug folgen und pendelt sich auf einen Mittelwert ein welcher fast genau der Ein gangsspannung folgt Als Absicherung der Operationsverst rkereing nge wurden jeweils zwei Schottkydioden BAT 42 eingesetzt Sie sollen durch ihre Schnelligkeit und Schaltung den Eingang vor Spannungen ber VCC und negativen Spannungen sch tzen Au erdem besteht die M g lichkeit durch Best ckung des Tiefpasses R 1 und C 1 eine Unterdr ckung von Frequenzen oberhalb der Abtastrate des ADC zu erreichen In der Schaltung ist eine Kombination von 8 2 KOhm und 470 pFarad vorgesehen was eine Frequenz von 259 kHz bedeuten w rde 6 5 2 Digital Analog Wandler F r den Digital Analog Wandler gilt selbe Funktionsweise nur das auf die Dioden ver zichtet werden konnte da keine fehlerhafte Spannung erwartet wird Au erdem ist durch den Operationsverst rker der Ausgang des Mikrocontrollers gegen berlast und Kurz schluss gesch tzt Auch k nnen kleine Lasten gegebenenfalls direkt angeschlossen wer den Das RC Glied dient der Gl ttung der Ausgangskurve Staatliche Technikerschu
117. iming Register 0 Address Offset 02 Bit 7 6 5 4 3 2 1 Bit 0 SJW1 SJW BRP4 BRP3 BRP2 BRP0 0 0 0 0 0 0 0 0 SJW1 und SJWO sind zur Einstellung der Synchronisationssprungweite Sie kann im Be reich von 1 00 und 4 11 Time Quanta eingestellt werden Read Write Reset BRP Bits damit wird der Baudratenvorteiler mit dem Teilerfaktor P 1 bis 64 eingestellt Dabei entspricht der bin re wert von BRP dem Teilerfaktor P 1 d h BRP 0 bedeutet Teilerfaktor P 1 oder BRP 0x3f 63 bedeutet Teilerfaktor P 64 CANBTR1 msCAN Bus Timing Register 1 Address Offset 03 Bit 7 6 5 4 3 2 1 Bit 0 Read SAMP TSEG22 TSEG21 TSEG20 TSEG13 TSEG12 TSEG11 TSEG10 Write SAMP VVahl zwischen einfacher 0 und dreifacher Abtastung 1 TSEG13 TSEG12 TSEG11 TSEG10 Zeitsegment1 Anzahl der Tq Taktzyklen 1 TSEG23 TSEG22 TSEG21 TSEG20 Zeitsegment2 Anzahl der Tq Taktzyklen 1 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 96 CANxIDMRx msCAN Identifier Mask Registers Read AM7 AM6 AM5 AM4 AM3 AM2 AM1 AMO Write Reset 0 0 0 0 0 0 0 0 Address Offset 15 CANIDMR1 Read AM6 AM5 AM4 AM3 AM2 AM1 AM0 Write Reset 0 0 0 0 0 0 0 0 Address Offset 16 CANIDMR2 Read AMT AM6 AM5 A
118. indet unsynchronisiert zwischen den Busteilnehmern statt d h es wird kein Synchronisationstakt mit bertragen und die Synchronisation wird ber die Daten selbst vorgenommen Alle Stationen k nnen jeder zeit senden und alle Stationen empfangen alle Botschaften auf dem CAN Bus Multi Master CAN ist ein Standard in der Automobilindustrie und wird auch vielfach in Industrie anwendungen verwendet Der MC9S12DG256 verf gt ber zwei CAN Module die mit CANO und CANA bezeichnet werden CANO kommuniziert ber die Portpins PMO und PM1 mit einem On Board CAN Interface Chip IC5 welcher das physische Businterface bildet Wenn der S12compact der letzte Knoten am CAN Bus ist wird eine Terminierung erforderlich Sie kann durch schlie der L tbr cke BR2 aktiviert werden Das Businterface f r den CANA ist nicht auf dem S12compact realisiert Dieses haben wir auf unserer Tr gerplatine durch den CAN Interface Chip PCA82C250T realisiert Die TTL Signale f r CAN4 werden ber die Portpins PM6 und geleitet Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 82 18 2 msCAN Implementation des HCS12 Mikrocontrollers Bei CAN k nnen Daten zu jeder Zeit und in beliebiger Menge von jeder Station gesendet und empfangen werden Da der Mikrocontroller nur eine begrenzte Leistungsf higkeit zur Verf gung stellt die empfangenen Daten zu verarbeiten werde sie in Puffern zwischenge sp
119. inen ununterbrochenen Ton h herer Wert gibt gr ssere Zeit PWM_disable Staatliche Technikerschule Berlin Doege Liebig Kallauke void Warnsignal3 void UINT8 w x y 2 k PWM_ini for k 0 k lt 2 k for w 0 w lt 2 w for x 0xFF x gt 0x01 x PWMPERO x for y 0 y lt 0xFE y PWMDTYO y Delay1 1 for y 0xFF y gt 0x01 y PWMDTYO y Delay1 1 for z 0xFF z gt 0x01 z PWMPERO z for y 0 y lt 0xFE y PWMDTYO y Delay1 1 for y 0xFF y gt 0x01 y PWMDTYO y Delay1 1 Delay1 10000 PWM disable Warnsignal Einfache Z hlvariablen FT nt 3 mal Tonkontrolle f r die kommende u ere Schleife das PWM Period Register Ton w chst in der Schleife L d das PWM Dienstregister l Optionale Variable delay Ton f llt in der Schleife FL d das PWM Dienstregister l Optionale Variable delay Kontrolle f llt au erhalb der Schleife L d das PWM Period Register Ton w chst in der Schleife L d das PWM Dienstregister l Optionale Variable delay f llt in der Schleife L d das PWM Dienstregister l Optionale Variable delay l Wartezeit zwischen den T nen Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 118 void DelayO int delayTime UINT16 x
120. ingle Chip Mode betrieben wird Dies wird erreicht indem zus tzlich zu MODA und MODB auch die BKGD Leitung w hrend Reset vor bergehend auf L Pegel gebracht wird Zwischen beiden Modi kann man leicht um schalten da sich lediglich der Resetzustand der BKGD Leitung unterscheidet Ein BDM Pod welches am Steckverbinder X1A angeschlossen wird kann die Umschaltung automatisch vornehmen und macht einen mechanischen Umschalter ber fl ssig Das BDM Pod w re ohnehin notwendig zum BDM basierten Download von Soft ware bzw als Debugger gesteuert von Software auf einem Entwicklungs PC Der 6 pol Steckverbinder X1A folgt der Motorola Standardbelegung f r BDM12 Anschl sse Steckverbinder X1B tr gt einige zus tzliche Signale welche normalerweise f r das BDM Debugging nicht zwingend erforderlich sind Einige Debugger jedoch bieten zu s tzliche Features welche das Vorhandensein dieser Signale voraussetzen 6 3 5 Integriertes EEPROM Der interne EEPROM Speicher des MC9S12DG256 ist 4KB gro und 1024 Sektoren zu je 4 Byte 32 Bit unterteilt Gel scht wird stets sektorweise 4 Byte w hrend die Pro grammierung wortweise 2 Byte erfolgen kann Lesezugriffe auf den EEPROM erfolgen beliebig also byte oder wortweise Nach Reset ist der EEPROM Bereich im MC9S12DG256 ab Adresse 0 gemappt wird dadurch aber partiell 0x0000 0x03FF von den Steuerregistern berlagert Will man nicht auf die ersten 1024 Byte des EEPROM ver zichten m
121. instel lung des Displaykontrastes ben tigt Stromversorgung f r Standard LCD Displays LCD Display Bild 1 Stromversorgung Der Controller und damit die LCD Anzeige besitzt ein paralleles Interface bestehend aus e ein 8 Bit Datenbus D0 D7 e Enable Leitung e RS Leitung e R W Leitung 1101 Enable 2x16 Display HD44780 im 5x8 Mode zweizeilig Bild 2 2x16 Display HD44780 im 5x8 Mode zweizeilig Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 74 Es gibt zwei verschiedene Moglichkeiten zur Ansteuerung eines solchen Displays den 8Bit und den 4Bit Modus F r den 8Bit Modus werden wie der Name schon sagt alle acht Datenleitungen zur Ansteuerung verwendet Somit kann durch einen Zugriff immer ein ganzes Byte bertragen werden Der 4Bit Modus verwendet nur die oberen vier Datenlei tungen DB4 DB7 Um ein Byte zu bertragen braucht man deshalb zwei Zugriffe wobei zuerst das h herwertige Nibble 724 Bits also Bit 4 bis Bit 7 bertragen wird und dann das niederwertige also Bit O bis Bit 3 Die unteren Datenleitungen des LCDs werden ein fach auf GND gelegt Der 4Bit Modus hat den Vorteil dass man 4 IO Pins weniger ben tigt als beim 8Bit Modus weshalb wir uns hier f r
122. it HCS12Compact Grundplatine 3 7 Der Einstieg 25 7 1 Blink 1 Das erste Programm 25 8 PS 2 26 8 1 Allgemeines 26 8 2 Programmfunktionen 27 9 RS 232 33 9 1 Allgemeines 33 9 2 Programmfunktionen 34 10 USB 38 10 1 Allgemeines 38 10 2 Treiber Installation unter Windows XP 38 10 3 Terminal f r USB Schnittstelle 40 10 4 Programmfunktionen 42 11 Timer 45 11 1 Allgemeines 45 12 Piaport 55 13 Der Analog Digital Wandler 56 13 1 Allgemeines 56 13 2 Funktionstest Programmfunktionen Registerbeschreibungen 57 14 Digital Analog Wandler 61 14 1 Allgemeines 61 14 2 Funktionstest Programmfunktionen Registerbeschreibungen 61 15 Pulsweitenmodulationsausg nge 64 15 1 Allgemeines 64 15 2 Funktionstest Programmfunktionen Registerbeschreibungen 65 16 Keypad 70 16 1 Allgemeines 70 16 2 Funktionstest Programmfunktionen Registerbeschreibungen 70 17 LCD Display 73 17 1 Allgemeines 73 17 2 Funktionstest Programmfunktionen Registerbeschreibungen 75 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 4 18 CAN Schnittstelle 81 18 1 berblick 81 18 2 msCAN Implementation des HCS12 Mikrocontrollers 82 18 3 Sendevorgang des msCAN Modul 83 18 4 Empfangsvorgang beim msCAN Modul 84 18 5 Filtern von Botschaften im msCAN 84 18 6 Taktversorgung des msCAN Moduls 85 18 7 Bestimmung der Bustiming Parameter 88 18 8 Funktionstest Programmfunktionen Registerbeschreibungen 89 19 Akustis
123. lauke Projektarbeit HCS12Compact Grundplatine 38 10 USB 10 1 Allgemeines Auf dem S12Compact Modul ist dieser Chip f r die USB Kommunikation zust ndig 10 2 Treiber Installation unter Windows XP Die Datei D10504 zip in das Verzeichnis c temp Datei Bearbeiten Ansicht Favorten Extras kopieren und entpacken Qus 9 Suchen Gr e Typ Interpret Albuntitel 251KB ZIP komprimierter O Dateiordner Assistent f r das Suchen neuer Hardware Den USB Stecker vom S12Compact Modul mit dem Mit diesem Assistenten k nnen Sie Software f r die folgende ve rb i n d en Hardwarekomponente installieren USB lt gt Serial Cable 9 Falls die Hardwarekomponente mit einer CD A 4 oder Diskette geliefert wurde legen Sie diese S jetzt ein Wie machten Sie vorgehen Klicken Sie auf Weiter um den Vorgang fortzusetzen Assistent f r das Suchen neuer Hardware W hlen Sie die Such und Installationsoptionen gt N m Pfad direkt eintippen oder ber Durchsuchen Diese Quellen nach dem zutreffendsten Treiber durchsuchen Verwenden Sie die Kontrollk stchen um die Standardsuche zu erweitern oder einzuschr nken Lokale Pfade und Wechselmedien sind in der Standardsuche mit a nwa h n einbegriffen Der zutreffendste Treiber wird installiert Wechselmedien durchsuchen Diskette CD v Folgende Quelle ebenfalls durchsuchen CATempi
124. le Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 23 6 5 3 CAN Controller Der MC9S12DG256 verf gt ber zwei CAN Module die mit CANO und CANA bezeichnet werden CANO kommuniziert ber die Portpins PMO und PM1 mit einem on board CAN Interface Chip 5 welcher das physische Businterface bildet Wenn der S12compact der letzte Knoten am CAN Bus ist wird eine Terminierung erforderlich Sie kann durch schlie der L tbr cke BR2 aktiviert werden Das Businterface f r den CANA ist nicht auf dem S12compact realisiert Dieses haben wir auf unserer Tr gerplatine durch den CAN Interface Chip PCA82C250T realisiert Die TTL Signale f r CAN4 werden ber die Portpins PJ6 SDA und PJ7 SCL geleitet Durch die Steckbr cke J2 kann auch hier eine Terminierung vorgenommen werden Der CAN Controller wird im Kapitel CAN BUS sehr ausf hrlich erkl rt 6 5 4 LCD Display Zum Einsatz kam ein zweizeiliges HD 44780 Dieses sehr h ufig eingesetzte Display sollte nach M glichkeit direkt auf der Platine integriert werden So k nnen Anschlussfehler und Verluste durch lose Displays weitestgehend eingeschr nkt werden Versorgt wird ber die vorhandenen VCC Spannung Helligkeitsanpassung erfolgt ber das Poti R 9 Bei dem eingesetzten Display ist der LED Anschluss f r die Hintergrundbe leuchtung separat vorgenommen wurden welches durch einen separaten Anschluss J6 jederzeit aktiviert werden kann 6 5 5 Piapor
125. leingang gemultiplext sein Wandlungssequenzen von einer bis acht Wandlungen einstellbar Ununterbrochener Wandlungsmodus einstellbar Mehrfachabtastungen eines Kanals m glich Durch Software sind verschiedene Betriebsmodi einstellbar Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 57 10B8C Bus Clock Clock ATD clock Conversion w Complete Interr Mode and Timing Control Results AN3 PAD3 AN2 PAD2 Comparator AN1 PAD1 ANO PADO ATD Input Enable Register Port AD Data Register Bild 1 Blockdiagramm eines AD Wandlers des MC9S12DG256 Der AD Wandler hat eine Anzahl von insgesamt 12 externen Pins Die Pins ANO bis AN7 sind die acht analogen des Wandlers Alle Pins k nnen neben der Funktion des Analog Eingangs individuell als digitaler Port AD Eingang konfiguriert werden Der Pin AN7 kann zus tzlich noch als externer Triggereingang konfiguriert werden mit dessen Hilfe der Wandlungsprozess angesto en werden kann Zus tzlich benutzt der AD Wandler noch die Pins Vra und Va obere und untere Referenzspannung sowie Vo und Vssa Spannungsversorgnug f r den analogen Teil des AD Wandlers Der AD Wandler wird in einen analogen und in einen digitalen Subblock unterteilt Der analoge Subblock enth lt die analoge Elektronik die ben tigt wird um eine Analog Digitalumwandlung durchzuf hren Eine separate Analog Spannung
126. lete Flag abfragen ATDODRO ATEM Hier steht das Wandlungsergebnis Ergebnisregister Registeraufbau _03 7 6 5 4 3 2 1 0 R 0 s w DC S4C S2C S1C FIFO FRZ1 FRZO ATDOCTL3 RESET 0 0 1 0 0 0 0 0 Es Unimplemented or Reserved _05 7 6 5 4 3 2 1 0 R 0 w DJM DSGN SCAN MULT CC CB CA ATDOCTL5 RESET 0 0 0 0 0 0 0 0 Unimplemented Reserved _06 7 6 5 4 3 2 1 0 R 0 0 CC2 CC1 CC0 SCF ETORF FIFOR ATDOSTATO RESET 0 0 0 0 0 0 0 0 Unimplemented or Reserved Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 60 7 6 5 4 3 2 1 0 R BIT9MSB BIT8 BIT7 6 BIT 5 BIT4 BIT3 BIT2 10 bit data W BIT7MSB BIT6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BITO 8 bit data ATDODRO RESET 0 0 0 0 0 Unimplemented Reserved BOTTOM VIEW Not to Scale PIN A PIN 2 PIN 1 Bild 2 Temperatursensor AD22100K Bild 3 Anschlussbelegung AD22100K Berechnung der Ausgangsspannung Vour V 5V 1 375V 22 5mV C Ta Typische Ausgangsspannungen V 5 0V Ta 0 C gt VOUT 1 375 V V 5 0V Ta 100 C gt VOUT 3 625 V Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 61 14 Digital Analog Wandler 14 1 Allgemeines Ein Digital Analogwandler setzt einen bin
127. liche Technikerschule Berlin Autor en Winold Doege Mario Kallauke Goeran Liebig Datei ps2_test c Datum 2004 05 16 Funktion Die CPU ist auf 24MHz getaktet Ein Ausgabe ueber die PS2 Tastatur include datatypes h include hcs12dp256 h include s12 crg h zinclude s12 sci h zinclude s12 led h zinclude s12 ps2 h void HC12Setup void this func is called by the Startup Code COPCTL 0x00 same as reset default initPLL IIMain void main void HC12Setup auf 16 MHz die CPU zu takten initSCI0 51 CPU Takt ist auf 16 MHz gestellt 19200bps Hyperterminal auf 19200bps einstellen init ps2 Anitialisierung der PS2 Schnittstelle led on printf c c 0x06 0x0c Bildschirm loeschen printf nHallo Welt n while 1 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12 Compact Staatliche Technikerschule Berlin Autor en Winold Doege Mario Kallauke G ran Liebig Datei s12_ps2 h Datum 2004 05 16 Funktion PS2 auf s12Compact anschliessen ifndef 512 PS2 H define 512 PS2 H include datatypes h 1 Ausgang 0 gt Eingang IPJO Clock gt IIPJ1 Data Ausgang define ACLK 0x01 IPJO Ausgang define ADATA 0 02 IIPJ1 Ausgang Data
128. lum das Zeite Zeichen zu schlucken IIfO xx else printf c scancode_ascii cvar Ausgabe auf dem Bildschirm Ilprintf nAls Hex 02 als Zeichen c cvar scancode ascii cvar ENABLE_INTERRUPTS IIInterrupts wieder freigeben unsigned char scancode_ascii unsigned char code unsigned char symbol switch code case 0x29 symbol break case 0x5a symbol n break case 0x0e symbol break case 0x16 symbol 1 break case 0x1e symbol 2 break case 0x26 symbol 3 break case 0x25 symbol 4 break Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 161 case 0x2e symbol 5 break case 0x36 symbol 6 break case 0x3d symbol 7 break case 0x3e symbol 8 break case 0x46 symbol 9 break case 0x45 symbol 0 break case 0x4e symbol 3 break case 0x55 symbol break case 0x66 symbol 8 break case 0x15 symbol Q break case Ox1d symbol W break case 0x24 symbol EI break case 0x2d symbol R break case 0x2c symbol T break case 0x35 symbol Z break case 0x3c symbol U break case 0x43 symbol l break case 0x44 symbol O break case Ox4d symbol T break case 0x5
129. mer Input Cap _ TIOS ture Output Compare 0x02 select Output Compare function for chan nel 2 Select Register DDRT E 0x02 PT1 PT2 output Direction Register Timer Interrupt Enable Register TIE 0x02 enable Interrupt for channel 2 Timer Control Regis ter 2 TCTL2 OxfD timer disconnected from PT2 pin Unterfunktion 3 void setFreqOut UINT16 period Aufgabe In dieser Funktion wird die Frequenz erzeugt Header freqout h Funktionsaufruf setFreqOut UINT16 period bergabeparameter Periodendauer in us R ckgabeparameter keine Reccourcen PortP PT2 Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner Bedeutung Werte Effekt TCTL2 Timer Control timer disconnected or connected from Register 2 PT2 pin Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 104 Interruptserviceroutine interrupt void isrOC2 void Aufgabe Interruptserviceroutine wird periodisch aufgerufen Header freqout h Funktionsaufruf setFreqOut UINT16 period bergabeparameter Periodendauer in us R ckgabeparameter keine Reccourcen PortP PT2 Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner Bedeutung Effekt Timer Input Captu i TC2 re Output Compare timer disconnected or connected from
130. meter keine Reccourcen PortK PKO PK7 Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner Bedeutung Werte Effekt DDRK de Datenrichtungsregister tungsregister PORTK PORTK Wert an PORTK Registeraufbau Name Bte Bt5 Bt4 Bt2 Bit Bit O PORTK R Bit 7 6 5 4 3 2 1 Bit O PORTK Read q Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine T1 Aufgerufene Unterfunktion Unterfunktion 1 void delay16 UINT16 i Aufgabe Integerwert wird runtergez hlt Header delay h Funktionsaufruf delay16 bergabeparameter Integerwert 0 OXFFFF R ckgabeparameter keine Funktion 2 void s steuer UINT8 s dient zur Steuerung des Displays Steuerbyte wird in Nibble zerlegt und nacheinander ins Steuerregister geschrieben Header Lcd h Funktionsaufruf s_steuer UINT8 s bergabeparameter Steuerbyte z B 0x00 Cursor 1 Zeile 1 Zeichen 0x40 Cursor 2 Zeile 1 Zeichen R ckgabeparameter keine Reccourcen PortK PKO PK7 Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner Bedeutung Werte Effekt DDRK PORTR Datenrichtungsregister tungsregister PORTK PORTK Wert an PORTK Registeraufbau Name Bte
131. n seriellen Schnittstelle in das USB Protokoll gem der der zeit g ltigen USB Spezifikation 2 0 Der FT232BM geh rt der Klasse der USB Full Speed Devices an Die Daten werden vom HCS12 via SCI1 an den USB UART bermittelt dort auf USB umgesetzt und schlie lich im PC ber einen virtuellen COM Port bereit gestellt Die hierzu erforderliche Treibersoftware stellt der Hersteller FTDI f r die An wender des FT232BM abgabenfrei zur Verf gung siehe http www ftdichip com Zum Manuskriptzeitpunkt waren Treiber f r Windows PCs 98 bis XP Apple Rechner und Li nuxsysteme verf gbar Auch auf der S12compact Produkt CD sind die Treiber Windows Plattform enthalten ggf existieren aber bereits neuere Versionen Zwecks Datentransfer zwischen USB UART und Mikrocontroller sind ausschlie lich die Signale TXD und RXD TXD1 und RXD1 an der erforderlich Bei Bedarf kann zus tzlich ein Hardwareproto koll ber RTS und CTS implementiert werden Den RTS Ausgang wertet die MCU ber ihren Portpin PM6 aus und steuert mit PM7 den CTS Eingang des USB UARTS an Sen de bzw Empfangsaktivit ten signalisiert der USB UART bei Bedarf ber zwei Leuchtdio den LEDs Die Anoden dieser LEDs werden mit VCC 5V verbunden die Kathoden an IRXLED bzw TXLED angeschlossen X4 67 68 ber den Anschluss PWREN zeigt IC15 an ob die USB Enumerierung abgeschlossen ist Dies kann ber das Controllersignal 4 ausgewertet werden Das Kontrollsignal SLEEP
132. nal 7 des Timer Counters auf High oder Low liegt Im Event Counter Mode z hlt der Pulse Accumulator bei jeder am Ka nal 7 ankommenden fallenden oder ansteigenden Flanke um eins vorw rts Wichtige Register f r den Pulse Accumulator TSCR1 Timer System Control Register1 Ohne das das Timer Enable Bit gesetzt ist arbeitet der Pulse Accumulator nur im Event Counter Modus e PACTL Pulse Accumulator Control Register In diesem Register werden alle wich tigen Einstellungen f r den Betrieb des Pulse Accumulators vorgenommen e PAFLG Pulse Accumulator Flag Register Nach ein berlauf des Pulse Accumula tor Counters oder wenn die im PACTL eingestellte Flanke am Timerkanal 7 einge troffen ist werden hier die entsprechenden Interrupt Flags gesetzt e PACNT Pulse Accumulator Count Register Der Z hler des Pulse Accumulators Im Gegensatz zum Timer Counter ist hier ein Schreibzugriff jederzeit m glich Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit Bus clock Prescaler 16 bit Counter Modulus counter Interrupt Timer overflow interrupt Timer channel 0 interrupt Registers Timer channel 7 interrupt PA overflow 16 bit interrupt Pulse accumulator A PA input interru PB Ho 16 bit interrupt Pulse accumulator B 16 bit Modulus Counter HCS12Compact Grundplatine 47 Channel 0 Input capture Output compare Channel 1 Input capture Output compare Channel 2 Input
133. ndene Geh use wurde er reicht dass aufwendige Umbauten Neubauten weitgehend erleichtert oder minimiert wur den Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 2224 6 5 Elektrischer Aufbau der Tr gerplatine Der elektrische Aufbau der Tr gerplatine diente im Grossen und Ganzen der Anpassung der vorhandenen HCS 12 Platine an die Erfordernisse der Staatlichen Technikerschule Konkrete Informationen zu den jeweiligen Schnittstellen entnehmen Sie bitte den jeweiligen Kapiteln 6 5 1 Analog Digital Wandler Projektvorgabe war die Realisierung von 4 Analog Digital Wandlereing ngen Diese Ein g nge sollten zum HCS 12 Port AD PAD 00 PAD 03 gef hrt werden Au erdem sollte zur Absicherung der Mikrocontrollereing nge eine Schutzschaltung vorgesehen werden welcher bei Fehlern durch Studierende auch schnell und preiswert ersetzt werden kann Die Eing nge sollten von au en zug nglich sein Zum Einsatz kam ein Operationsverst rker LM 348 4x OPV Dieser Baustein ist neben der vorhandenen Integration von gleich 4 Operationsverst rkern auch aus Kostengr nden gew hlt wurden Der Operationsverst rker wurde als Impendanzwandler Spannungsfol ger aufgebaut Diese Schaltung weist vor allem einen sehr hohen Eingangswiderstand und eine Verst rkung von 1 auf Der Spannungsfolger nutzt einen unerw nschten Nachteil des Operationsverst rkers die Anstiegsgeschwind
134. ne ATDODROH _P 0x90 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 142 define ATDODROL _P 0x91 define ATDODRO _LP 0x90 define ATDODR1H _P 0x92 define ATDODR1L _P 0x93 define ATDODR1 _LP 0x92 define ATDODR2H _P 0x94 define ATDODR2L _P 0x95 define ATDODR2 _LP 0x94 define ATDODR3H _P 0x96 define ATDODR3L _P 0x97 define ATDODR3 0 96 define ATDODRAH _P 0x98 define ATDODRAL _P 0x99 define ATDODRA _LP 0x98 define ATD0DR5H _P 0x9A define ATDODRSL P 0x9B define ATDODR5 LP 0x9A define ATDODR6H P 0x9C define ATDODR6L P Ox9D define ATDODR6 LP 0x9C define ATDODR7H P Ox9E define ATDODR7L P Ox9F define ATDODR 7 LP Ox9E define PWME P OxAO define PWMPOL P OxA1 define PWMCLK _P 0xA2 define PWMPRCLC _P 0xA3 define PWMCAE P 0xA4 define PWNMCTL _P OxA5 define PWMTST P 0xA6 define PWMPRSC P OxAT define PWMSCLA P 0xA8 define PWMSCLB P 0xA9 define PWMSCNTA define PWMSCNTB P OxAB define PWMCNTO _P define PWMCNT1 _P define PWMCNT2 _P define PWMCNT3 _P OxAF define PWMCNT4 0 0 define PWMCNT5 _P 0xB1 _P 0xB2 _P 0xB3 OxAC OxAD OxAE define PWMCNT6 0xB2 define PWMCNT7 0xB3 define PWMPERO _P 0xB4 define PWMPER1 _P 0xB5 define PWMPER2 _P 0xB6 define PWMPER3 _P 0xB7 define PWMPER4 _P 0xB8 define PWMPER5 0 9 define PWMPE
135. ne S12 REFDV S12_OSCCLK S12_REFCLK 1 define S12_SYNR S12_PLLCLK 2 S12_REFCLK 1 define S12 ECLK S12_PLLCLK 2 final bus clock frequency ECLK define S12 ECLK 512 OSCCLRK 2 bus clock if PLL not in use off Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 33 9 RS 232 9 1 Allgemeines Die RS232 ist die Standard Schnittstelle zwischen PC und der Au enwelt Hier ist ein klei nes Beispiel wie man die Verbindung zwischen PC und unserem S12Compact Modul her stellt Beschreibung der Verbindung l HyperTerminal starten Si TEES Start Alle Programme Zubeh r Kommunikation gt HyperTerminal Klick Geben Sie den Namen f r die neue Verbindung ein und weisen Sie ihr ein Symbol zu Name St2Compaci Namen z B S12Compact eingeben und gt OK Symbol Verbinden mit Q gt berpr fen Sie an welchen Port COM1 oder COM2 am PC der S12Compact angeschlossen ist Geben Sie die Rufnummer ein die gew hlt werden soll Land Region rtskennzahl d Dann die Schnittstelle einstellen und 2 OK Verbindung herstellen ber OK Abbrechen Eigenschaften von Anschlusseinstellungen Bits pro Sekunde Datenbits Die Schnittstelle wie auf dem Bild einstellen und gt OK Parit t Stoppbits Elusssteuerung Kei Wiederherstellen OK abbrechen Obemehmen 68HCS12
136. nstellung muss in Form von zwei Bytes an die Bus Timing Register BTR bergeben wer den In die Berechnung der Bustiming Parameter gehen folgende Werte ein die Clock Rate des Mikrocontrollers die Toleranz des Oszillators der den Controllertakt erzeugt die gew nschte Baudrate des CAN Busses die Signalverz gerungen in der Busansteuerung die Busl nge das Abtastverhalten des CAN Controllers einfache oder dreifache Busabtastung Berechnung der Bus Timing Werte f r eine Bitrate von 500 kbit s Taktfrequenz 16 MHz Baudratenteiler 4 gt tSCL 1 16 MHz 3 1 250 ns CAN System Clock Period Synchronisationssegment tSYNCSEG 1 tSCL Zeitsegment 1 3 gt tSEG1 tSCL 2 1 750 ns Zeitsegment 2 4 gt tSEG1 tSCL 3 1 1 us Bitzeit tBIT tSYNCSEG tSEG1 tSEG2 2 US Bitrate fBIT 1 tBIT 500 kbit s Daraus ergeben sich folgende Einstellungen der Register in unserem Funktionstest CANBTRO 0x03 Synchronisationssprungweite 1 Baudratenvorteiler CANBTR1 0x32 einfache Abtastung Zeitsegment2 4 Zeitsegment1 4 3 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 89 18 8 Funktionstest Programmfunktionen Registerbeschreibungen In unserem Funktionstest f r die CAN Schnittstelle haben wir zwei HCS12 Compact ber die CAN Schnittstelle miteinander verbunden Au erdem sind die beiden Controller jeweils ber die serielle Schnittstelle mi
137. p Wechseln zu Name lt 2 2 21 Adresse Gr e Typ Dateiordner 31KB ZIP komprimierter Datei Bearbeiten Ansicht Favoriten Extras Que M Q 2 Suchen Ordner 8 v El wechseln zu Interpret EA sse C C Temp D2xKAPP Gr e 3KB Symbol 5KB C Builder Project 2KB C Builder Source 4KB RES Datei 1KB H Datei D2XXAPP Test Program Port Transfer Window Help aa ex TEST D2XXAPP Test Program Port Transfer Window Help RER X close DEVI n DEW a configure DEK Die Datei D2XXAPP ZIP in das Verzeichnis c Temp kopieren und entpacken Im Verzeichnis befindet sich die Datei D2SSAPP BPR Ist der Borland Builder noch nicht installiert bitte jetzt installieren Wenn der Borland Builder installiert ist gt Datei ffnen Projekt kompilieren und starten F9 Die Datei d2xxapp exe wird erzeugt So sieht das fertige Programm aus ber Port gt Open gt DEVO kann man das bereits ange schlossene S12Compact Modul anw hlen Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 41 D2XXAPP Test Program Port Transfer Window Help Es ffnet sich weiters Fenster ber Port gt Configure kann man die Geschwindigkeit einstellen Port Transfer Window Help E 2 Open Selm m
138. pact Grundplatine 64 15 Pulsweitenmodulationsausg nge 15 1 Allgemeines PWM Ausg nge geben ein Rechtecksignal aus Frequenz und Tastverh ltnis lassen sich w hrend des Betriebes ndern Die Funktion kann periodische Interrupts ausl sen Der im MC9S12DG256 genutzte PWM Block hat 8 Ausgabekan le bei denen unabh ngig eingestellt werden kann ob das Signal zentriert oder linksb ndig ausgerichtet ausgegeben werden soll Jeder der 8 Kan le hat eine frei einstellbare Periode und Pulsweite sowie ei nen speziellen Z hler Die Eigenschaften des PWM Blocks sind folgende e acht unabh ngige PWM Kan le mit programmierbarer Periode und Pulsweite e spezieller Z hler f r jeden PWM Kanal e programmierbare PWM Aktivierung oder Deaktivierung f r jeden Kanal e Periode und Pulsweite werden ber doppelt gepufferte Register eingestellt nderungen werden erst mit dem Anfang jeder neuen Periode bernommen e einstellbare zentrierte oder linksb ndig ausgerichtete Ausgabekan le e alternativ w hlbare acht 8 Bit Kan le oder vier Kan le mit 16 Bit Aufl sung e vier w hlbare Taktgeberquellen f r einen breiten Frequenzbereich e programmierbare Takt Selektions Logik e Notabschaltungsfunktion PWM Channels PWM_8B8C Channel 7 Period and Duty Counter Channel 6 Period and Dut Count MIL T eriod and Duty ounter Bus Clock Clock select PWM Clock Channel
139. platine 50 Input Capture Input Capture bedeutet auf Deutsch bersetzt etwa soviel wie Eingangserfassung S mtli che Kan le des Timerports lassen sich als Input Capture nutzen So stehen im Maximum acht Kan le zur Verf gung ber das TIOS werden die einzelnen Kan le als Input Capture oder als Output Compare selektiert In den Timer Control Register 3 und 4 wird f r jeden PIN des PORTT einzeln festgelegt auf welche Flanke des Eingangssignals der Timer rea gieren soll Zu jedem einzelnen Kanal geh rt ein Timer Input Capture Output Compare Re gister Sobald die gew nschte Flanke am Eingang ankommt wird der Wert des Timer Count Registers in das zugeh rige Timer Input Capture Register geschrieben Gleichzeitig wird das Timer Interrupt Flag gesetzt Durch dieses Flag kann der Programmierer bezie hungsweise das Programm berpr fen ob die gew nschte Flanke bereits eingetroffen ist oder nicht Ist dieses Flag gesetzt so wird keine weitere Pr fung des Eingangssignals mehr vorgenommen Dazu muss dieses Flag von der Software wieder zur ckgesetzt wer den Im TIE kann f r die einzelnen Kan le festgelegt werden ob nach einem Input Capture ein Interrupt ausgel st werden soll oder nicht F r Berechnungen wie Perioden oder Ein schaltdauer werden nach dem setzen des Interrupt Flags die Werte aus dem Input Capture Register ausgelesen Diese Werte k nnen nachher f r Berechnungen gebraucht werden Timer Control Register 3 4 TCTL3 4
140. rWarnsignal 1 printf n rWarnsignal 2 printf n rWarnsignal 3 cTaste toupper getchar Ausgabekanal einlesen switch cTaste case 1 Warnsignal1 break case 2 Warnsignal2 break case 3 Warnsignal3 break default printf n rDie Taste V 9ocV kommt im menue nicht vor cTaste while cTaste 1 amp amp cTaste 2 amp amp cTaste 3 while 1 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12 Compact Staatliche Technikerschule Berlin Autor Mario Kallauke Datei s12_PWM_Warnsignale c Datum 2004 02 12 Funktion PWM Initialisierung 3 verschiedene Arlarmsignale ber das PWM Modul 3mal include hcs12dp256 h include datatypes h Jee void PWM ini void PWME 0x01 FPWM PPO enable PWMPOL Oxff startet High PWMCLK 0x00 Clock B ist die Clock Quelle PWMPRCLC 0x00 Clock B ist der Bus Takt PWMCAE 0x00 Links ausgerichteter Ausgangsmode PWMCTL 0x00 8 bit PWM Kan le PWMDTYO 0x80 initialisiert auf 0x80 nn Y void PWM_disable void PWME amp Oxfe FPWM disable void Warnsignal1 void FWarnungsignal 3 kurze T ne UINT8 w x y Einfache Z hlvariablen
141. ren Eingangswert in eine analoge Ausgangs spannung um Von VREF O Data DAC O Data DAC i Nm pu h 24 Bit Serial to Channel Load Power Down Parallel Select Control Control Logic Shift Register Q V Q Control Logic Resistor Network o N Bild 1 Blockschaltbild DAC8532 Der S12compact besitzt als weitere Schaltungsoption einen 16 Bit D A Wandler Zum Ein satz kommt ein DAC8532 von Burr Brown Dieser Baustein bietet 2 Kan le deren Aus gangsspannungen VOUTA und VOUTB sowohl nacheinander als auch gleichzeitig aktuali siert werden k nnen Der IC10 bietet eine Referenzspannung 4 096V welche die obere Ausgangsspannungsgrenze vorgibt Sie kann durch eine externe Referenzspannungsquel le ersetzt werden wenn zuvor die BR9 aufgetrennt wird Achtung dies hat auch Auswir kung auf den optionalen ADC der hier aber nicht implementiert ist Der Lastwiderstand an den Ausg ngen sollte 2kOhm nicht unterschreiten Beim Einschalten der Betriebsspannung wird die Ausgangsspannung der beiden DAC Kan le im IC auf OV zur ckgesetzt Der DAC wird wie auch RTC ADC und die Zusatz ber SPIO angesteuert SPICS1 dient als Chipselectsignal f r den DAC Die Ausgangssignale VOUTA und VOUTB sind als gesi cherte Ausg nge in Form eines Klinkensteckers verf gbar 14 2 Funktionstest Programmfunktionen Registerbeschreibungen In unserem Funktionstest fordern wir ber das Hyperterminal zur Eingabe
142. rface is 8 bits long cannot be checked before this instruction BF cannot be checked before this instruction Function set Interface is 8 bits long BF can be checked after the following instructions When BF is not checked the waiting time between instructions is longer than the execution instuction time See Table 6 Function set Set interface to be 4 bits long Interface is 8 bits in length Function set Interface is 4 bits long Specify the number of display lines and character font The number of display lines and character font cannot be changed after this point Display off Display clear Entry mode set Bild 3 Programmablaufplan 4 Bit Initialisierung 17 2 Funktionstest Programmfunktionen Registerbeschreibungen In unserem Funktionstest lassen wir eine Laufschrift mit dem Titel Projektarbeit HCS12 Compact ber das Display laufen Quelltext LCD Test c Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 76 Folgende spezielle Funktionen werden im Programm verwendet Funktion 1 void Lcd ini void Initialisierung der LCD Anzeige Function set 4 Bit Interface zwei zeilig 5 7 Punktmatrix Display ein Cursor aus Blinken aus An Due zeige l schen Adressz hler 00 Entry Mode Adressz hler au toincrement Header Lcd h Funktionsaufruf Lcd ini bergabeparameter keine R ckgabepara
143. rgabeparameter keine R ckgabeparameter unsigned char Byte Reccourcen keine void kb_in UINT8 byte Aufgabe Byte in die Tastatur schreiben Header s12_ps2 h Funktionsaufruf kb_in UINT8 bergabeparameter Bytewert R ckgabeparameter keine Reccourcen keine Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 32 interrupt void kb isr void Aufgabe Byte auf dem Bildschirm ber Interrupt ausgeben Header 512 ps2 h Vectortabelle kb_isr unter der Adresse OxFFCE Port J eintra gen bergabeparameter keine R ckgabeparameter keine Reccourcen Port J Pin 0 und 1 void _initPLL void Aufgabe PLL auf die gew nschte CPU Taktfrequenz einstellen Header s12_crg h Funktionsaufruf iniPLL bergabeparameter keine R ckgabeparameter keine Reccourcen keine Auszug aus der Header Datei S12_crg h define S12_OSCCLK 16000000 input frequency from Xtal Osc define S12_REFCLK 8000000 PLL internal reference clock define S12_PLLCLK 48000000 24MHZ define S12_PLLCLK 32000000 16MHZ define S12_PLLCLK 16000000 8MHZ PLL clock generation formula according to CRG Block User Guide PLLCLK OSCCLK 2 SYNR 1 REFDV 1 defi
144. riert Verkehr auf dem CAN Bus SLPRQ Sleep Mode Anforderung 1 Sleep Mode Anforderung msCAN geht in Sleep Mode wenn der Bus unt tig ist 0 Running msCAN funktioniert normal Initialisierungsmode Anforderung 1 msCAN im Initialisierungsmode 0 normale Operation Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 94 CANXCTL1 msCAN Control Register1 Bit 7 6 5 4 3 2 1 Bit O Read SLPAK INITAK 0 CANE CLKSRC LOOPB LISTEN WUPM Write Reset 0 0 0 1 0 0 0 1 Unimplemented CANE msCAN enable 1 msCAN Modul enabled 0 msCAN Modul disabled CLKSRC Quelle f r den msCAN Takt 1 die Quelle ist der Bustakt 0 die Quelle ist der Oszillator Takt LOOPB Loop Back Selbsttest Mode 1 Loop Back Selbsttest enabled 0 Loop Back Selbsttest disabled LISTEN Horch Modus 1 Horch Mode ist aktiviert 0 normale Operation WUPM Wake up Mode 1 msCAN weckt die CPU bei einem Pulse von der L nge Twur 0 msCAN weckt die CPU nach einigen Flankewechseln SLPAK Sleep Mode Best tigung 1 msCAN befindet sich im Sleep Mode 0 msCAN arbeitet normal INITAK Initialisierungsmode Best tigung 1 msCAN befindet sich im Initialisierungsmode 0 msCAN arbeitet im Normalmode Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 95 CANBTRO msCAN Bus T
145. rt 0 UINT32 ATD_summe zaehl N wert double C Temp merke Icd_ini LCD Initialisierung 0xOc als 2 Steuerbyte gt Ohne Cursor initATDO ATDO Initialisierung do Endlosschleife for zaehl 0 zaehl 1000 zaehl Werteaufnahme und Mittelwertbildung ATD wert getATDO 0 ATD summe ATD wert wert ATD_summe 1000 ATD_summe 0 for C 0 N 282 C lt 100 N lt 743 C 0 217 N if N wert sprintf anzeige 11f C JI Wert wird Anzeiegstring gewandelt Temp C Temp wert 282 0 217 sprintf anzeige 9o 1If Temp funktioniert auch anstatt for loop Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 108 if a I Wert 1 mal ausgeben s_steuer 0x01 Il 1 Zeichen Display l schen for zaehl 0 anz zaehl zaehl s data C anz zaehl Beim 1 mal Grad C aufs Display schreiben s_steuer 0x02 Il 1 Zeichen 1 Zeile for zaehl 0 anzeige zaehl zaehl s data anzeige zaehl Temperaturanzeige merke Temp alten Wert merken if merke Temp bei ver ndertem Wert neue Ausgabe s_steuer 0x02 for zaehl 0 anzeige zaehl zaehl s data anzeige zaehl II Temperaturanzeige merke Temp alten Wert merken while 1 Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12 Compact Staatliche Technikerschule Berlin Au
146. rte Effekt Data Diretion Regis DDRJ ter vol Bag PJ1 auf Ausgang PTJ PortJ Register 0x02 Setzt Datasignal auf high void data off void Aufgabe Setzt Datasignal auf low Header 512 ps2 h Funktionsaufruf data off bergabeparameter keine R ckgabeparameter keine Reccourcen keine Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner Bedeutung Werte Effekt DDRJ Data Diretion Register 0x02 auf Ausgang von Port J PTJ PortJ Register OxFD Setzt Datasignal auf low Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 30 void set clock UINTS Bit Aufgabe Setzt je nach Wert Clocksignal 0 oder 1 Header 512 ps2 h Funktionsaufruf set clock UINT8 bergabeparameter Bitwert O oder 1 setzen R ckgabeparameter keine Reccourcen keine Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner Bedeutung Werte Effekt Data Diretion Regis DDRJ ter von Port J PJ1 auf Ausgang PTJ PortJ Register 0 oder 1 Setzt Datasignal den Bitwert void set data UINTS Bit Aufgabe Setzt je nach Wert Datasignal 0 oder 1 Header 512 ps2 h Funktionsaufruf set data UINT8 bergabeparameter Bitwert O oder 1 setzen R ckgabeparameter keine Reccourcen keine
147. rundplatine 17 6 3 2 Reseterzeugung ist der bidirektionale L aktive Resetpin der MCU Als Eingang dient er zur Initiali sierung der MCU beim Einschalten Als Open Drain Ausgang signalisiert er dass innerhalb der MCU ein Resetereignis stattgefunden hat Die HCS12 MCU enth lt bereits Schaltun gen f r Power On Reset COP Watchdog and Clock Monitor Reset Es ist dennoch not wendig zus tzlich einen externen LVI Schaltkreis vorzusehen welcher die Aufgabe hat zuverl ssig Reset auszul sen sobald die Versorgungsspannung der MCU unter den zu l ssigen Mindestwert gefallen ist Der LVI Schaltkreis IC2 hat einen Open Drain Ausgang um Kollisionen mit dem bidirektio nalen Resetpin der MCU zu vermeiden Im inaktiven Zustand stellt sich an RESET dank des Pull Up Widerstands R6 H Pegel ein Die Schaltschwelle von 2 liegt bei typischer weise 4 6V Das ist geringf gig h her als die Mindestbetriebsspannung der MCU 4 5V 2 ist in der Lage den Resetimpuls auf eine gewisse Mindestl nge auszudehnen die ber den Kondensator C14 festgelegt wird Bei 100nF betr gt der Delay ca 50 80ms Es ist wichtig zu bemerken dass diese Impulsverl ngerung nur bei einem Power On Reset wirk sam wird Die MCU internen Resetimpulse werden von 2 hingegen nicht gedehnt denn sonst w re die MCU nicht mehr in der Lage die korrekte Resetquelle zu ermitteln Die Konsequenz w re sonst u U ein Programmabsturz durch die Verwendung eines
148. rved _P 0x028D define CANARXERR _ 0 028 define CANATXERR _P 0x028F define CANAIDARO P 0x0290 define CANAIDAR1 _P 0x0291 define CANAIDAR2 _P 0x0292 define CANAIDAR3 P 0x0293 define CANAIDMRO P define CAN4IDMR1 P define CAN4IDMR2 P 0x0296 define CANAIDMR3 _P define CAN4IDAR4 P 0x0298 define CANAIDAR5 _ 0 0299 define CANAIDARG _P 0x029A define CANAIDAR7 _P 0x029B define CAN4IDMR4 _P 0x029C define CAN4IDMR5S _P 0x029D define CAN4IDMR6 _P 0x029E define CANAIDMR7 P 0x029F define CANARXFG _ADDR 0x02A0 define CANARTFG ADDR 0x02B0 define Reserved 0 02 0 OxO2CF define Unimplemented 0 0300 OxO3FF endif Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12 Compact Staatliche Technikerschule Berlin Autor Winold Doege Mario Kallauke Goeran Liebig Datei led_und_rs232_test c Datum 2004 05 16 Funktion LED Menu ueber RS232 Schnittstelle include lt stdio h gt include lt string h gt include hcs12dp256 h include s12_crg h include datatypes h include s12_sci h include s12_led h include s12_ps2 h Iwarte void_HC12Setup void COPCTL 0x00 initPLL void main void char cTaste HC12Setup auf 16 MHz die CPU zu takten initSCI0 51 IICPU Takt ist auf 16 MHz gestellt 19600bps Baudratenteiler Taktfrequenz 16 Baudrate Hyperterminal
149. sversorgung wird benutzt damit m glichst wenige St rungen vom digitalen Teil des Mikrocontrollers eingekoppelt werden 13 2 Funktionstest Programmfunktionen Registerbeschreibungen In unserem Funktionstest schlie en wir einen Temperatursensor AD22100K der Firma Analog Devices an unser Modul an Dieser erfasst Temperaturen im Bereich zwischen 0 C und 100 C Dabei liefert er definierte Ausgangsspannungen zwischen 1 375 Volt und 3 625 Volt Der bin re Ausgangswert des Spannungseingangswertes wird in unserem Programm in den dazugeh rigen Temperaturwert gewandelt Dieser wird in ein String geschrieben welcher aufs LCD Display ausgegeben wird Die erneute Ausgabe des Wertes findet nur statt wenn sich der Temperaturwert und damit der Spannungswert am Pin ndern sonsten wird weiter gewandelt und verglichen Quelltext atd test c Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 58 Folgende spezielle Funktionen werden im Programm verwendet Funktion 1 void initATDO void Initialisiert das ATDO Modul enable 10 Bit Aufl sung Clock 12 2nd sample time 2 ATD Clock Header s12_atd h Funktionsaufruf initATD0 bergabeparameter keine R ckgabeparameter keine Reccourcen ATD0 PAD0 PAD7 Registerwerte die f r diese Funktion von Bedeutung sind Bezeichner Bedeutung Werte Effekt ATDOCT
150. t Hier erfolgt eine reine Durchschaltung der Port A B des Mikrocontrollers PAO bis PA7 amp PBO bis PB7 Au erdem sollte eine Spannungsversorgung an die ent sprechenden Anschl sse erfolgen Die Spannungen sind mit Kondensatoren zur Gl ttung abgesichert 6 5 6 Timer Pulsweitenmodulation Projektvorgabe war der Anschluss von zwei Pulsweitenmodulationsausg ngen und von 4 Timerausg ngen Weiterhin sollten die Ausg nge gegen Kurzschluss und berlast ge sch tzt werden Dieser Schutz erfolgt mit dem unidirektionalen Treiberbaustein 74 LS 541 Hier werden die jeweiligen Signale einfach durchgereicht Die lowaktiven Gateanschl sse wurden an Masse gef hrt womit der Baustein nicht mehr gesondert selektiert werden muss Bei Kurzschluss oder berlast wird nur der Treiber zerst rt nicht aber der Controller Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 24 6 5 7 Tastatur Hier wurde ein Tastaturcontroller 74C922 eingesetzt Dieser Baustein kann 4 Zeilen x 4 Spalten auswerten und kann damit 16 stellige Tastaturen ansteuern Mit den Kondensa toren C 19 und C 20 wird die interne Oszillatorfrequenz des 74C922 eingestellt mit der er die Tastatur abpr ft Der 74C922 setzt den Data av DA Ausgang auf 1 wenn ein Tastendruck erfolgt ist Achtung Es wird nur der letzte Tastendruck gespeichert Wird nun sein OE Output enable Eingang vom Prozessor auf Null
151. t einem PC PC1 PC2 verbunden Auf den PC s wurde jeweils das Hyperterminal gestartet Geben wir nun ber das Hyperterminal auf dem PC1 ein Byte ein wird dieses ber die serielle Schnittstelle auf den HCS12 Compact 1 ber tragen Dort wird das Byte ber die CAN Schnittstelle versendet und vom HCS12 Compact 2 empfangen Auf dem HCS12 Compact 2 wird dieses Byte dann wieder ber die seriel le Schnittstelle zum PC2 gesendet und auf dem Hyperterminal dargestellt Da aber nicht immer jedem 2 HCS12 Compact zur Verf gung stehen kam bei der berpr fung der CAN Treiber das Programm PCANView der Firma PEAK Systems zum Einsatz Dazu wird der PCAN Dongle erm glicht den Anschluss eines CAN Busses an die parallele Schnittstelle eines IBM kompatiblen PC s an die parallele Schnittstelle eines PC s ange schlossen Mit Hilfe dieses Adapters kann jeder PC in ein CAN Netzwerk eingeschlossen werden Der CAN Dongle wird einfach auf den Parallelport eines PC s aufgesteckt die Stromversorgung wird durch einen Zwischenstecker in PS 2 Ausf hrung am Tastaturan schluss sichergestellt Die Hardware erfordert keine manuelle Konfiguration Sie ben tigt lediglich die Informationen ber dem von ihrer parallelen Schnittstelle belegten Interrupt sowie die Portadresse z B LPT1 gt Adresse 378 gt Interrupt IRQ7 Das CAN Netz wird ber den 9 poligen SUB D Stecker angeschlossen 5 V optional CAN_L CAN_GND nicht verbunden 5 V optional
152. t noch ein Byte f r die Priorit t und ein 16 Bit Wort f r die Zeitmarke zur Verf gung die aber nicht mit bertragen werden Ein Sendevorgang besteht aus vier Schritten Identifizieren eines verf gbaren leeren Sendepuffers Setzen eines Zeigers auf diesen Puffer Beschreiben des Sendepuffers Identifier Steuerbit Daten Markieren des Sendepuffers als Sendebereit mon Io Aufbau des Sendepuffers beim msCAN Modul Register Name Identifier Register 0 Identifier Register 1 Identifier Register 2 Identifier Register 3 Data Segment Register 0 Data Segment Register 1 Data Segment Register 2 Data Segment Register 3 Data Segment Register 4 Data Segment Register 5 Data Segment Register 6 Data Segment Register 7 Data Length Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 84 18 4 Empfangsvorgang beim msCAN Modul F r den Empfangsvorgang stehen f nf Empfangspuffer zur Verf gung Die CPU kann je weils nur auf einen Puffer dem Vordergrundpuffer zugreifen Die anderen Puffer sind aus dem Speicherbereich ausgeblendet Alle Empfangspuffer enthalten jeweils 15 Byte ein schlie lich Steuerungsbits Identifiers Datenbytes und Zeitmarke Das RXF Receiver Full Flag im Receiver Flag Register zeigt den Zustand des Vordergrundpuffers an Es ist ge setzt wenn sich eine korrekt empfangene Botschaft im Vordergrundpuffer befindet Ist das
153. ten CANOIDMRT 0x07 die letzten 3 Bits sind nicht benutzt ImsCAN Control Register 0 CANOCTLO amp INITRQ zur cksetzen um Initialisierungsmode zu verlassen while CANOCTL1 amp INITAK warte bis INITAK zur ckgesetzt Initialisieungsmode wird verlassen ImsCAN Control Register 1 CANOCTL1 CANE enable msCAN Modul Receiver Interrupt Enable Register CANORIER 1 enable receive interrupt I Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12 Compact Staatliche Technikerschule Berlin Autor Mario Kallauke Datei CAN4_test c Datum 2004 03 11 Funktion CAN4 test include msCAN4 h include hcs12dp256 h include datatypes h include s12 crg h zinclude s12 sci h void HCS12Setup void void main void HCS12Setup II CPU auf 16 MHz initSCI0 52 Setup serielle Schnittstelle 0 19200bps CAN4Init H Initialisierung des CAN Moduls _asm cli gebe Interupts frei do Temp getSCIO II lese ein Byte von der seriellen Schnittstelle SendCAN4Message 1 amp Temp sende ein CAN Paket mit dem Byte was ber SCI eingegeben wurde E 1 27 H Abbruch mit ESC warte auf den Empfangsinterupt l void HCS12Setup void II Startup Code COPCTL 0x00 initPLL CPU auf 16 MHz Staatliche T
154. tor Mario Kallauke Datei s12_atd c Datum 2004 02 12 Funktion Funktionen f r den Analog Digital Wandler include datatypes h zinclude hcs12dp256 h zinclude s12 atd h UINT16 atd resultsj ATD AVERAGE COUNT ATD MAX CHANNELS UINT16 atd aidx void initATDO void ATD0CTL2 BM_ADPU enable ATD Modul ATD0CTL4 BM_PRS2 BM_PRS0 10 bit Aufl sung Clock Teiler 12 sample time 2 clock UINT16 getATD0 UINT8 channel ATD0CTL3 BM S1C JI w hlt eine Umwandlung per Sequenz ATDOCTL5 BM DJM channel amp 0x07 Rechtsb ndiger Vorzeichenloser Datenmode Arbeitet in Einzelsequence ein Ausgang von 8 Kan len while ATDOSTATO amp BM SCF 0 wartet bis das Sequence Complete Flag gestetzt ist Vorsicht kein Zeitschleifen Limit implementiert return ATDODRO lieft Ergebnis Register nn startet Einzelkanal ATD Wandlung mit allen 8 Kan len Resultate werden sp ter gesammelt void startATDO void ATD0CTL3 BM_S8C H w hlt 8 Umwandlungen per Sequenz ATD0CTL5 BM_DJM BM_MULT Rechtsb ndiger Vorzeichenloser Datenmode JI Arbeitet in Einzelsequence a
155. tte Abtastung dar Da auf dem CAN Bus kein Taktsignal mit bertragen wird und die einzelnen Stationen am CAN Bus nicht hundertprozentig synchron getaktet werden muss sich jede Empfangsstati on mit jedem bertragenem Bit synchronisieren Resynchronization So kann sich bei spielsweise die erste Flanke au erhalb des Synchronisationssegmentes befinden Ist der Flankenwechsel vor dem Abtastzeitpunkt spricht man von einem positiven Phasenfehler Bei einem negativen Phasenfehler befindet sich der Flankenwechsel nach dem Abtastzeit punkt Der Phasenfehler ist null wenn die Flanke innerhalb des Synchronisationssegments ist Um die Flanke bei einem Phasenfehler wieder in das Synchronisationssegment zu schieben kann das CAN Modul die Zeitdauer des Phasensegments 1 und 2 um bis zu vier Time Quanta verl ngern und verk rzen Die Zeitdauer der Verl ngerung oder Verk rzung der beiden Phasensegmente wird Synchronisationssprungweite genannt und kann im msCAN Modul eingestellt werden Ist die Gr e des Phasenfehlers gemessen in Time Quanta gr er als die Synchronisationssprungweite d h liegt der Flankenwechsel vor dem Abtastzeitpunkt dann verl ngert das msCAN Modul das Phasensegment 1 um die Anzahl an SJW Time Quanta Das Phasensegment 2 bleibt unver ndert Bei kleinerem Phasenfehler bezogen auf die Synchronisationssprungweite wird das Phasensegment 2 um die Anzahl der SJW Time Quanta verk rzt und das Phasensegment1 bleibt unver n dert Damit
156. uble unsigned int interrupt _asm cli Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12 Compact Staatliche Technikerschule Berlin Autor en Mario Kallauke G ran Liebig Winold Doege Datei hcs12dp256 h Datum 2004 02 12 Funktion HCS12 l O s ifndef HCS12DP256 H define HCS12DP256 H macros generic define etc II include lt hc12def h gt base address of register block change this if you relocate the register block This is for S12DP256 define lO BASE 0 define ADDR off unsigned char volatile IO BASE off define _P off unsigned char volatile IO BASE off define _LP off unsigned short volatile IO BASE off define PORTA P 0x00 define PORTB _P 0x01 define DDRA _P 0x02 define DDRB _P 0x03 define Reserved P 0x04 define Reserved _P 0x05 define Reserved _P 0x06 define Reserved _ 0 07 define PORTE _P 0x08 define DDRE _P 0x09 define PEAR _P 0x0A define MODE _P 0x0B define PUCR _P 0x0C define RDRIV _P 0x0D define EBICTL _P 0x0E define reserved P OxOF define INITRM _P 0x10 define INITRG _P 0x11 define INITEE _P 0x12 define MISC P 0x13 define MTSTO _P 0x14 define ITCR _P 0x15 define ITEST _P 0x16 define MIST1 _P 0x17 define Reserved _ 0 18 define Reserved _ 0 19 define PARTIDH _P 0x1A define PARTIDL _P Ox1B define
157. uf vielfachen Kan len bginnend mit Kanal 0 iesst Ausgangsresultate von allen 8 Kan len JI Wandlung wurde vorher gestartet und war erfolgreich BOOL readATDO UINT16 results UINT8 n UINT16 patd if ATDOSTATO amp BM 0 return FALSE checkt das Sequence Komplett Flag UINT16 amp ATDODRO n MAX CHANNELS while n Kopiert ATD Ergebnisregister results patd results patd D return TRUE Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 110 llesst Ausgangsresultate JI und berrechnet Gleitpunkt Durchschnitte f r alle 8 Kan le void handleATDO UINT16 buf UINT 16 src dest UINT8 n k dest amp atd_results atd_aidx 0 readATD0 dest liesst Ausgangsresultate startATDO startet neue Sequence H Incrementiert den Index if fatd_aidx ATD AVERAGE COUNT aidx 0 k 0 berrechntet die Summe der Messungen src amp atd_results 0 0 f r jeden Kanal do n 0 dest buf 0 dest src else dest src II f ge die folgende Zeile zu den normalisierten Ergebnissen II it k ATD_AVERAGE_COUNT 1 dest AVERAGE COUNT dest src n while n lt ATD MAX CHANNELS k while k lt ATD AVERAGE COUNT Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12 Comact
158. ur Um die Daten bertragung vom Host zur Tastatur etwas besser zu erkl ren ist der Tranfer in in zwei Teile aufgeteilt 4 b i CLOCK a Der Host ist der Mikrocontroller und Device DATA A CC ist die Tastatur Der Ausgang vom Host zieht die Clockleitung f r mindestens 100ms auf low Am Ende der 100ms zieht man die gt Datenleitung auf low Die Clockleitung wird 35 dann wieder losgelassen und wird so wieder high Das ist das Startsignal START DATAO DATA1 DATA2 DATA3 DATA4 DATA5 DATA6 DATA7 b Die Tastatur erkennt diesen Sendewunsch vom Host Die Tastatur setzt die Clockleitung auf low Jetzt kann der Host das erste Bit 0 oder 1 auf die Datenleitung legen Das Bit wird mit der negti venflanke bernommen Nach der bernahme wird die Clockleitung wieder high Das n chste Bit wird auf die Datenleitung gelegt Das gleiche passiert mit den anderen 7 Bits und dem Parity Bit Das Stop Bit ist in diesem Fall high kurz darauf wird von der Tastatur eine Best tigung ACK Signal low auf die Datenleitung gelegt Dieses Signal sollte vom Host ausgewertet werden Wenn keine Best tigung erfolgt ist ein Fehler passiert und es sollte noch einmal bertragen werden Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 27 8 2 Programmfunktionen void init ps2 void
159. uss der EEPROM Bereich verschoben werden INITEE Register Das folgende Beispiel bel sst den EEPROM auf der Defaultposition in der Initialisierungs routine wird lediglich der EEPROM Clock Devider entsprechend der Quarzfrequenz des S12compact eingestellt Die Schreibfunktion wrSectEETS kopiert zwei Worte 4 Byte von einer beliebigen Quelladresse src auf eine EEPROM Adresse dest letztere muss identisch mit einer EEPROM Sektorgrenze sein aligned 32 bit Ist der Inhalt des Zielsektors nicht gel scht OXFFFFFFFF wird zun chst automatisch ein Sector Erase ausgef hrt Die Zugriffsfunktionen readltemEETS und writeltemEETS verallgemeinern den EEPROM Zugriff dahin gehend dass nicht mehr mit EEPROM Adressen gearbeitet wird sondern mit einer abstrakten Nummerierung von EEPROM Items Jedes dieser EEPROM Items kann 1 bis 4 Byte lang sein 6 3 6 Indikator LED Am Portpin PEG dient der Pegel des Steuersignals XCLKS zur Auswahl der Clock Konfiguration des MC9S12DG256 F hrt das Signal H Pegel wird der integrierte Colpitts Oszillator aktiviert Relevant ist dabei der Zustand zum Zeitpunkt der steigenden Resetflan ke Danach steht PE6 als General Purpose l O zur Verf gung Auf dem 512 dient dieses Signal dann zur Ansteuerung der Indikator LED D2 getrieben vom Buffer IC6C Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 19 6 3 7 Akustischer Signalgeber Der
160. usses bzw der USB Option Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 21 6 4 Mechanischer Aufbau der Tr gerplatine Ziel und Aufgabe des mechanischen Aufbaus der Tr gerplatine war die Anpassung der zum Projekt genutzten 512 Compact Platine an das vorhandene Geh use f r den HC 11 Hier mussten folgende Probleme gel st werden gleiche mechanische Befestigung im Geh use Verwendung der vorhandenen Buchsen und Stecker Verwendung der vorgebenden Betriebsspannungsversorgung Integration von USB und PS 2 Buchse Anbindung RS 232 und Tastatur 16 Tasten Integration des zweistelligen Displays Integration von einen zus tzlichen CAN Controller Schutz der Ein oder Ausg nge mit entsprechenden Schutzsysteme Nutzung der vorhandenen Ein Ausgangsbuchsen Weiterhin sollte durch die entsprechende Konstruktion der Tr gerplatine der Umbau der vorhandenen Eingabeports zum neuen System erleichtert werden So ging das Bestreben dahin die vorhandenen L tverbindungen zu den D SUB Verbindern durch Klemmtechnik zu ersetzen Die vorhandene Stromversorgungsverteilung extra Leiterplatte wurde in die Tr gerplatine integriert Auch wurde der Anschluss der Stromversorgungsleitung vom L t anschluss auf Klemmanschluss ge ndert So besteht jetzt die M glichkeit die Platine ohne die Benutzung eines L tkolbens komplett zu wechseln Durch die Anpassung der Schnittstellenausg nge an das vorha
161. ut Compare an Kanal 7 der Counter Z hler zur ckgestellt werden soll und ob nach einem Timer berlauf ein Interrupt ausgel st werden soll Bit7 TOI TFLG1 Timer Interrupt Flag 1 Das Interrupt Flag wird gesetzt wenn sich am betref fenden Kanal ein Input Capture oder Output Compare ereignet hat TFLG2 Timer Interrupt Flag 2 Wird gesetzt wenn sich ein berlauf des Z hlers OxFFFF nach 0x0000 ereignet hat TIOS Timer Input Capture Output Compare Select Im Timer Input Capture Output Compare Register wird festgelegt welche PIN s des PORTT als Input Capture beziehungsweise als Output Compare verwendet werden sol len Dieses Register kann jederzeit ausgelesen oder neu beschrieben werden Alle Kan le deren Bits 0 gesetzt sind werden als Input Capture genutzt alle anderen Kan le als Out put Compare Register offset 5 00 6 5 4 3 2 1 BITO e e e Tom T 0 0 0 0 0 0 0 0 5 Register Staatliche Technikerschule Berlin Doege Liebig Kallauke Projektarbeit HCS12Compact Grundplatine 52 TSCR1 Timer System Control Register 1 ber dieses Register wird der Timer ein und ausgeschaltet Das Ein und Ausschalten des Timers ist jederzeit m glich Wenn der Timer ausgeschaltet ist bedeutet dies dass der 16 Bit Z hler au er Betrieb gesetzt ist Normalerweise muss nur das Timer Enable Bit gesetzt werden Register offset 06 BIT7 3 2 1 BITO R

Download Pdf Manuals

image

Related Search

Projektarbeit projektarbeit projektarbeit kita projektarbeit schreiben projektarbeit beispiel projektarbeit englisch projektarbeit ideen projektarbeit musterbeispiel projektarbeit deckblatt projektarbeit definition projektarbeit vorlage projektarbeit binden lassen projektarbeit in der kita projektarbeit im kindergarten projektarbeit fachinformatiker ihk projektarbeiten ideen projektarbeit beispiele projektarbeit in der schule projektarbeiten beispiele

Related Contents

WA73A-455 User Manual Revison C    FKB8540  FCC Certifications CE Mark Warning 1  VI2010 VoIP Phone User Manual  room air conditioner acondicionador de aire de ventana  agence pour la promotion et le developpement economique  User`s Manual - Environmental Test Chambers from Cincinnati Sub  Submersible Water Pumps  

Copyright © All rights reserved.
Failed to retrieve file