Hallo Forum, ich habe eine selbstgestrickte CAN-Platine (im Anhang, siehe Beitrag "Platinenkritik Hausbus/CAN Eingang" , RXD und TXD sind hervorgehoben), Prototyp 0.1, und bekomme den CAN nicht zum laufen. Loopback-Modus geht, mein Logicanalyzer sagt: auf TXD am MAX3051 kommt noch ein Signal an, aber CANH und CANL bleiben auf ~2.5V und RXD bewegt sich nicht. RXD müsste aber doch zu mindestens TXD spiegeln. Um auszuschließen dass ich das Datenblatt im Hinblick auf die Pins RS (Slope Control) und SHDN (Offline/Stromsparmodus) falsch lese, habe ich ein Programm geladen, dass alle 8 möglichen Muster an den Eingangspins TXD/RS/SHDN anlegt und je 2s wartet. RXD ist dabei am Mikrocontroller als Eingang ohne PullUp oder PullDown konfiguriert (PullNone in mbed-Speak). RXD bleibt dabei konstant auf 3.3V. Der Bus ist in diesem Test bis auf den 120 Ohm Widerstand und die TVS-Diode nicht verbunden. Das Phänomen beobachte ich mit beiden meiner Testplatinen. Also entweder ich verstehe Tabelle 1 im Datenblatt und was ein CAN-Transreceiver macht falsch, oder beide Chips sind defekt (oder gefälscht, waren von Aliexpress?). Kann ich die gebraten haben indem ich mit dem STM32 gegen RXD getrieben habe? (Wobei das Datenblatt sagt RXD to GND -0.3 bis +6 V). VCC und GND scheinen korrekt anzuliegen, TXD, RS und SHDN wechseln auch schön wie es der MC vorgibt. Hat jemand noch einen Debugvorschlag für mich? Gruss FloF
FloF schrieb: > RXD und TXD sind > hervorgehoben Sorry, Eagle exportiert die Hervorhebung nicht, jetzt von Hand.
Tja, auch ein frisches PCB mit frischem MAX3051 zeigt das gleiche Verhalten. Ich hab auch noch mal 47k an RS gehängt, gibt dann ca 1.7 V an RS (was zu einer Slew Rate von ca 6V/us führen sollte). Narf :(
Nicht laut Datenblatt. CANL auf GND ziehen (ueber 3.3kOhm) zieht CANL auf .2 V, CANH auf 1.6, RXD reagiert nicht. Ich messe auch keinen 75k PullDown an SHDN. Verdächtig.
Kann es sein dass der MAX3051 einen Art Bus-Schutz hat und Low signale ab einer gewissen Länge wieder ignoriert? Habe gelesen dass andere CAN-Transreceiver sowas haben, kann aber im Datenblatt nix dazu finden.
Hallo Florian, ich hab noch nie Probleme mit dem Teil gehabt. Ich mess 72k von pin 2 nach pin 5. Vieleicht falsch herum eingebaut ? Kann ja mal vorkommen... Ludger
Was ist denn das für ein Suchbild mit dem GND und der Vcc? Wie auch immer: die LED1 wird mit an Sicherheit grenzender Wahrscheinlichkeit niemals leuchten... FloF schrieb: > Um auszuschließen dass ich das Datenblatt im Hinblick auf die Pins RS > (Slope Control) und SHDN (Offline/Stromsparmodus) falsch lese Die gehören zur sicherhaiet beide auf GND. Später kannst du noch mit dem Slope-Widerstand herumspielen... Ludger schrieb: > Vieleicht falsch herum eingebaut ? Ein Foto wäre in der Tat interessant...
:
Bearbeitet durch Moderator
Wenn's denn sein muss, anbei ein Schnellschuss mit der Handykamera. Das LED1 im Schaltplan falsch herum ist ist bekannt. Aber es nutzt ja wenig, wenn ich den neuesten Schaltplan statt den der zu dieser Platine passt poste. RS und SHDN liegen auf Pins des MC, und werden auch auf GND gezogen.
Tach, korrekt RS und SHDN auf Masse. RX und TX sind hardwaretechnisch korrekt angeschlossen. Jetzt muss nur noch die GPIO config im STM stimmen. RX verhält sich korrekt, wenn es Hi bleibt. Es spiegelt nämlich nicht TX sondern den BUS. Wenn der nichts macht dann ist RX = Hi OK. Der MAX3051 hat soweit ich weiß keinen watchdog um hängende master vom Bus zu trennen. Allerdings macht der CAN controler im STM das. Diese chips sind zu simpel als das man die nicht zum laufen bekommt. Dein Problem liegt vorher. Meine Vermutung ist, dass du Probleme mit deinem CAN controler hast. Der loopback mode ist keine ausreichende Bestätigung, dass der controler sachgemäß arbeitet. Ich würde empfehlen TX manuell mit der angepeilten bitrate zu toggeln und mal nachschauen was der transceiver macht. Thor
Hallo Thor, danke fuer Deine Analyse. Genau das hab ich zuletzt gemacht, TX mit 10kHZ (und auch einmal mit 1Hz) getoggelt, weder der Bus noch RX machen irgendwas. Das kann laut Datenblatt nicht sein, wenn der Bus abgekoppelt ist, muss nach Tabelle 1 RX TX widerspiegeln. Auch das der interne Pulldown zwischen GND und SHDN fehlt deutet vermutlich darauf hin, dass ich hier Tand mit MAX3051 Beschriftung gekauft habe. Ich warte jetzt mal die Mouserlieferung ab, in der sind ja dann hoffentlich funktionierende MAX3051, und wenn die immer noch nicht wollen, der noch simplerer SN65HVD232 - der hat ja dann 0 Extras. Gruss FloF
Mhh, OK. Was auch immer und wo auch immer du da gekauft hast... Kann es vielleicht sein, dass das ein MAX13051 ist? Funktional fast das selbe chip aber für 5V. Thor
Gekauft hab ich hier: http://de.aliexpress.com/item/IC-MAX3051ESA-MAX3051-SOP-8-Original-authentic-and-new-Free-Shipping-IC/32348425340.html Laut Beschriftung ist es ein MAX3051, siehe Anhang (MAX3051 ESA+342)
:
Bearbeitet durch User
So, die Mouser MAX3051 sind da, und funktionieren! Anbei ein paar der Bilder, die Chips sehen auch sehr unterschiedlich aus: (die Bilder sind mit dem gleichen Licht etc gemacht - der Chinachip lässt sich wirklich so bescheiden lesen. Ich hab auch den Eindruck dass Isopropanol zum Flussmittel-entfernen die Beschriftung noch schlechter macht). -Original: Lasergravur. China: Schlechter Siebdruck -Original: Einkerbung am Pin 1, Pin 1-Punkt Lasergraviertes Kreuz. China: Keine Einkerbung, Pin1-Punkt als Vertiefung im Gehäuse. -Original: Rückseite Lasergraviert, M Phili-ppines BF. China: Eingeprägt, THAILAND OII, mit einem J in der Mitte
Da sieht man wieder mal... Wer billig kauft, kauft zweimal. Aber schön, dass Deine Schaltung jetzt funktioniert. Vielleicht funktionieren die China-Teile ja doch und die haben die Pin 1 Markierung nur falschrum draufgemacht?
@Bad Urban: Dann käme aber kein rezessiver CAN Pegel aus den erwarteten Pins. Und der erwartete Pulldown ist anders herum auch nicht da. Und billig: Nein. Die Dinger haben 1.593 USD / Chip inkl. Versand gekostet. Bei Mouser hab ich jetzt 1.470 EUR / Chip bezahlt - musste aber deutlich mehr Kram abnehmen um keinen Versand zu zahlen. (beide Zahlen ohne Einfuhrumsatzsteuer). Das ist jetzt kein Preisunterschied wo man direkt erwarten muss Fälschungen zu erhalten.
Ah, OK. Ich dachte wegen dem Preis. Den Max kenn ich jetzt nicht, aber CAN-Transceiver in SO8 bekommt man ja überall als Einzelstück. Hab grad gesehen, dass es ein 3,3V Transceiver ist. Die sind wohl etwas seltener.
:
Bearbeitet durch User
@Bad Urban: Prinzipiell ja, aber 3.3V sind schon schwieriger. Reichelt hat mittlerweile den SN65HVD230D und SN65HVD231D im Programm. Nur da muss man aufpassen, der 0D kann Standby (Listen Only), der 1D kann Sleep (=tiefschlaf) und der 2D kann weder noch und und verbrät 10mA. Der Max3051 kann das halt alles in einem und verbraucht typisch 2 statt 10 mA (recessive, 5 vs 17 mA max). Beim Senden hingegen braucht der Max typisch 35, max 70 mA, der ST nur 10-17. Da stimmt irgendwas im Datenblatt aber auch nicht, 1 Volt unterschied gegen 60 Ohm gibt nach URI nur 16.6 mA. Vielleicht kann der Max gegen widrigere Umstände antreiben.
Und hier ist was Maxim dazu sagt: "The company ShenZhen McNair Nordson Electronics is NOT an authorized reseller of Maxim parts. The pictured parts from them are counterfeit. None of the markings on the parts match any lots we manufactured."
Da hast Du dir ja schon eine gute Übersicht angelesen. Leistungsmessungen stehen bei mir auch noch aus. Aber erstmal müssen ein paar andere Sachen fertig werden.
Der Chinese sagt sein Lieferant hätte ihm echte teile garantiert, und er würde da jetzt nach bohren...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.