Forum: Mikrocontroller und Digitale Elektronik STM32 Discovery CAN H kein Signal


von Max (Gast)


Lesenswert?

Hallo zusammen,

bei mir ist CAN schon was her. Ich hab eine STM32 Discovery Board und 
ein SN65HVD230 Transceiver. Ich hab es soweit hinbekommen, dass ich auf 
CAN L ein saubere Signal bekomme. Mein Logikanalyser liest die Bytes 
auch richtig. Nur auf CAN H kommt nichts raus. Ist das normal? Brauch 
ich eine Gegenstelle, dass sich auf CAN H etwas bewegt?

Auf CAN TX und RX ist das nahezu gleiche Signal zusehen.

Viele Grüße
Max

von Dr. Sommer (Gast)


Lesenswert?

Max schrieb:
> Nur auf CAN H kommt nichts raus. Ist das normal?
Nein.

Max schrieb:
> Brauch ich eine Gegenstelle, dass sich auf CAN H etwas bewegt?

Nein.

Max schrieb:
> Auf CAN TX und RX ist das nahezu gleiche Signal zusehen.

Ist korrekt so. Du wirst wohl einen Layout Fehler haben oder der 
Transceiver ist kaputt.

von Max (Gast)


Lesenswert?

Danke für die schnelle Antwort.
Ich hab zwei Transceiver gleicher Baureihe getestet. Und bei beiden ist 
das gleiche Ergebnis. Ggf. einen anderen Transceiver bestellen?

An der Stelle sei noch gesagt, dass der Transceiver gern 3.3V haben 
möchte. Ich nehme mir allerdings die 3V vom Discovery Board.

von dlchnr (Gast)


Lesenswert?

Max schrieb:
> An der Stelle sei noch gesagt, dass der Transceiver gern 3.3V haben
> möchte. Ich nehme mir allerdings die 3V vom Discovery Board.

Wenn es wirklich 3V sind, ist das ken Problem, der Baustein sollte 
ordentlich mit 3,0V bis 3,6V arbeiten!

Wie ist Pin8 (RS) beschaktet?

von Max (Gast)


Lesenswert?

Also gemessen habe ich 2.981V

Beim Transceiver handelt es ich um einen Waveshare SN65HVD230. Den habe 
ich genommen, weil einige anderen den scheinbar schon verwendet haben. 
Laut der Beschaltung soll da ein 10k Widerstand drin sein.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Max schrieb:
> eine STM32 Discovery Board

Welches denn? Beim F407 und beim F429 ist es kein Problem, eine Diode zu 
überbrücken and dann auf die nominellen 3,3V zu kommen. Der einzige 
Nachteil - du kannst dann extern nicht mehr mit 3,3V einspeisen.

von Max (Gast)


Lesenswert?

Das STM32F4Discovery habe ich.

Ich schau mal, ob ich den Transceiver mit externen 3.3V mal speise. 
Vielleicht wird es dann besser. Wobei die Berichte die ich gelesen habe, 
alle mit den 3V von Discovery leben können. :/

von Max (Gast)


Lesenswert?

Keine Verbesserung gebracht. Interessant ist auch, wenn ich RX und TX 
vertausche, dann kommt gar nicht mehr raus. Sowohl bei CAN H als auch 
bei CAN L.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Max schrieb:
> Wobei die Berichte die ich gelesen habe,
> alle mit den 3V von Discovery leben können.

Für mein Audioprojekt war der Ausbau der Diode ein Segen. Die Störungen 
auf der 3,3V Schiene sind deutlich geringer und der Audioausgang über 
den CS Chip viel sauberer.
Beim F429 Disco wurde ich mit einem viel helleren Display belohnt und 
die AD Wandler liefern auch sauberere Signale.
Für dich allerdings wirklich nicht so wichtig, wenn deine Peripherie mit 
den 3V klarkommt. Die Diode hat allerdings auch einen Innenwiderstand - 
man kann also nicht unbegrenzt Strom aus den 3V ziehen.

von dlchnr (Gast)


Lesenswert?

Max schrieb:
> Also gemessen habe ich 2.981V

also an den paar fehlenden mVolts liegt es sicherlich nicht.

von dlchnr (Gast)


Lesenswert?

Max schrieb:
> Laut der Beschaltung soll da ein 10k Widerstand drin sein.

Und wohin gehen die 10k?
Wenn gegen GND, dann wäre das ok.

von dlchnr (Gast)


Lesenswert?

Max schrieb:
> Brauch
> ich eine Gegenstelle, dass sich auf CAN H etwas bewegt?

eine Gegenstelle ist nicht notwendig (allerdings wird dann die 
CAN-Meassge auch nicht mit einem Acknowledge 
(https://de.wikipedia.org/wiki/Controller_Area_Network#ACK-Slot) 
quittiert.
Es sollte aber wenigstens ein Absclusswiderstand (120Ohm)zwischen CANH 
und CANL vorhanden sein!

von dlchnr (Gast)


Lesenswert?

Max schrieb:
> Interessant ist auch, wenn ich RX und TX
> vertausche, dann kommt gar nicht mehr raus. Sowohl bei CAN H als auch
> bei CAN L.

Würde mich auch wundern!

von mh (Gast)


Lesenswert?

Max schrieb:
> Ich hab es soweit hinbekommen, dass ich auf
> CAN L ein saubere Signal bekomme. Mein Logikanalyser liest die Bytes
> auch richtig. Nur auf CAN H kommt nichts raus.

Mooment. Du Versuchst mit dem Logicanalyzer auf dem CAN mitzulesen?
Logicanalyzer sind, wie der Name schon sagt für Logikpegel und nicht Für 
differentielle Busse.
Dass Du da überhaupt was misst (auf CANL), ist reiner Zufall...

Warum misst Du überhaupt?
Gibt's ein Problem mit der Übertragung? Um das Signal zu beurteilen? Für 
letzteres ist der Logiganalyzer aber auch nicht das richtige Werkzeug.

von Max (Gast)


Lesenswert?

Ich nutze den Scanaquad q25. Ich dachte der wäre gut, um mal eben zu 
schauen ob die richtigen Bytes über die Leitung düsen! :)

von dlchnr (Gast)


Lesenswert?

mh schrieb:
> Mooment. Du Versuchst mit dem Logicanalyzer auf dem CAN mitzulesen?
> Logicanalyzer sind, wie der Name schon sagt für Logikpegel und nicht Für
> differentielle Busse.
> Dass Du da überhaupt was misst (auf CANL), ist reiner Zufall...

Yep - da hat jemadn mitgedacht - ich muss gestehen, ich hab' da nicht 
geschaltet!

Das auf CANL was gemessen wird, ist allerdings nicht verwunderlich.
Wenn der Logianalyser seine Schaltschwelle bei der TTL-Schaltschwelle 
(1,5V) hat, wird man genau das beschriebene Verhalten zu sehen bekommen.

https://upload.wikimedia.org/wikipedia/commons/thumb/4/4d/Canbus_levels.svg/220px-Canbus_levels.svg.png

Falls der Logicanalyser eine verschiebbar Schwelle hat, könnte man die 
auf 3Volt hochdrehen und dann das CANH-Signal beobachten.

von wunder (Gast)


Lesenswert?

Max schrieb:
> Interessant ist auch, wenn ich RX und
> TX vertausche, dann kommt gar nicht mehr raus. Sowohl bei CAN H als auch
> bei CAN L.

dlchnr schrieb:
> Yep - da hat jemadn mitgedacht - ich muss gestehen, ich hab' da nicht
> geschaltet!

Ich wunder mich einfach nur... weißt du überhaupt wie CAN physikalisch 
geht? Weißt du was der Unterschied zwischen CAN-Lowspeed und 
CAN-Highspeed ist?

von Max (Gast)


Lesenswert?

So senden kann ich jetzt schon mal. War scheinbar alles richtig. Jetzt 
muss ich die Interrupts noch für RX ans Laufen bringen.

Grundlegend weiß ich schon wie CAN funktioniert. Nicht in jedem Detail, 
aber so die Basics. Deswegen sagte ich auch zu anfangs, dass es bei mir 
etwas her ist. Hatte aber CAN ein Jahr in der FH und auch ein paar Jahre 
in der Autoindustrie. Aber das ist wie gesagt schon was her. ;) So 5-6 
Jahre.

von Q. (Gast)


Lesenswert?

Hat es bei Dir funzt ? wie sieht dein Testaufbau aus ? hast du mit zwei 
STM32F4 getestet oder den CAN1 und CAN2 von STM32F4 benutzt. Ich bin 
gerade dabei, den CAN mit STM32F4 und Waveshare CAN Transceiver zu 
testen.

von Max (Gast)


Lesenswert?

Ja hat es. Nur der Interrupt will noch nicht. Aber senden geht schon mal 
sehr gut. Mit dem CubeMX einfach ein saubere Projekt machen, wo schon 
Clock und so weiter konfiguriert ist. Dann hast du eigentlich eine 
solide Basis. Bei mir war das nur ein HickHack, weil ich alles 
rumkopiert habe und in eine ordentlich Struktur gebracht habe.

Mein Aufbau ist etwas speziell. Ich hab einen STM32F4 + ein RCP von 
Autosportlabs, die auch einen STM32F4 drin haben. Sollte aber auch mit 
zwei Discovery sehr gut laufen. Wichtig ist, dass der Waveshare einen 
120 Ohm Abschlusswiderstand drin hat. :)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.