ich habe da ein kleines Problem mit meinem AT90CAN128. Ich bin gerade dabei mit eine Art Debug Schnittstelle einzurichten, mit der ich am HyperTerminal nachher Werte auslesen will.
Leider funktioniert das nicht wirklich. Ich habe bereits hier im Forum gesucht und entsprechende Einträge gefunden, die aber nicht geholfen haben. Darum ist mir die Idee gekommen ich könnte etwas an der Verkabelung falsch gemacht haben.
Ich versuch euch mal mein Aufbau zu beschreiben.
1. Von CON4 - TXD des Controllers zu Pin 2 der RS232 Buchse
2. von CON4 - RXD des Controllers zu Pin 3 der RS232 Buchse
3. Von CON4 - GND des Controllers zu GND der RS232 Buchse
Ich hoffe dies ist soweit verständlich.
Meine Fragen sind nun. Ist die Verkabelung so richtig? oder muss ich zum senden an den Pin "PE1" bzw. "PD3" gehen?
Kann ich mit dem Multimeter messen ob etwas übertragen wird?
mit dieser Verkabelung könntest Du sogar Deine UART-Schnittstelle am Controller zerschossen haben....
Die RS232-Schnittstelle am PC arbeitet mit anderen Spannungspegeln als Dein Controller, und zwar mit +/- 12V.
Um Deinen Controller über RS232 mit dem PC zu verbinden, brauchst Du noch einen Pegelwandler dazwischen. Üblich ist da der MAX232 von Maxim.
kannst du bitte einen Link zu dem 'AT90CAN128 V3.0' posten. Der nackte Controller AT90CAN 128 hat keine Transiver. Ich vermute du meinst eine Platine mit einem Controller darauf.
Ok, dann sieht die Sache schon anders aus.
Die Pins auf CON4 kommen dann schon direkt vom Pegelwandler.
Die Dokumentation des Boards ist allerdings mehr als dürftig.
Es ist z.B. nicht klar, ob die Bezeichnungen RxD bzw. TxD an der CON4 vom Controller oder vom PC aus gesehen sind. Ist es vom Controller ausgesehen - was eigentlich die logische Beschriftung wäre - ist Deine Verdrahtung richtig. Ansonsten kannst Du mal versuchen, RxD und TxD zu tauschen.
Desweiteren bleibt offen, ob UART0 oder UART1 auf den Transceiver geführt ist. Da müsstest Du beide Schnittstellen mal probieren.
Und der Jumper J2 muss natürlich richtig gesetzt sein.
Ich hab Dir mal meine UART-Routinen angehängt.
Dürfte alles relativ selbsterklärend sein.
Die global.h wird hier nur wegen der typedefs von BYTE und WORD benötigt. Die kannst Du also auch in die uart.h kopieren und die global.h einfach weglassen.
Wichtig ist, dass Du in der uart.h die Makros MULTI_UART, COM_PORT und UART_BAUD_RATE richtig einstellst.
auf der Anbieter Seite gibt es noch einen Schaltplan zum Download. Es ist der UART0 an den Transiver angeschlossen. Die Belegung ist wie oben angenommen richtig. Zieh bei deinen Versuchen mal sicherheitshalber den Programmieradapter ab, nicht das es da zu Störungen kommt. Der sitzt mit an den gleichen Pinnen. Und schau dir als Alternative zu Hyperterminal mal hterm an.
Lesezeichen