mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik STM32 und PCA82C250


Autor: C. D. (schnack)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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=d...), 
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..)?

Autor: Lutz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Datenblatt des STM32 steht im CAN-Abschnitt (wo sonst ...), wie der 
gute Chip auch alleine klarkommt, also ohne Anbindung an einen echten 
CAN-Bus (Loopbackmode). Schon mal probiert, was dabei rauskommt?

Autor: C. D. (schnack)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
nein, das habe ich noch nicht ausprobiert, hatte das für heute Abend 
vor. Meine Hoffnung ist, daß das jemand die Kombination STM32 und 
PCA32C250 am Laufen hat und sagen kann, ob es hier noch etwas zu 
beachten gibt.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
CAN ohne eine zweite Node am Bus funktioniert nicht, der Sender läuft 
sonst nach etlichen Retries auf Fehler, weil niemand das ACK-Bit 
aktiviert.

Es kann sich bei Tests übrigens lohnen, in die Status-Anzeigen und 
Error-Counter reinzusehen.

STM32+PCA82C250 habe ich mal erfolgreich ausprobiert. Direkt verbunden, 
die CAN-Pins sind 5V-tolerant => Datasheet). Spannungsteiler ist nicht 
sinnvoll, könnte stören (Pegel, Tempo).

Autor: C.D. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die Klarstellung mit dem PCA82C250. Ich habe inzwischen 
erkannt, daß mein Problem offenbar woanders liegt. Beim Loopback gibt es 
"merkwürdige" Effekte - ich mache einen eigenen Thread dafür auf.
Grüße
schnack

Autor: C. D. (schnack)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Markus Müller (mmvisual)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit dem PCA82C250 kann es Probleme geben, weil:

Der Tx Pin erkennt nur sicher ein Hi-Pegel bei 0,7Vcc = 3,5V

Es kann funktionieren, aber eben nicht sicher!

Ich verwenden immer den SN65HVD234 (TI), den betreibe ich mit 3,3V und 
ist somit Kompatibel mit der Logik-Spannung.

Alternative: Level-Shifter um die 3,3V auf 5V hoch zu ziehen.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thx, war mir garnicht aufgefallen. Der PCA ist so alt, da nimmt man 
automatisch TTL-Kompatibilität an.

Alternative ist auch der MCP2551, der ist schon mit 2,0V zufrieden.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.