Gast
#1959406
Hi, ich bin dabei, mich in CAN beim STM32 einzuarbeiten und habe dazu mit der STM Lib (Version 3.4) und die CAN-Beispielprogramme durchgearbeitet. Da ich selbst kein EVAL-Board mit CAN habe, sondern ein STAMP Module (http://www.steitec.net/product_info.php?language=de&gm_boosted_product=ARM-STM32F103---512-Stamp&products_id=143&), habe ich das Controller Interface PCA82C250 angeschlossen, das ich aus Atmega-Projekten kenne. Es läuft auf dem STM32 ein Programm, daß im Sekundentakt eine CAN-Nachricht versendet oder besser versenden soll. Das Problem ist nun, daß der STM32 offenbar keine CAN-Nachrichten versendet. Er kann drei Nachrichten für den Versand aufnehmen und das war's. Offenbar nimmt der die Sende-Requests nur entgegen, füllt die Tx-Puffer, aber wird die Sendung "nicht los". Mit dem Oszilloskop war denn auch prompt kein Verkehr sichtbar. Ich vermute nun, daß es an der Beschaltung liegt. Vielleicht "glaubt" der STM32, der Bus sei belegt.. Der PCA82C250 wird mit 5V betrieben. Um auf Nummer sicher zu gehen, habe ich den Rx-Pfad vom PCA82C250 zum STM32 über einen Spannungsteiler verbunden, d.h. der Rx-Pin des PCA82C250 liegt über zwei 10k-Widerstände an Masse, der Rx-Pin des STM32 liegt greift die Spannung "zwischen" den beiden Widerständen ab. Die Tx-Pins sind direkt verbunden. Die CANL und CANH-Pins des PCA82C250 sind mit einem 124 Ohm Widerstand verbunden (Terminierung).Ich habe den Aufbau separat getestet (keine Sendungen beobachtet) oder auch an einem bestehenden CAN-Netz (auch keine Sendungen, das bestehende CAN-Netz funktionierte weiter). Mit dem Voltmeter habe ich am Rx-Pin des STM32 ca. 2,5V gemessen, sollte doch vom STM32 als 'High' interpretiert werden. Inzwischen habe ich auch mal den Widerstand zur Masse entfernt bzw. die beiden Rx-Pins direkt verbunden (dabei fließt ca. 80uA Strom). Alles ohne sichtbare Änderungen.. Habt ihr eine Idee oder einen Vorschlag? Setzt ihr andere Controller Interfaces mit dem STM32 ein (ich weiß, daß es hier auch den ISO1050 gibt, aber der ist ja praktisch nicht zu bekommen..)?