Forum: Mikrocontroller und Digitale Elektronik USB2CAN Adapter aus China - kann der was ?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von drm (Gast)


Angehängte Dateien:

Lesenswert?

Hat schon jemand (positive) Erfahrungen mit dem USB2CAN Adapter aus 
China gemacht ? Funktioniert der vor allem unter Linux am PC oder 
Raspberry Pi?
In der Bucht gibts den für ca. 20€. Alternativen gibts aus der EU ab 
80€, aber reicht der China Adapter vielleicht auch ? Man braucht ja 
mindestens 2 um damit was machen zu können, dann geht es schnell ins 
Geld.

von Thomas F. (igel)


Lesenswert?

Hab vor einigen Jahren mal so einen gekauft:
Hat unter Windows nie funktioniert. Die Software war nur auf chinesisch, 
nicht mal englisch und damit nicht bedienbar.
Keine Informationen zum Protokoll, somit kann man auch keine eigene 
Software schreiben.

Nimm lieber etwas Erprobtes: https://www.fischl.de/usbtin/

von Volker Z. (vzavza)


Lesenswert?

Taucht nix.
CAN braucht GND damit er nicht nur zufällig auf dem Schreibtisch 
funktioniert.

Gruß Volker

von Clemens S. (zoggl)


Lesenswert?

Da du keinen Link oder ein Datenblatt bietest nur folgende allgemeine 
Empfehlungen:

Kann dieser nur lesend am Bus hängen? - keine ack, keine Errors. 
Wirklich nur lesend.
Kann dieser fehlerhafte Frames ausgeben? - manchmal ganz praktisch, wenn 
ein Teilnehmer in Bus off geht, aber eigentlich ein anderer TN wegen 
Reflexionen den Frame fehlerhaft als falsch markiert.
Welche Software gibt es dazu?
Wie gut sind die APIs dokumentiert?

Sg

von drm (Gast)


Angehängte Dateien:

Lesenswert?

>Da du keinen Link oder ein Datenblatt bietest
>Welche Software gibt es dazu?
>Wie gut sind die APIs dokumentiert?
ich vermute das ist ein 8Devices USB2CAN clone
Habe gehofft, ein anderer Sparfuchs im Forum hat den schon mal benutzt.
Software sind die Linux CAN-Tools und der Linux  CAN Socket wenn es ein 
Clone ist.

Hintergrund:
für den RPI habe ich mir schon einen pican2-duo clone gebastelt. Der 
funzt soweit, aber nur halt am RPI, da eine GPIO Erweiterung. Mit einem 
USB Adapter würde GPIO komplett frei bleiben und Linux PC Kompatibilität 
ergeben.
(Wer sich über das Layout aufregen will, es ist Manhattan Routing im 
Lochraster Grid. Chip Shortage hat DIP erzwungen, Fallback falls China 
Platine nicht kommt).

>Nimm lieber etwas Erprobtes: Fischl USBtin
doppelt so teuer, Kein Gehäuse oder Anschlussklemme
Dann ist ein 8Devices oder Peak USB-CAN Adapter wieder preislich 
interessant. Von denen weiss ich das sie unter Linux laufen.

>CAN braucht GND damit er nicht nur zufällig auf dem Schreibtisch funktioniert.
Bei einem 20€ Gerät bastel ich mir das nachträglich dran, daran soll es 
nicht scheitern

von Tilo R. (joey5337) Benutzerseite


Lesenswert?

Mit einem China-Adapter hatte ich auch schon Pech.

Das Fischl-Ding funktioniert, bei einem von meinen beiden musste ich 
allerdings erst die Firmware installieren. Richtig billig finde ich die 
nicht, aber der Markt bestimmt den Preis.

Billig (<10€) gibt es CAN-Shields aus dem Arduino-Bereich. Die benutzen 
den MCP2515 und werden per SPI angeschlossen.
Wenn man den 5V-CAN-Treiber gegen einen 3.3V-Typen tauscht kann man die 
an einen Raspberry anklemmen. Mit ein bischen config geht dann 
SocketCan, bei mir relativ zuverlässig.

von drm (Gast)


Angehängte Dateien:

Lesenswert?

beim Herumstöbern im Netz habe ich die Android App "Robotech CAN bus 
Analyzer" gefunden. Ich glaube, ich investiere mal das Lehrgeld in die 
China Lösung. 20€ ist zu verschmerzen wenn es schief geht.

>Billig (<10€) gibt es CAN-Shields aus dem Arduino-Bereich.
>Die benutzen den MCP2515 und werden per SPI angeschlossen.
das ist exakt mein Board, MCP2515-I/P + 12MHz Quarz + 5V/3.3V/CAN Bus 
Treiber MCP2551-I/P. Läuft auf Anhieb mit den angehängten Einstellungen 
unter Raspi-OS. Wenn man den 2. MCP2515 auch aktivert kann man im Loop 
Nachrichten Senden und Empfangen. Oder halt die eigene Applikation 
debuggen.

von mppt (Gast)


Lesenswert?

Volker Z. schrieb:
> Taucht nix.
> CAN braucht GND damit er nicht nur zufällig auf dem Schreibtisch
> funktioniert.
>
> Gruß Volker

Bei mir im Haus funktioniert das seit 10 Jahren ohne Probleme und mit 
noch mehr "nogo's" die die Klugscheißer hier verbreiten. Alle Teilnehmer 
haben isolierte CAN-Tranceiver, es gibt Stichleitungen mit 8m Länge, GND 
ist nirgends verbunden, die gesamte Buslänge ist ca. 40m bei 100kBaud. 
CAN ist viel robuster und einfacher als viele behaupten.

Der gezeigte CAN Adapter hat wohl sein eigenes serielles Protokoll das 
zu nichts kompatibel ist. Damit ist er nicht zu empfehlen.

Alternativen sind canable
https://canable.io/

oder wie oben schon geschrieben usbtin. https://www.fischl.de/usbtin/
Beide benutzen das Standard slcan Protokol.
Eigentlich ist usbtin nicht mehr zeitgemäß wegen des wenigen RAM im PIC 
Controller, aber in diesen Zeiten wo Cortexe mit CAN kaum erhältlich 
sind, ist das immer noch eine gute Alternative.

von drm (Gast)


Lesenswert?

>Alternativen sind canable
Leider "sold out" im Webshop. Wenn das mal keine Chip Shortage ist.

von mppt (Gast)


Lesenswert?


von drm (Gast)


Lesenswert?

die Canable sind wohl auch mit den 8Devices Korlan USB2CAN identisch.
Selben STM32F042/STM32F072 mit internem CAN Bus und externem 
Transceiver.
Da gab es auch den entscheidenende Hinweis : candlelight firmware
https://github.com/candle-usb/candleLight_fw
Passt auf den ersten Blick auch auf den USB2CAN Adapter.
Ist also alles der selbe CAN Adapter von 1000 verschiedenen Herstellern.
Ich nehme den mit Gehäuse für 20€ incl Porto von der Bucht.
Dauert ein bisschen bis der in der Post ist, ich werde ggf. berichten 
falls es jemand interessiert.

von Volker Z. (vzavza)


Lesenswert?

mppt schrieb:
>> Taucht nix.
>> CAN braucht GND damit er nicht nur zufällig auf dem Schreibtisch
>> funktioniert.
>>
>> Gruß Volker
>
> Bei mir im Haus funktioniert das seit 10 Jahren ohne Probleme und mit
> noch mehr "nogo's" die die Klugscheißer hier verbreiten. Alle Teilnehmer
> haben isolierte CAN-Tranceiver, es gibt Stichleitungen mit 8m Länge, GND
> ist nirgends verbunden, die gesamte Buslänge ist ca. 40m bei 100kBaud.
> CAN ist viel robuster und einfacher als viele behaupten.

Ein Kollege hat den CAN-Bus ohne Abschluss-Widerstände betrieben. Hat 
auch (meist) funktioniert.

Jeder darf die Theorie der Elektrotechnik soweit ignorieren, wie es für 
ihn passt.

Gruß  Volker

von drm (Gast)


Lesenswert?

>Ein Kollege hat den CAN-Bus ohne Abschluss-Widerstände betrieben. Hat auch 
(meist) funktioniert.
ACK, ein Terminierungswiderstand an beliebiger Position reicht auch oft, 
2 an der richtigen Position werden überschätzt in ihrer Wirkung.

>Jeder darf die Theorie der Elektrotechnik soweit ignorieren, wie es für ihn 
passt.
No risk, no fun.
Wie Grönemeyer in seiner VDE Norm so schön gesagt hat:
1000 Mal berührt, 1000 Mal ist nix passiert.
1000 und eine Nacht und es hat zoom gemacht.

Genau dafür gab es ja oben den Hinweis ob der CAN Adapter auch defekte 
Pakete anzeigen kann. Ob also beim ersten Versuch das Datenpaket 
durchgeht oder mehrere Versuche nötig sind fällt vielleicht gar nicht 
auf. Aber das prüfe ich gerne mit meinem LA direkt am Draht.

von drm (Gast)


Lesenswert?

Klaus Lage, nicht Grönemeyer

von mppt (Gast)


Lesenswert?

drm schrieb:
> Da gab es auch den entscheidenende Hinweis : candlelight firmware
> https://github.com/candle-usb/candleLight_fw
> Passt auf den ersten Blick auch auf den USB2CAN Adapter.

Diese firmware spricht aber nicht slcan sondern nur socket can. Damit 
ist Windows als Host wohl raus für diesen Adapter. Wenn man damit leben 
kann ist es ok. Universell ist aber was anderes.

von drm (Gast)


Lesenswert?

>Diese firmware spricht aber nicht slcan sondern nur socket can.
Windows interessiert mich nicht, also alles gut für mich, ich brauche 
nur Linux.

von Rudolph R. (rudolph)


Lesenswert?

Wenn diese Chip-Krise nicht wäre...
https://github.com/RudolphRiedel/USB_CAN-FD
https://github.com/jgressmann/supercan

Die Laufen auch unter Linux.

Es gibt auch eine Firmware für das "Adafruit Feather M4 CAN Express", da 
ist zumindest 1 CAN-Transceiver drauf und der Anschluss an dem Board hat 
auch GND mit drauf.
Ist halt "nur" 1 CAN und nicht isoliert und "nur" bis 5MBit/s, aber das 
Board hat halt auch den ATSAME51J drauf.

von Falk B. (falk)


Lesenswert?

In der Firma haben wir die CANUSB aus Schweden, deutsche Wertarbeit ;-)

https://www.canusb.com/products/canusb/

Kostet glaub ich um die 100 Euro. Jaja, nicht superbillig, funktioniert 
aber ohne Handstände und ist frei programmierbar, Schnitstelle liegt 
offen vor.

von Rudolph R. (rudolph)


Lesenswert?

Falk B. schrieb:
> https://www.canusb.com/products/canusb/

Werden die wirklich noch gebaut?
Die Liste der Teile liest sich wie aus dem Antiquariat, der SJA1000 ist 
doch schon bestimmt 10 Jahre abgekündigt?

Ah, es gibt einen SJA1000T.

: Bearbeitet durch User
von temp (Gast)


Lesenswert?

Clemens S. schrieb:
> Kann dieser nur lesend am Bus hängen? - keine ack, keine Errors.
> Wirklich nur lesend.
> Kann dieser fehlerhafte Frames ausgeben? - manchmal ganz praktisch, wenn
> ein Teilnehmer in Bus off geht, aber eigentlich ein anderer TN wegen
> Reflexionen den Frame fehlerhaft als falsch markiert.
> Welche Software gibt es dazu?
> Wie gut sind die APIs dokumentiert?

https://github.com/KevinOConnor/can2040

eventuell ist das ja für dich ein Ansatz. Da kannst du dann komplett 
bestimmen was du kriegst. Fehlerhafte Frames ausgeben ist etwas was die 
mir bekannten CAN-Controller in dem µC's nicht können.

von drm (Gast)


Lesenswert?

der China Adapter ist heute angekommen
Tech Spec:
USB-Seriell Controller CH9340C, wird von Windows sofort erkannt
Geehy APM32 F103CBT6 CPU mit 12 MHz Quarz (96MHz, 128k Flash 20k RAM, 
Cortex-M3 LQFP48, integrierter CAN Controller)
https://geehy.com/support/apm32
SIT1050 CAN Bus Treiber
AMS1117-3.3V LDO

scheint dem hier sehr ähnlich zu sein:
https://www.seeedstudio.com/USB-CAN-Analyzer-p-2888.html
es gibt Windows und Linux Tools

Kann kein Sochet CAN, hat warscheinlich ein eigenes Seriell zu CAN 
Protokoll:
https://github.com/kobolt/usb-can

erste Tests werden bald folgen

PS: die Geehy CPUs scheinen gut dokumentiert, sind bei LCSC lieferbar, 
werden von Keil und IAR unterstützt, Ähnlichkeiten zu STM32 drängen sich 
geradezu auf.

von Rudolph R. (rudolph)


Lesenswert?

drm schrieb:
> USB-Seriell Controller CH9340C, wird von Windows sofort erkannt
> Geehy APM32 F103CBT6 CPU mit 12 MHz Quarz (96MHz, 128k Flash 20k RAM,
> Cortex-M3 LQFP48, integrierter CAN Controller)

Warum auch immer der eingebaute USB-Controller nicht verwendet wird.
Vielleicht, weil die Software nur Copy-Paste ist und der STM32F103 nicht 
CAN und USB gleichzeitig kann?

von 888 (Gast)


Lesenswert?

Rudolph R. schrieb:
> Falk B. schrieb:
>> https://www.canusb.com/products/canusb/
>
> Werden die wirklich noch gebaut?

Das ist "der" Lawicel, zu dem die ganzen Selbstbau-Projekte kompatibel 
sind. Auf dessen Befehlssatz setzen Tools wie CanHacker oder CanCool 
auf. So wie Prologix einen Quasi-Standard für GPIB-Adapter geschaffen 
hat.


> Die Liste der Teile liest sich wie aus dem Antiquariat, der SJA1000 ist
> doch schon bestimmt 10 Jahre abgekündigt?

Philips heisst jetzt NXP, und die verkaufen ihn noch: 
https://www.nxp.com/products/interfaces/can-transceivers/legacy-can/stand-alone-can-controller:SJA1000T

von drm (Gast)


Angehängte Dateien:

Lesenswert?

hier mal ein Foto der PCB

von Ingo (Gast)


Lesenswert?

Kannst Du sehen, was für ein MC das ist?

Danke.

von No Y. (noy)


Lesenswert?

Hab den von Seeedstudio, da ist es ein:
STM32F103


Aber meiner ist kaputt:
https://forum.seeedstudio.com/t/usb-can-analyzer-help/7513/4

Brauche die Firmware.. Leider scheint es da keine opensource zu geben 
was die Chinesen kopiert haben..
Oder noch nicht gefunden.. Wollte den STM mal neu flashen damit ich weiß 
ob der Pin intern aufgegeben hat oder es Probleme mit der Software im 
Flash gibt..

von Uwe B. (uwebre)


Lesenswert?

Volker Z. schrieb:
mppt schrieb:
>> Bei mir im Haus funktioniert das seit 10 Jahren ohne Probleme und mit
>> noch mehr "nogo's" die die Klugscheißer hier verbreiten. Alle Teilnehmer
>> haben isolierte CAN-Tranceiver,

Es gibt Isolierte CAN Transceiver welche bei entsprechender Beschaltung 
ohne GND-Verbindung klarkommen.
Es geht darum daß das Niveau des Leitungspaares gegenüber GND der 
Teilnehmer nicht aus dem zulässigen Gleichtaktbereich "herauswandert".

>> es gibt Stichleitungen mit 8m Länge, GND
>> ist nirgends verbunden, die gesamte Buslänge ist ca. 40m bei 100kBaud.

100k ist ja auch kurz hinter morsen und 40 Meter ist keine nennenswerte 
Länge ..

>> CAN ist viel robuster und einfacher als viele behaupten.

Ja, robust. Allerdings geht die Übertragungsrate bei unsachgemäßer 
Verkabelung schnell böse in die Knie wenn Messages vielfach gesendet 
werden müssen damit die beteiligten Nodes sie für glaubwürdig halten..

> Ein Kollege hat den CAN-Bus ohne Abschluss-Widerstände betrieben. Hat
> auch (meist) funktioniert.

Das halte ich für sehr unglaubwürdig.

> Jeder darf die Theorie der Elektrotechnik soweit ignorieren, wie es für
> ihn passt.

Solange er ausschließlich für sich selber bastelt: Ja.

Uwe, Klugscheißer

: Bearbeitet durch User
von Sebastian (Gast)


Lesenswert?

drm schrieb:
> Hat schon jemand (positive) Erfahrungen mit dem USB2CAN Adapter aus
> China gemacht ? Funktioniert der vor allem unter Linux am PC oder
> Raspberry Pi?

Wozu? Um CAN zu debuggen nimm einen Transceiver und einen 
Saleae-USB-Logikanalysator-Klon. Zur Teilnahme am CAN-Bus schliess einen 
Transceiver an die entsprechenden GPIO-Ports des RasPi an.

LG, Sebastian

von mppt (Gast)


Lesenswert?

Uwe B. schrieb:
> Ja, robust. Allerdings geht die Übertragungsrate bei unsachgemäßer
> Verkabelung schnell böse in die Knie wenn Messages vielfach gesendet
> werden müssen damit die beteiligten Nodes sie für glaubwürdig halten..

Das wiederholte Senden von Messages hört genau dann auf wenn eine! Node 
sein ok gibt. Ob alle Nodes am Bus die verstanden haben wird nicht 
überprüft. Bei schlechter Verkabelung kann es sicher passieren dass 
einige Nodes etwas nicht mitbekommen, das der Bus mit Wiederholungen 
geflutet wird ist ehr unwahrscheinlich. Wenn dann ist der Bus schon so 
schlecht dass die sendende Node seine eigene Message nicht mehr lesen 
kann.

Damit ist dein heraufbeschworenes Szenario einfach nur Bullshit.

Uwe B. schrieb:
> 100k ist ja auch kurz hinter morsen und 40 Meter ist keine nennenswerte
> Länge ..

Stimmt genau, und deshalb muss man nicht die gleichen Maßstäbe an die 
Verkabelung stellen wie bei 1MBit und max. Buslänge. Selbst in Autos 
gibt es Stichleitungen und von der Norm abweichende 
Abschlusswiderstände. Irgendwo hatte ich mal einen Artikel von Mercedes 
gelesen wo genau diese Szenarien beschrieben wurden.

von Uwe B. (uwebre)


Lesenswert?

mppt schrieb:
> Uwe B. schrieb:
>> Ja, robust. Allerdings geht die Übertragungsrate bei unsachgemäßer
>> Verkabelung schnell böse in die Knie wenn Messages vielfach gesendet
>> werden müssen damit die beteiligten Nodes sie für glaubwürdig halten..

> Das wiederholte Senden von Messages hört genau dann auf wenn eine! Node
> sein ok gibt.

Es gibt noch weitere Mechanismen zur Fehlererkennung welche den Sender 
zum erneuten Aussenden der Message aufrufen. Und empfangende Nodes 
auffordern die Message zu verwerfen.

> Ob alle Nodes am Bus die verstanden haben wird nicht
> überprüft. Bei schlechter Verkabelung kann es sicher passieren dass
> einige Nodes etwas nicht mitbekommen,

Der große Vorteil des CAN-Protokolls ist daß genau das nicht passiert.

> Damit ist dein heraufbeschworenes Szenario einfach nur Bullshit.

Kompetenz drückt sich nicht automatisch durch Verwendung der 
Fäkalsprache aus. Jedenfalls nicht unter erwachsenen Technikern.

Uwe

von Uwe B. (uwebre)


Lesenswert?

Sebastian schrieb:
> drm schrieb:
>> Hat schon jemand (positive) Erfahrungen mit dem USB2CAN Adapter aus
>> China gemacht ? Funktioniert der vor allem unter Linux am PC oder
>> Raspberry Pi?
>
> Wozu? Um CAN zu debuggen nimm einen Transceiver und einen
> Saleae-USB-Logikanalysator-Klon.

Hast du das schonmal gemacht, in einem realen Netzwerk mit ein bisschen 
Verkehr? Das Protokoll selber braucht man nicht zu "debuggen" auf 
Nachrichtenebene wäre das Hardcore.

> Zur Teilnahme am CAN-Bus schliess einen
> Transceiver an die entsprechenden GPIO-Ports des RasPi an.

der To möchte mit einem Raspberry am CAN-Bus teilnehmen ohne einen 
GPIO-Port zu belegen. Er hat das geschrieben, du konntest es lesen.
Abgesehen davon, du möchtest das CAN-Protokoll auf dem Raspberry in 
Software nachbauen?

Uwe

von 888 (Gast)


Lesenswert?

mppt schrieb:
> Uwe B. schrieb:
>> Ja, robust. Allerdings geht die Übertragungsrate bei unsachgemäßer
>> Verkabelung schnell böse in die Knie wenn Messages vielfach gesendet
>> werden müssen damit die beteiligten Nodes sie für glaubwürdig halten..
>
> Das wiederholte Senden von Messages hört genau dann auf wenn eine! Node
> sein ok gibt. Ob alle Nodes am Bus die verstanden haben wird nicht
> überprüft.

Doch, natürlich. Sobald ein Node eine ungültige Botschaft auf dem Bus 
entdeckt, überschreibt er diese mit einem Error Frame. D.h. sobald einer 
der Teilnehmer die Botschaft nicht lesen kann, ist diese für sämtliche 
Teilnehmer ungültig und muss neu gesendet werden.

Es gibt einen Sicherheitszähler, um zu verhindern dass ein schlecht 
angeklemmter oder falsch konfigurierter Node grundsätzlich nichts 
versteht und deshalb den kompletten Datenverkehr anulliert. Es dürfen 
pro Teilnehmer maximal 7 Error Frames hintereinander gesendet werden, 
danach müssen erstmal 128 "gute" Botschaften abgewartet werden.

So kann man einen Bus allerdings auch zerlegen: wenn irgendwann alle 
Teilnehmer in Error Passive sind und sich keiner mehr zu senden traut. 
Ein Steuergerät muss dann die Master-Rolle übernehmen und den Bus wieder 
hochfahren.

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.