Forum: Mikrocontroller und Digitale Elektronik CAN-Sender im Mini-Format


von Olli Z. (z80freak)


Lesenswert?

Ich möchte einen kleinen CAN-Adapter fürs Auto bauen, der, wenn er 
Betriebsspannung erhält, einfach nur eine einzige ID aussendet. Also 
quasi Digital zu CAN ;-)

Da dachte ich jetzt an einen PIC oder kleinen AVR (Attiny45) in Kombi 
mit MCP2515 und MCP2551 oder TJA1050 Transceiver.

Da das ganze möglichst klein sein soll wär meine Frage an Euch, ob es 
noch bessere Chips für eine solch triviale Aufgabe gibt? Das ganze soll 
so klein und günstig wie möglich werden.

Danke schonmal für die Anregungen :-)

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Olli Z. schrieb:
> Ich möchte einen kleinen CAN-Adapter fürs Auto bauen, der, wenn er
> Betriebsspannung erhält, einfach nur eine einzige ID aussendet. Also
> quasi Digital zu CAN ;-)

 Wie "einfach nur eine einzige ID aussendet" ?
 Einmal ?
 Zweimal ?
 Alle xx sec. ?
 Auf Anfrage ?

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

Olli Z. schrieb:
> Da das ganze möglichst klein sein soll wär meine Frage an Euch, ob es
> noch bessere Chips für eine solch triviale Aufgabe gibt?

Schon bei den von dir genannten Chips gibt es erhebliche Unterschiede in 
der Platinenfläche, alleine beim MCP2515 je nach Bauform einen Faktor 
4,3 - es kommt drauf an, was du löten möchtest.

von TestX (Gast)


Lesenswert?

wenn es ein AVR sein soll nimm wenigstens einen mit integriertem can 
controller. tranceiver dran und fertig.

von Olli Z. (z80freak)


Lesenswert?

Marc V. schrieb:
>  Wie "einfach nur eine einzige ID aussendet" ?
>  Einmal ?
>  Zweimal ?
>  Alle xx sec. ?
>  Auf Anfrage ?

Das spielt alles keine Rolle, aber es ist periodisch (alle 200ms).
Im prinzip müsste das sogar mit einfachem Bitbangig gehen, aber um keine 
unnötigen Resends und Kollisionen zu produzieren wäre ein echter 
CAN-Controller schon gut.

: Bearbeitet durch User
von Olli Z. (z80freak)


Lesenswert?

TestX schrieb:
> wenn es ein AVR sein soll nimm wenigstens einen mit integriertem can
> controller. tranceiver dran und fertig.

Da dachte ich an einen AT90CAN (gibts da überhaupt noch andere AVRs mit 
integriertem CAN-Controller?) Aber der ist relativ groß und braucht 
einiges an Beschaltung drumherum. Da ist so ein Attiny25/45 selbst mit 
MCP2515 nicht viel größer, aber viel billiger...

von Pz (Gast)


Lesenswert?

www.nxp.com/products/processors-and-microcontrollers/arm-based-processor 
s-and-mcus/lpc-cortex-m-mcus/lpc1100-cortex-m0-plus-m0/scalable-entry-le 
vel-32-bit-microcontroller-mcu-based-on-arm-cortex-m0-plus-m0-cores:LPC1 
1C22FBD48

von Volker S. (vloki)


Lesenswert?

Dann eben ein PIC18F2xK80?
(x= 5oder6)

<edit>der 25k83 ist neuer und scheint auch billiger zu sein. Kostet 
gerade so viel, wie ein 2515</edit>

: Bearbeitet durch User
von Johannes M. (johannesm)


Lesenswert?

Schau dir mal ATmega16M1 an, wenn es auch Cortex-M sein darf gibt es den 
ATSAMC21. Haben beide 32 Pins.

von Dieter M. (Gast)


Lesenswert?

Für die braucht man einen Transceiver. 2 ICs brauchst Du anscheinend 
immer.
Der MCP 25625 hat den Tranceiver schon drin.
Als QFN ca. 6x6mm2
Zusammen mit eine Tiny könnte das die kleinste Lösung sein

von pegel (Gast)


Lesenswert?

Spannungsregler nicht vergessen.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Olli Z. schrieb:
>>  Alle xx sec. ?
>>  Auf Anfrage ?
>
> Das spielt alles keine Rolle, aber es ist periodisch (alle 200ms).

 Natürlich spielt das eine Rolle. Auf Anfrage bedeutet, dass der Chip
 imstande sein muss, CAN-Messages zu empfangen und zu dekodieren.
 Alle xx sec. bedeutet, dass die Meldung ganz einfach rausgeschickt 
wird.


> Im prinzip müsste das sogar mit einfachem Bitbangig gehen, aber um keine
> unnötigen Resends und Kollisionen zu produzieren wäre ein echter
> CAN-Controller schon gut.

 Kollision ist auch bei Bitbanging ganz leicht festzustellen.

 Und Resends bedeutet Bestätigung. Wer soll wem da was bestätigen ?

 Weißt du überhaupt was du willst und wovon du redest ?

: Bearbeitet durch User
von Rene Z. (renezimmermann)


Lesenswert?

Hi,

wie klein muss es den sein? Frührer hatte ich immer eine Kombination aus 
7805, Tiny13, MCP2515 und MCP2551 benutzt um den Video Eingang beim MB 
Command freizuschalten. Musste alle 500 ms eine Can Nachricht senden. 
Alle Bauteile in THT. Platine war glaube ich 50 x 35 mm und schnell per 
Hand bestückt.

Gruß Rene

von Dr. Sommer (Gast)


Lesenswert?

Kleiner und einfacher als der LPC11C22FBD48 wird's wohl kaum; 
Mikrocontroller, CAN-Controller und Transceiver in einem 
LQFP48-Gehäuse.

von Olli Z. (z80freak)


Lesenswert?

Rene Z. schrieb:
> 7805, Tiny13, MCP2515 und MCP2551 benutzt um den Video Eingang beim MB
> Command freizuschalten. Musste alle 500 ms eine Can Nachricht senden.
> Alle Bauteile in THT. Platine war glaube ich 50 x 35 mm und schnell per Hand 
bestückt.

Klingt interessant. Ausser den 7805 würde ich durch einen Lowdrop Regler 
ersetzen, da ich keine Heizung brauche und mit Drossel und Transil-Diode 
schützen.

Ich hätte zum testen einen Attiny85 und ein solches CAN Shield hier.

von Rene Z. (renezimmermann)


Angehängte Dateien:

Lesenswert?

Hi,

klar heute kann man da einiges ändern. Bei mir ist das locker 10 Jahre 
her.
Habe damals geschaut was leicht aufzutreiben war. Anbei mal ein 
Denkanstoß.
Ist noch Verbesserungswürdig aber so ähnlich kann es wohl aussehen.

Gruß Rene

von Gerd E. (robberknight)


Lesenswert?

Olli Z. schrieb:
> Klingt interessant. Ausser den 7805 würde ich durch einen Lowdrop Regler
> ersetzen, da ich keine Heizung brauche

Hast Du in Deinem Auto eine Spannung < 12V?

Ein LDO kann mit einer niedrigeren Spannungsdifferenz zwischen Eingang 
und Ausgang (dem "Drop") auskommen. Wenn Du ihm aber eine höhere 
Spannungsdifferenz gibst (wie 12V auf 5V) dann ist der LDO aber nicht 
effizienter oder heizt weniger als ein klassischer Spannungsregler wie 
der 7805.

Effizienter wird es erst wenn Du einen Schaltregler nimmst. Da aber so 
eine CAN-Schaltung typischerweise sehr wenig Strom verbrauchen wird, 
brauchst Du einen Schaltregler der auch bei Stromaufnahme im 
einstelligen mA-Bereich noch effizient ist. Die gibt es, muss man aber 
extra danach suchen.

von Karl (Gast)


Lesenswert?

Dr. Sommer schrieb:
> Kleiner und einfacher als der LPC11C22FBD48 wird's wohl kaum;
> Mikrocontroller, CAN-Controller und Transceiver in einem LQFP48-Gehäuse.

Kommt drauf an. Ein stm32 o.ä im qfn32 hat 5x5 mm,   dazu ein 
transceiver im qfn8 mit 2x3 oder 3x3 mm  ist flächenmäßig schon Mal im 
Vorteil.
Spannungsversorgung für den lpc ist auch 3.3 V und 5 V. Je nach 
Anforderung wäre auch hier ein 5V Controller oder ein 3.3V transceiver 
zu überlegen.

von Olli Z. (z80freak)


Lesenswert?

Rene Z. schrieb:
> Habe damals geschaut was leicht aufzutreiben war. Anbei mal ein
> Denkanstoß.
> Ist noch Verbesserungswürdig aber so ähnlich kann es wohl aussehen.

Witzig, fast genauso hab ich hier gerade einen Prototyp zusammengebaut! 
:-)
Funktioniert auch soweit wie ich das brauche. Hatte nur noch einen 
Knonzeptfehler drin. Ich muss den Adapter dauerhaft betreiben, weil ein 
ausbleiben der CAN Botschaft, nachdem mal welche gesendet wurden, nicht 
zu einem zurückspringen führten. Ich muss explizit AN und AUS per CAN 
senden. Daher habe ich noch die Anforderung an einen 12V Eingang 
umgesetzt.

Wesentlich aufwendiger war es die Libraries so anzupassen das alles 
läuft. Due AtTinys haben ja keinen vollwertige SPI, da wird alles über 
den USI gesteuert. Die Anpassungslib tinySPI muss aber erst mit der 
CAN_Library verheiratet werden. Und zu guter Letzt noch die 
Timingregister auf den 8 MHz Quarz des Shields zurechtstutzen.

Aber jetzt läuft das Ding. Werde morgen mal die Spannungsversorgung und 
den Signaleingang in Angriff nehmen.

Wenn das läuft, mal schauen wie klein ich das layouten kann.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Olli Z. schrieb:
> Wesentlich aufwendiger war es die Libraries so anzupassen das alles
> läuft. Due AtTinys haben ja keinen vollwertige SPI, da wird alles über
> den USI gesteuert. Die Anpassungslib tinySPI muss aber erst mit der
> CAN_Library verheiratet werden. Und zu guter Letzt noch die
> Timingregister auf den 8 MHz Quarz des Shields zurechtstutzen.

Wie schon oben empfohlen wurde ... einen µC mit integriertem CAN 
verwenden.

Aber man kann es auch umständlich und kompliziert lösen ...

von Karl (Gast)


Lesenswert?

Markus M. schrieb:
> Aber man kann es auch umständlich und kompliziert lösen ...

Schaut so aus. STM32 mit CubeMx braucht 5 Klicks zum konfigurieren und 
dann noch 3 Zeilen zum Senden der Nachricht.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Markus M. schrieb:
> Wie schon oben empfohlen wurde ... einen µC mit integriertem CAN
> verwenden.
>
> Aber man kann es auch umständlich und kompliziert lösen ...

 Oder (was wahrscheinlicher ist) so schreiben als ob man es verstanden
 und gelöst hat.


Olli Z. schrieb:
> Wesentlich aufwendiger war es die Libraries so anzupassen das alles
> läuft. Due AtTinys haben ja keinen vollwertige SPI, da wird alles über
> den USI gesteuert.

 Na und ?
 Bis auf SS pin ist (fast) alles gleich.

Olli Z. schrieb:
> Die Anpassungslib tinySPI muss aber erst mit der
> CAN_Library verheiratet werden.

 Was für ein Blödsinn.
 Warum sollte man das tun ?
 Seit wann werden verschiedene Libraries miteinander 'verheiratet' ?

Olli Z. schrieb:
> Witzig, fast genauso hab ich hier gerade einen Prototyp zusammengebaut!
> :-)

Olli Z. schrieb:
> Aber jetzt läuft das Ding.

Olli Z. schrieb:
> Ich hätte zum testen einen Attiny85 und ein solches CAN Shield hier.

 Was denn nun - Das Ding läuft oder du hast Tiny zum testen da ?

 Wieder mal einer der keine Ahnung hat wovon er spricht, aber das Ding
 gleich kleiner als Fingernagel machen will.

 Und wo willst du das Ding im Auto überhaupt anschliessen ?

 Dass der Diagnosestecker an ein Gateway angeschlossen ist, weisst du,
 oder ?
 Dass die Betriebserlaubnis sofort erlischt wenn du irgendein CAN-Bus
 direkt anzapfst, weisst du auch, oder ?

 Lass die Finger von den Sachen von denen du nichts (oder nicht
 genügend) verstehst.

: Bearbeitet durch User
von Rene Z. (renezimmermann)


Angehängte Dateien:

Lesenswert?

Hi,

Spi hatte ich per Bitbanding realisiert. Reicht hier ja locker.
Vergiss nicht das du auch permanent Botschaften erhälst die abgearbeitet 
und/oder gefiltert werden müssen! Meine SMD Version war 35 x 23 mm 
gross.

> Dass die Betriebserlaubnis erlischt wenn du irgendein CAN-Bus direkt
> anzapfst, weisst du auch, oder ?

Das war so klar dass das kommt.

Gruß Rene

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Rene Z. schrieb:
> Spi hatte ich per Bitbanding realisiert.

 Erstens heisst es Bitbanging (Bitbanding ist etwas gaaaaanz anderes)
 und zweitens ist USI weitaus einfacher und besser für so etwas.
 Hättest du es wirklich gemacht, wusstest du es auch.


Rene Z. schrieb:
> Reicht hier ja locker.
> Vergiss nicht das du auch permanent Botschaften erhälst die abgearbeitet
> und/oder gefiltert werden müssen!

 Jaja, sure, Tiny25 reicht ja locker für das alles.
 Botschaften vorbereiten, mindestens bis zur Adresse dekodieren, senden,
 empfangen, Fehlerprüfung, Bit stuffing...
 In der Zwischenzeit über SPI mit anderen Devices komunizieren,
 vorgesehene Aufgaben erledigen...

Rene Z. schrieb:
>> Dass die Betriebserlaubnis erlischt wenn du irgendein CAN-Bus direkt
>> anzapfst, weisst du auch, oder ?
>
> Das war so klar dass das kommt.

 Selbstverständlich muss das kommen.
 Glaubst du, jeder kann sich mit seinen Spielereien an CAN-Bus
 dranhängen und munter Botschaften senden, womöglich ohne diese auf
 Kollision zu prüfen ?

: Bearbeitet durch User
von Dr. Sommer (Gast)


Lesenswert?

Eine weitere Möglichkeit wäre das Olimexino-STM32:
https://www.olimex.com/Products/Duino/STM32/OLIMEXINO-STM32/open-source-hardware
Nicht die kleinste Variante, dafür aber geringer Aufwand, weil alles 
schon fertig aufgebaut ist (Mikrocontroller mit integriertem 
CAN-Controller, CAN-Transceiver, Schaltregler zur Versorgung aus 9-30V). 
Programmierbar mit Arduino-artiger IDE oder klassisch.

von Rene Z. (renezimmermann)


Lesenswert?

Hi,

>Erstens heisst es Bitbanging (Bitbanding ist etwas gaaaaanz anderes)

Wo du Recht hast, ...

>Jaja, sure, Tiny25 reicht ja locker für das alles.
>Botschaften vorbereiten, mindestens bis zur Adresse dekodieren, senden,
>empfangen, Fehlerprüfung, Bit stuffing...
>In der Zwischenzeit über SPI mit anderen Devices komunizieren,
>vorgesehene Aufgaben erledigen...

In meinem speziellen Fall reicht es. Läuft seit 10 Jahren in ca. 40 
Geräten.
Nein, es muss nur eine Id herausgefiltert werden und das macht der 
MCP2515.
Auch die zu sendende Nachricht wird nur einmal eingestellt und danach 
immer nur das Komando zum senden der Nachricht abgesetzt. Der Tiny ist 
die meiste Zeit im Sleepmode.

Gruß Rene

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Dr. Sommer schrieb:
> Eine weitere Möglichkeit wäre das Olimexino-STM32:
> https://www.olimex.com/Products/Duino/STM32/OLIMEXINO-STM32/open-source-hardware
> Nicht die kleinste Variante, dafür aber geringer Aufwand, weil alles
> schon fertig aufgebaut ist (Mikrocontroller mit integriertem

 Genau. Oder etwas ähnliches.
 Das macht man sowieso beim testen. Eine (oder 5-10) Mini Platinen
 selbst beim billigsten Chinesen kosten mindestens so viel.
 Und dann Bauteile, bestücken, testen, Fehler, wegschmeissen...


Rene Z. schrieb:
> Meine SMD Version war 35 x 23 mm gross.

 Und wo ist die ?
 Ziemlich schöne Zeichnung, aber echte Platine ist wo ?

: Bearbeitet durch User
von Rene Z. (renezimmermann)


Angehängte Dateien:

Lesenswert?

Hi,

SMD habe ich nie produzieren lassen da die selbst hergestellte THT 
Version vollkommen ausreichte. Auf dem Bild ist eine frühe Version eines 
Prototypen zu sehen. Alle anderen sind "unterwegs".

Die Platinen sind verbaut an MB Comand Navi.

Dazu dann noch ein Composit nach RGB Wandler und für eine Rückfahrkamera 
oder DVD Player war alles an Board.

Ist halt alles schon was her. Aber funktionierte und das reichte mir.

Gruß Rene

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Warum soll es eigentlich so super klein sein?
Gerade im Auto hat man doch üblicherweise reichlich Platz. Willst du es 
verstecken? Wenn ja, vor wem?

von Olli Z. (z80freak)


Lesenswert?

Rene Z. schrieb:
>>Erstens heisst es Bitbanging (Bitbanding ist etwas gaaaaanz anderes)
> Wo du Recht hast, ...
DAS ist auch das einzige was er will, sonst kommt nichts konstruktives, 
nur Beleidigungen, rumgenörgel und Klugscheißerei. Das hat man schon in 
den ersten Antworten gesehen. Jeder hats kapiert, nur er nicht. Einfach 
garnicht drauf eingehen, Rene! Der will nur eine „ich bin schlauer wie 
Du“ Debatte führen. Am Ende mahnt er noch die Rechtschreibung an.. 
einfach nur armselig.

> In meinem speziellen Fall reicht es.
Und mir würde das ebenfalls reichen. Paketempfang und Verarbeitung ist 
garnicht notwendig. Ich teagiere nur auf ein Schaltsignal und sende. Das 
ganze läuft natürlich nicht auf dem HSCAN der Motorsteuerung sondern dem 
Multimedia-CAN, also auch eher unkritisch.

> die meiste Zeit im Sleepmode.
Ich starte/stoppe den Sender per Zündungsplus (Kl. 15). Reicht in meinem 
Fall.

Um „Stückzahlen“ gehts bei mir nicht, ich wollte einfach nur einen 
simplen aber halbwegs brauchbaren Ansatz. Habe schon Adapter gesehen die 
Schaltsignale aus dem Auto einfach mittels Vorwiderstand zum uC leiten. 
So weit wollte ich es nicht treiben. Die Schaltung sollte schon minimale 
Anforderungen im KFZ Bereich erfüllen.

von Olli Z. (z80freak)


Lesenswert?

Stefanus F. schrieb:
> Warum soll es eigentlich so super klein sein?
> Gerade im Auto hat man doch üblicherweise reichlich Platz. Willst du es
> verstecken? Wenn ja, vor wem?

Von Superklein war garnicht die Rede. Ich meinte auch klein in Sinne 
einer einfachen Schaltung.

von Max D. (max_d)


Lesenswert?

Stm32f103c8t6 (auf bluepill Board) und can-transceiver (kann man auf 
Loch Raster unter dem BP verstecken) sind alles was du brauchst. Dazu 
einen 5V regler (78L05 reicht für eine Bastelei voll aus) und fertig ist 
die Laube.
Billiger wird es nicht werden.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Olli Z. schrieb:
> DAS ist auch das einzige was er will, sonst kommt nichts konstruktives,
> nur Beleidigungen, rumgenörgel und Klugscheißerei. Das hat man schon in
> den ersten Antworten gesehen.

 Sicher.
 Irgendwelchen Mist erzählen, danach behaupten, du hättest es gar nicht
 so gesagt oder gemeint.

 Wo habe ich dich beleidigt ?

 Ich mag sonstwas sein, aber ein talent habe ich - ich kann Lügner und
 Angeber sogar über Internet riechen - und wenn ich denen die Wahrheit
 sage, verwechseln diese das mit Beleidigungen.

Marc V. schrieb:
> Olli Z. schrieb:
>>>  Alle xx sec. ?
>>>  Auf Anfrage ?
>>
>> Das spielt alles keine Rolle, aber es ist periodisch (alle 200ms).
>
>  Natürlich spielt das eine Rolle. Auf Anfrage bedeutet, dass der Chip
>  imstande sein muss, CAN-Messages zu empfangen und zu dekodieren.
>  Alle xx sec. bedeutet, dass die Meldung ganz einfach rausgeschickt
> wird.
>
>> Im prinzip müsste das sogar mit einfachem Bitbangig gehen, aber um keine
>> unnötigen Resends und Kollisionen zu produzieren wäre ein echter
>> CAN-Controller schon gut.
>
>  Kollision ist auch bei Bitbanging ganz leicht festzustellen.
>
>  Und Resends bedeutet Bestätigung. Wer soll wem da was bestätigen ?
>
>  Weißt du überhaupt was du willst und wovon du redest ?

Olli Z. schrieb:
>> Gerade im Auto hat man doch üblicherweise reichlich Platz. Willst du es
>> verstecken? Wenn ja, vor wem?
>
> Von Superklein war garnicht die Rede. Ich meinte auch klein in Sinne
> einer einfachen Schaltung.

Olli Z. schrieb:
> Da das ganze möglichst klein sein soll wär meine Frage an Euch, ob es
> noch bessere Chips für eine solch triviale Aufgabe gibt? Das ganze soll
> so klein und günstig wie möglich werden.


 Jemand, der nicht mal weiss, wie etwas funktionieren soll, es aber
 gleich so klein wie möglich haben will, ist weder imstande noch wird
 er das jemals fertig kriegen.

 Punkt.

von Stefan F. (Gast)


Lesenswert?

> Der will nur eine „ich bin schlauer wie Du“ Debatte führen.

Es heißt "schlauer ALS du" :-)

SCNR

von Thomas (kosmos)


Lesenswert?

Olli Z. schrieb:
> Klingt interessant. Ausser den 7805 würde ich durch einen Lowdrop Regler
> ersetzen, da ich keine Heizung brauche und mit Drossel und Transil-Diode
> schützen.

wenn man irgendwoher 5,5V bekommt kann man über einen Low Drop Regler 
nachdenken wenn man aber 14V hat muss der genau so viel verheizen wie 
ein 7805.c

von Stefan F. (Gast)


Lesenswert?

> Von Superklein war garnicht die Rede.
> Ich meinte auch klein in Sinne einer einfachen Schaltung.

Ach so, das ist schon ein Unterschied.

> es aber gleich so klein wie möglich haben will

Trifft nicht mehr zu.

Das Bluepill Board enthält bereits einen Spannungsregler, vermutlich 
einen RT9193. Leider will dieser nciht viel mehr als 5V Eingangsspannung 
sehen. Ich würde mal schauen, ob diese kleinen "Zuckerwürfel" von Recom 
(R-78E5.0-0.5) geeignet sind.

von Olli Z. (z80freak)


Lesenswert?

Dr. Sommer schrieb:
> Eine weitere Möglichkeit wäre das Olimexino-STM32:
> https://www.olimex.com/Products/Duino/STM32/OLIMEXINO-STM32/open-source-hardware
> Nicht die kleinste Variante, dafür aber geringer Aufwand, weil alles
> schon fertig aufgebaut ist (Mikrocontroller mit integriertem
> CAN-Controller, CAN-Transceiver, Schaltregler zur Versorgung aus 9-30V).
> Programmierbar mit Arduino-artiger IDE oder klassisch.

Ein solches Board habe ich sogar hier. Nur war es mir zu teuer und zu 
schade für eine solche triviale Anwendung :-)

von Dr. Sommer (Gast)


Lesenswert?

Olli Z. schrieb:
> .
>
> Ein solches Board habe ich sogar hier. Nur war es mir zu teuer und zu
> schade für eine solche triviale Anwendung :-)

Das Board ist doch wie dafür gemacht... Und viel billiger und zugleich 
so elegant aus einem Guss wird's nicht. Gerade der integrierte 
Schaltregler macht es attraktiv.

von Olli Z. (z80freak)


Lesenswert?

Max D. schrieb:
> Stm32f103c8t6 (auf bluepill Board) und can-transceiver (kann man auf
> Loch Raster unter dem BP verstecken) sind alles was du brauchst. Dazu
> einen 5V regler (78L05 reicht für eine Bastelei voll aus) und fertig ist
> die Laube.
> Billiger wird es nicht werden.

Auch ne gute Idee! Im Vergleich zum Arduino Nano hat der STM ja einen 
CAN Controller, d.h. man benötigt wirklich nur einen externen 
Transceiver.

Eigentlich wollte ich das ganzr nicht als SMD aufbauen, sondern in THT 
und da halt „möglichst platzsparend“. Nicht um es zu verstecken, sondern 
damit es an die Stelle wo es rein soll auch hinpasst.

Inzwischen bin ich aber auf dem Trichter das ich mir doch eine Platine 
route und alles in SMD ausführe.

Mit dem 7805 bin ich irgendwie unglücklich. Aber meine Schaltung muss 
während dem anlassen nicht zwingend funktionieren. Ich denke ich werde 
aber eher auch einen AMS1117 nehmen.

Fehlt nur noch der Signaleingang. Da schwebt mir derzeit ein Konstrukt 
aus Vorwiderstand, Kondensator und NPN-Schalttransistor vor.

von Max D. (max_d)


Lesenswert?

Der ams1117 stirbt bei dem ersten Husten der LiMa.
78(L)05 verkraftet "übliche" Spannungen im Kfz ganz gut, nur die 
extremen testpulse würden Probleme bereiten. In der Praxis ist die 
Spannung eines modernen Kfz aber zahm genug.
Der regler hat ~2V dropout, also darf deine batt bis 7 v einknicken. Das 
tut normal erst nach dem 10 startversuch im tiefsten Winter.
Solange du also nur eine Bastelei brauchst die weitestgehend zuverlässig 
arbeitet ist ein robuster regler wie der 7805 die richtige Wahl. Wenn du 
es zertifizieren lassen willst/musst, dann brauchst du noch etwas Schutz 
davor.
Als Eingang ist ein kleiner Transistor mit einem großen 
Basisvorwiderstand wohl mit das robusteste für den kleinen Geldbeutel. 
Wenn es Probleme mit Masse-Versatz gibt, kann ein Widerstand von der 
Basis zum emitter den schaltpunkt nach oben korrigieren.

von Anderer Frank (Gast)


Lesenswert?

https://www.nxp.com/support/developer-resources/hardware-development-tools/lpcxpresso-boards/lpcxpresso-board-for-lpc11c24-with-cmsis-dap-probe:OM13093

Dann noch ein Automotive zertifiziertes SR Modul (Traco, Recom, ..) 
fertig ist die Laube. Hast sogar gleich noch den Debugger dabei den du 
abtrennen kannst wenn du ihn nicht mehr benötigst. Die Sub9 Buchse 
kannst du auch gleich noch drauf löten.

von Frank K. (fchk)


Lesenswert?

Olli Z. schrieb:
> Max D. schrieb:
>> Stm32f103c8t6 (auf bluepill Board) und can-transceiver (kann man auf
>> Loch Raster unter dem BP verstecken) sind alles was du brauchst. Dazu
>> einen 5V regler (78L05 reicht für eine Bastelei voll aus) und fertig ist
>> die Laube.
>> Billiger wird es nicht werden.
>
> Auch ne gute Idee! Im Vergleich zum Arduino Nano hat der STM ja einen
> CAN Controller, d.h. man benötigt wirklich nur einen externen
> Transceiver.

Du könntest einen dsPIC33FJ64GP802 nehmen. Das ist ein 28-Pinner, den es 
in unter anderem in SO28 oder in SDIP28 gibt. Das wäre auch 
lochrastergeeignet.

> Mit dem 7805 bin ich irgendwie unglücklich. Aber meine Schaltung muss
> während dem anlassen nicht zwingend funktionieren. Ich denke ich werde
> aber eher auch einen AMS1117 nehmen.

Der braucht dann aber noch einiges an Schutzschaltung.

fchk

von Joerg W. (joergwolfram)


Lesenswert?

Ich würde für einen System-Basis-Chip wie z.B. den UJA1076A plädieren, 
der hat Spannungsregler (5V oder 3,3V), CAN-Transceiver, Watchdog und 
auch Wake-Inputs in einem Chip. Dazu einen Automotive-tauglichen 
Controller. Das ist jetzt zwar wohl nicht die kostengünstigste Lösung, 
aber zumindest eine, zu der ich einigermaßen Vertrauen hätte.

von Olli Z. (z80freak)


Lesenswert?

Interessanter Chip! Für um die 3,- jetzt auch nicht sooo überteuert ;-)
Etwas schwer zu beschaffen vielleicht. Aber zumindest bei Farnell 
bekommt man den auch als Privatmann (Hobbybastler).

von Olli Z. (z80freak)


Lesenswert?

Der MIC2950 wäre ideal als Spannungsregler für meine Anwendung.

Er ist klein, günstig, automotive geeignet (-20 bis +60V 
Eingangsspannung, strombegrenzt, überhitzungsgeschützt und fest gegen 
andere div. Störungen im Auto) und liefert bei 5V ca. 150mA. Für meinen 
Fall genau richtig. Schade nur das es den hierzulande nur bei Mouser 
gibt...
http://ww1.microchip.com/downloads/en/DeviceDoc/mic2950.pdf

: Bearbeitet durch User
von Rene (Gast)


Lesenswert?

Hi, den gibt es bei TME.eu .Gruss Rene

von Rene Z. (renezimmermann)


Lesenswert?

Hi,

leider nicht eingeloggt. Bei TME gibt es auch den NUP2105.

https://www.onsemi.com/pub/Collateral/AND8169-D.PDF

Gruß Rene

von Softwerker (Gast)


Lesenswert?

Das ist doch noch alles viel zu groß!

Nimm einen einfacher 8 Pin µC, der einen CAN Botschaft mit der 
niedrigsten ID via zwei Port Pins auf CAN_H und CAN_L sendet ;-)

von Frank T. (frank_t40)


Lesenswert?


von Rene Z. (renezimmermann)


Lesenswert?

>Schau mal hier.
>Ebay-Artikel Nr. 263779810424

Das hat er doch schon auf dem Tisch liegen. Ich arbeite auch gern damit.

>Nimm einen einfacher 8 Pin µC, der einen CAN Botschaft mit der
>niedrigsten ID via zwei Port Pins auf CAN_H und CAN_L sendet ;-)

Alles eine Frage der Bitrate.

: Bearbeitet durch User
von Olli Z. (z80freak)


Lesenswert?

Rene Z. schrieb:
>>Schau mal hier. Ebay-Artikel Nr. 263779810424
Sowas habe ich auch genommen :-) Man muss nur auf die 8 MHz vom Qaurz 
achten. Die waren in China scheinbar billiger als die sonst 
gebräuchlichen 16 er. Jedenfalls fehlt vielen CAN Libs die entsprechende 
Takteinstellung dafür. Wie ich damit zum ersten mal gearbeitet hab, hat 
mich das ne Zeit gekostet dahinter zu kommen. :-/

>>Nimm einen einfacher 8 Pin µC, der einen CAN Botschaft mit der
>>niedrigsten ID via zwei Port Pins auf CAN_H und CAN_L sendet ;-)
>
> Alles eine Frage der Bitrate.

Nein, leider alles nur Bla bla.

Klar wäre Bitbanging das einfachste, aber dann bitte mal Konkret, mit 
Codevorschlag, Hintergrundinfo und alles weitere und nicht bloss einen 
Brocken hinwerfen!

Per Prinzip könnte man einen X-beliebigen CAN-Transceiver a la MCP2551, 
TJA1050, usw. nehmen und TX und RX der TTL Seite mit IO Pins verbinden. 
Wenn man das komplette Datagramm kennt, also mit allen Kontrollbits und 
Checksummen (könnte man z.b, mittels Logicanalyzer aufzeichnen) und auch 
das Timing einhält könnte das klappen. Hierzu sollte der Attiny dann 
wohl besser mit einem externen Quarz betrieben werden, was leider schon 
zwei Pins kostet, aber noch genug für die Funktion übrig bleiben.

Man muss aber wenigstens grundlegende Funktionen des CAN Controllers 
implementieren. Z.b. die Kollisionserkenning (Arbitrating) indem man 
jedes gesendete Bit mit dem eingehenden auf dem RX Pin vergleicht und 
bei Abweichungen sofort das senden einstellt.

Einen Versuch wäre es wert. Ich kann das Datagramm ja mal aufzeichnen 
und versuchen nachzuspielen.

von Olli Z. (z80freak)


Lesenswert?

Rene schrieb:
> Hi, den gibt es bei TME.eu .Gruss Rene

Leider schon etwas teuer, 6-8€ nur für den Regler. Ich glaub da ordere 
ich mir mal ein paar aus Übersee ;-)

von Soul E. (Gast)


Lesenswert?

Olli Z. schrieb:

> Per Prinzip könnte man einen X-beliebigen CAN-Transceiver a la MCP2551,
> TJA1050, usw. nehmen und TX und RX der TTL Seite mit IO Pins verbinden.

Ich glaube er meinte das noch minimalistischer. Dominater Pegel: CAN_H 
Output High, CAN_L Output Low; rezessiver Pegel CAN_H und CAN_L als 
Input. Arbitrierung wird überbewertet, ansonsten wird zu Gegenlesen halt 
noch ein dritter Pin (dauerhaft Input) benötigt.

Und dann noch die ersten paar Frames auf dem Bus zur Synchronisation 
ausmessen und damit den RC-Oszillator nachtrimmen ;-)

von Olli Z. (z80freak)


Lesenswert?

soul e. schrieb:
> Ich glaube er meinte das noch minimalistischer. Dominater Pegel: CAN_H
> Output High, CAN_L Output Low; rezessiver Pegel CAN_H und CAN_L als
> Input. Arbitrierung wird überbewertet, ansonsten wird zu Gegenlesen halt
> noch ein dritter Pin (dauerhaft Input) benötigt.
Verstehe, zumindest in der Theorie ;-)
D.h. ohne jeglichen Transceiver direkt (naja, nen kleinen Widerstand 
wohl noch) die IO-Pins an den Bus.

Damit "dehnt" man die Spezifikationen aber schon gewaltig, nicht wahr?

Im rezessiven und im Ruhezustand haben CAN_H und CAN_L ja 2,5V, im 
Dominanten hat CAN_H 3,5V und CAN_L 1,5V. Da würde man dann ohne zu 
zucken mit 5V und 0V arbeiten?! Oder einen Spannungsteiler, welcher im 
Ruhezustand (Logisch 0) einen 3,5V Pegel anlegt und im geschalteten 
einen Widerstand zusätzlich schaltet:
1
                    +5V o---+
2
                            |
3
                          [R4]
4
                            |
5
                  +-[ R2 ]--+------o CAN_H
6
                  |         |
7
IO o---[ R1 ]---|<  T1      |
8
                  |       [R3]
9
                  |         |
10
           GND o--+---------+
11
T1 = NPN
12
R1 = 1k
13
R2 = 450 Ohm
14
R3 = 680 Ohm
15
R4 = 270 Ohm

Im Vergleich zu LIN oder sonstigen Leitungen im Auto ist der CAN ja 
meist relativ frei von Störungen und Spannungsschwankungen.

> Und dann noch die ersten paar Frames auf dem Bus zur Synchronisation
> ausmessen und damit den RC-Oszillator nachtrimmen ;-)
Könnte ich mir vorstellen.

: Bearbeitet durch User
von Soul E. (Gast)


Lesenswert?

Olli Z. schrieb:

> Damit "dehnt" man die Spezifikationen aber schon gewaltig, nicht wahr?

Das kann man wohl so sagen...


> Im rezessiven und im Ruhezustand haben CAN_H und CAN_L ja 2,5V, im
> Dominanten hat CAN_H 3,5V und CAN_L 1,5V.

Sagen wir lieber 3,0..4,25 V bzw 0,5..1,75V. Eine gewisse Toleranz ist 
vorhanden. Der Receiver bewertet nur die Differenz, der käme also auch 
mit 5 V und 0 V klar.


> Im Vergleich zu LIN oder sonstigen Leitungen im Auto ist der CAN ja
> meist relativ frei von Störungen und Spannungsschwankungen.

Das dürfte die größte Schwachstelle sein. Einmal 12 V drauf und der 
Controller ist hin. Ein Transceiver steckt bis 27 V ohne Probleme weg.

von Stefan F. (Gast)


Lesenswert?

Diese Transistorschaltung von Olli Z. berücksichtigt nicht, dass der Bus 
einen gewissen Wellenwiderstand hat und saubere Abschlusswiderstände 
benötigt. Das würde so bestenfalls mit einer simplen Punk-zu-Punkt 
Verbindung zuverlässig funktionieren.

Also ich hätte große Hemmungen, an einem KFZ solche Experimente zu 
machen. Ich habe eine Familie zu versorgen.

von Erik B. (erik_b976)


Lesenswert?

Stefanus F. schrieb:
> Also ich hätte große Hemmungen, an einem KFZ solche Experimente zu
> machen. Ich habe eine Familie zu versorgen.

Das ist doch dem Drittanbieter egal...

von Olli Z. (z80freak)


Lesenswert?

Stefanus F. schrieb:
> Diese Transistorschaltung von Olli Z. berücksichtigt nicht, dass der Bus
> einen gewissen Wellenwiderstand hat und saubere Abschlusswiderstände
> benötigt. Das würde so bestenfalls mit einer simplen Punk-zu-Punkt
> Verbindung zuverlässig funktionieren.
Richtig.

> Also ich hätte große Hemmungen, an einem KFZ solche Experimente zu
> machen. Ich habe eine Familie zu versorgen.

Das ist ja auch eher ein theoretisches Gedankenspiel und zeigt die 
Grenzen der Machbarkeit. Eine Schaltung ohne Transceiver und ggf. auch 
ohne Controller setzt ganz stark darauf das alle anderen Busteilnehmer 
sich an die Specs halten und einen solchen "Störenfried" tolerant 
behandeln.

Unterm Strich wäre ein LPC11C24 in Kombination mit einem Automotive 
Spannungsregler wie z.B. dem MIC2950 eine gute Wahl. Der LPC hat neben 
einem CAN-Controller nämlich auch gleich einen Transceiver mit drauf. Da 
braucht es wirklich nur noch eine Mini-Stromversorgung für wenige 
Milliampere. Das Ganze dann auf einem kleinen SMD-Board.

Ich weiß wohl das Elektronikmodule im Auto grundsätzlich kurzschlußfest, 
verpolungssicher, über- und unterspannungssicher, EMV geschützt, 
Stromsparend und Emissionsarm sein sollten. Hier soll aber kein 
professionelles, verkaufsfähiges Gerät entstehen sondern :-)

von Erik B. (erik_b976)


Lesenswert?

Olli Z. schrieb:
> Ich weiß wohl das Elektronikmodule im Auto grundsätzlich kurzschlußfest,
> verpolungssicher, über- und unterspannungssicher, EMV geschützt,
> Stromsparend und Emissionsarm sein sollten.

Du hast funktionssicher vergessen, je nachdem an welchem Bus du 
rumpfuschen willst.

von Soul E. (Gast)


Lesenswert?

Stefanus F. schrieb:

> Also ich hätte große Hemmungen, an einem KFZ solche Experimente zu
> machen. Ich habe eine Familie zu versorgen.

Das ist auch mehr ein proof of concept als eine serientaugliche Lösung.

Wie damals IgorUSB von Igor Češko. Der hat mit einem stinknormalen 
ATmega ohne jegliche Zusatzhardware lowspeed-USB gemacht.

von Olli Z. (z80freak)


Lesenswert?

Ich experimentiere gerade mit einem Aufbau: ATTiny85 mit 16MHz Quarz 
(für ein hoffentlich temperaturstabileres und präziseres Bit-Timing) und 
TJA1050 als Transceiver.

Weiterhin habe ich herausgefunden das ich den EIN- und AUS-Zustand den 
ich übertragen möchte nur ein einziges Mal auf den Bus legen muss. D.H. 
ich könnte wieder meine ursprüngliche Idee angehen, den Attiny mit dem 
12V Schaltsignal zu versorgen.

Für einen sauberen Start bräuchte es vielleicht nur ein kleines RC-Glied 
am /RESET Pin, aber auch das sollte eigentlich nicht nötig sein und wäre 
eine reine Vorsichtsmaßnahme.

Damit ich noch wenigstens ein paar AUS Botschaften übertragen kann, 
müsste ein Elko den Tiny und TJA noch kurz nach dem abschalten des 12V 
Signals versorgen. Der Tiny nimmt ca. 9 mA auf und der TJA auch. Also 
20, sagen wir 50 mA für eine halbe Sekunde. Grad so lange um genügend 
Nachrichten zu senden das der Zustand auch wirklich ankommt. Vielleicht 
ein 1.000uF Elko sekundärseitig?!

von Thomas F. (igel)


Lesenswert?

Olli Z. schrieb:
> Damit ich noch wenigstens ein paar AUS Botschaften übertragen kann,
> müsste ein Elko den Tiny und TJA noch kurz nach dem abschalten des 12V
> Signals versorgen.

Sowas ähnliches habe ich schon mal bei einem Atmega328+MCP2515 gemacht:

Die 12V KFZ-Eingangsspannung vor dem Spannungsregler per Spannungsteiler 
auf einen ADC-Pin gelegt und so die Versrogungsspannung mitgemessen. Bei 
Zündung aus fiel bei meinem Fahrzeug die Spannung über 150ms auf 0 ab, 
genügend Zeit um darauf zu reagieren. Mit ein paar Elkos lief der Atmega 
nochmals 100ms nach und ich konnte noch 10 CAN-Botschaften rausschicken.

Für dein Vorhaben würde ja auch ein digitaler Pin-Interrupt auf Low oder 
ein Compare-Irq reichen.

von Rudolph (Gast)


Lesenswert?

Wenn Du schon bei AVR bleiben möchtest, weil eben bekannt und so, nimm 
wenigstens einen ATMega16M1 dafür statt Dir per Bitschubsen den CAN zu 
verseuchen.

von Olli Z. (z80freak)


Lesenswert?

Thomas F. schrieb:
> Olli Z. schrieb:
>> Damit ich noch wenigstens ein paar AUS Botschaften übertragen kann,
>> müsste ein Elko den Tiny und TJA noch kurz nach dem abschalten des 12V
>> Signals versorgen.
>
> Sowas ähnliches habe ich schon mal bei einem Atmega328+MCP2515 gemacht:
>
> Die 12V KFZ-Eingangsspannung vor dem Spannungsregler per Spannungsteiler
> auf einen ADC-Pin gelegt und so die Versrogungsspannung mitgemessen. Bei
> Zündung aus fiel bei meinem Fahrzeug die Spannung über 150ms auf 0 ab,
> genügend Zeit um darauf zu reagieren. Mit ein paar Elkos lief der Atmega
> nochmals 100ms nach und ich konnte noch 10 CAN-Botschaften rausschicken.
>
> Für dein Vorhaben würde ja auch ein digitaler Pin-Interrupt auf Low oder
> ein Compare-Irq reichen.

Ich habe das jetzt mal versucht, leider ist es nicht stabil. Mal 
klappts, mal nicht. Vom Setup her habe ich die Versorgungsspannung (ca. 
12V) über einen 10k auf einen NPN-Transistor geführt. Dieser Schaltet 
dann über einen 10k Widerstand von +5V den Eingang. Auf der 
Sekundärseite des Spannungsreglers habe ich einen 1.000 µF Kondensator 
platziert. Auf dem Oszi sieht man nach abziehen der Stromversorgung 
schön wie es absinkt. Die Schaltung braucht ca. 20 mA (CAN-Transceiver 
und Attiny). Bis das der HIGH-Pegel vom 12V-Eingang erkannt wird dauert 
es max. 10 ms. Dann wird mit einem Abstand von 20 ms die CAN-Botschaft 
(AUS) gesendet.

Soweit die Theorie.

von Olli Z. (z80freak)


Lesenswert?

Rudolph schrieb:
> Wenn Du schon bei AVR bleiben möchtest, weil eben bekannt und so, nimm
> wenigstens einen ATMega16M1 dafür statt Dir per Bitschubsen den CAN zu
> verseuchen.

Der 16M1 ist nicht schlecht, aber auch sehr teuer und schwer zu 
beschaffen. Fertige Boards sind ebenfalls rar.

Bislang bin ich mit meiner Lösung Attiny85+TJA1050 ganz zufrieden. Sie 
tut wie sie soll. Bin gerade dabei das ganze auf AVR Studio zu portieren 
und dann in Assembler. Aber mit dem externen 16 MHz Quarz ist das Timing 
selbst in C schon perfekt. Perfekt genug jedenfalls für einen 125 kbaud 
Multimedia-CAN.

Neben sturem senden, lese ich auch immer eub gesetztes rezessives Bit 
(HIGH) zurück und breche die Routine ggf. ab. Auch schaue ich vor dem 
senden das auf RX wenigstens für einige uS kein Traffic (0er) liegt. So 
gesehen verhalte ich mich schon ähnlich wie ein CAN-Controller ;-)

Als Spannungsregler teste ich gerade den MIG2950 mit 5,0V. Der soll laut 
Datenblatt ca. 150 mA leisten, was für meine Schaltung mehr als genug 
ist und er ist automotive geeignet. Trotzdem erhält er primärseitig noch 
einen Varistor. Verpolungssicher ist der MIG von hause aus.

: Bearbeitet durch User
von Rudolph R. (rudolph)


Lesenswert?

Olli Z. schrieb:
> Der 16M1 ist nicht schlecht, aber auch sehr teuer und schwer zu
> beschaffen.

Naja, ich habe nur mal gerade bei Mouser rein gesehen, die haben 2361 
Stück davon ab Lager und einer kostet 3,61€.
Digi-Key hat 5351 Stück für 3,62€.
Wie viele von den Geräten willst Du denn bauen? 1000? 25000? Oder doch 
nur 1?

Die haben auch gleich schicke kleine Quarze dafür, NX3225 (644-1233-6-ND 
), die waren für mich vor einiger Zeit noch nicht so leicht 
beschaffbar.
Alles andere haben die auch und zig Teile mehr, die 50 Euro um 
Versandkostenfrei zu bestellen kommen da schnell zusammen und Paypal 
nehmen die auch noch. :-)

Ich finde übrigens den MIC5233-5.0 ganz schick.
Wobei ich auf den TLE4266-2G umgestiegen bin um einen höheren 
Isolationsabstand erreichen zu können.
Für den CAN benutze ich aktuell TJA1043, im Kombination mit den 
Spannungsreglern lässt sich die Platine dann auch per Software 
abschalten und per CAN wecken.

Als Stecker für sowas nehme ich gerade bevorzugt die MX34, für sowas 
etwa MX34005NF1 (670-2283-ND) plus MX34005SF1 (670-2284-ND)und 
M34S75C4F1 dazu (670-2268-1-ND).


> Fertige Boards sind ebenfalls rar.

In Zeiten von 5 Platinen für weniger als 10 Euro aus China ist das gar 
kein Argument mehr.
Make! :-)

> Bislang bin ich mit meiner Lösung Attiny85+TJA1050 ganz zufrieden.

Na denn.

> Perfekt genug jedenfalls für einen 125 kbaud Multimedia-CAN.

Bäh, vielleicht auch noch LowSpeed? Dann passt der TJA1050 aber nicht 
wirklich.
Aber da LowSpeed schon länger am Aussterben ist, hoffentlich HighSpeed 
auf niedrigerer Geschwindigkeit.

von Olli Z. (z80freak)


Lesenswert?

Danke für die wertvollen Tipps, Rudolph!
Ja, das mit Mouser stimmt wohl. Es gibt ja praktisch nichts was die 
nicht haben ;-)

Ich weiss das der TJA1050 eher unterfordert ist, aber laut Spec sind ab 
10 kbaud alles möglich und günstig ist er auch. Aufwecken benötige ich 
bei meiner Aplikation nicht. Da ist es bei 125 kbaud fast egal was man 
nimmt... ich hatte hat grad solche da.

Der MIC5223 kann aber nur max. 36V und würde einen Loaddump womöglich 
nicht überleben. Der MIG2950 geht bis 60V und -20V und braucht auch nur 
1,5 uF zur Schwingunterdrückung.

von Rudolph R. (rudolph)


Lesenswert?

Olli Z. schrieb:
> Ich weiss das der TJA1050 eher unterfordert ist

Es geht nicht um unterfordert, das ist ein HighSpeed Transceiver und 
125kBit sieht erstmal nach LowSpeed aus.
Auch wenn die Bezeichnung das vermuten lässt, die Datenrate ist nicht 
der wesentliche Unterschied dabei, die Pegel sind anders.
In aktuelleren Fahrzeugen ist hoffentlich nur noch HighSpeed zu finden, 
wenn vielleicht mal mit niedrigerer Datenrate.

> Der MIC5223 kann aber nur max. 36V und würde einen Loaddump womöglich
> nicht überleben.

Dafür packt man da eine Transientenschutz-Diode davor, bei 60V ist auch 
noch lange nicht Ende.

> Der MIG2950 geht bis 60V und -20V und braucht auch nur
> 1,5 uF zur Schwingunterdrückung.

Dafür kommt der nicht mit Keramik-Kondensatoren klar, im Datenblatt 
steht Tantal oder Alu-Elko. Da steht zwar 5 Ohm oder weniger, das heisst 
aber noch lange nicht, dass der mit einem Keramik-C nicht schwingt.

Wenn Du das mit einem Keramik-C planst, nimm vorsichtshalber 2µ2+ und 
einen 2R2 oder so in Reihe dazu.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Olli Z. schrieb:
> Danke für die wertvollen Tipps, Rudolph!

 Tipps, wofür ?
 Ihr zwei diskutiert immer noch über etwas, das nie etwas war und nie
 etwas wird ?


Olli Z. schrieb:
> Ich habe das jetzt mal versucht, leider ist es nicht stabil. Mal
> klappts, mal nicht.

Olli Z. schrieb:
> Bislang bin ich mit meiner Lösung Attiny85+TJA1050 ganz zufrieden. Sie
> tut wie sie soll.

Olli Z. schrieb:
> Auch ne gute Idee! Im Vergleich zum Arduino Nano hat der STM ja einen
> CAN Controller, d.h. man benötigt wirklich nur einen externen
> Transceiver.

  Ja, ja, man will alles, nur können kann man nicht so recht...


Olli Z. schrieb:
> Klar wäre Bitbanging das einfachste, aber dann bitte mal Konkret, mit
> Codevorschlag, Hintergrundinfo und alles weitere und nicht bloss einen
> Brocken hinwerfen!

 Willst du nur Code oder soll man dir gleich einen programmierten uC
 (womöglich mit Transceiver auf einer Platine) Portofrei zusenden ?

von Olli Z. (z80freak)


Lesenswert?

Rudolph R. schrieb:
> Auch wenn die Bezeichnung das vermuten lässt, die Datenrate ist nicht
> der wesentliche Unterschied dabei, die Pegel sind anders.
Du meinst bezüglich der Flankensteilheit und Über/Unterschwingen? Ich 
weiss das in anderen Modulen für den HSCAN häufig ein TJA1050 und für 
den MSCAN/MMCAN ein TJA1040 verbaut wird.

>> Der MIG2950 geht bis 60V und -20V und braucht auch nur
>> 1,5 uF zur Schwingunterdrückung.
> Dafür kommt der nicht mit Keramik-Kondensatoren klar, im Datenblatt
Kein Problem, ich habe hier einfach einen kleinen Elko liegend 
eingeplant. Das passt noch gut.

Sag mal, ich experimentiere noch an der POWEROFF-Schaltung. Ich möchte 
ja bei Spannungsabschaltung noch ein paar Nachrichten versenden. Dazu 
muss ich zum einen die Eingangsspannung überwachen und bei 
unterschreiten von, sagen wir 9V einen Interrupt auslösen. In der Zeit 
in der mein LowDrop Spannungsregler mit dem nachgeschalteten Elko die 
CPU und den CAN-Controller noch versorgen kann sollen dann wenigstens 
noch 2-3 Abschalt-Nachrichten raus. Unterhalb von 5V wirds eng, weil da 
schon die Brown-Out-Detection vom Chip zuschlagen könnte.

Eine Nachricht braucht ca. 800 us, mit Pause dazwischen also ca. 4-5 ms 
sollten schon drin sein. Die Schaltung benötigt ca. 20 mA Strom bei 5V.

Um die Bordspannung zu messen muss ich diese unter den 5V Pegel 
bekommen, z.B. mit einem hochohmigen Spannungsteiler.

Leider habe ich hier bislang noch keine stabile Schaltung zusammen 
bekommen. Mal klappts und dann wieder nicht. Wenn ich den Puffer-Elko zu 
groß wähle überlaste ich den Spannungsregler beim einschalten, oder 
bekomme den Elko nicht genügend aufgeladen um eine kurze Schaltsequenz 
zu überbrücken.

Alternativ müsste ich die Schaltung mit Dauerspannung versorgen und 
Sleep-Modi implementieren. Aber das würde wieder zusätzlichen 
Verkabelungsaufwand nach sich ziehen...

von Rudolph (Gast)


Lesenswert?

Olli Z. schrieb:
>> Auch wenn die Bezeichnung das vermuten lässt, die Datenrate ist nicht
>> der wesentliche Unterschied dabei, die Pegel sind anders.
> Du meinst bezüglich der Flankensteilheit und Über/Unterschwingen? Ich
> weiss das in anderen Modulen für den HSCAN häufig ein TJA1050 und für
> den MSCAN/MMCAN ein TJA1040 verbaut wird.

Nein, die Buspegel sind unterschiedlich bei LowSpeed und HighSpeed:
https://elearning.vector.com/index.php?&wbt_ls_seite_id=504216&root=376493&seite=vl_can_introduction_de

Der TJA1040 ist ja nur etwas älter, aber ebenfalls ein HighSpeed 
Transceiver.


Strom sparen bei Inaktivität geht am Besten über einen Wakeup fähigen 
CAN-Transceiver wie den TJA1043 und einen abschaltbaren Spannungsregler.
Die Kombination aus ATMEGA16M1, TLE4266-2 und TJA1043 die ich hier 
gerade auf dem Tisch habe kommt auf 20µA im ausgeschalteten Zustand an 
12V.

von Olli Z. (z80freak)


Lesenswert?

Rudolph schrieb:
> Nein, die Buspegel sind unterschiedlich bei LowSpeed und HighSpeed:
> 
https://elearning.vector.com/index.php?&wbt_ls_seite_id=504216&root=376493&seite=vl_can_introduction_de
Ah, alles klar! Ich habe definitiv Highspeed-CAN-Busse, da diese alle 
2,5V Ruhepegel (Rezessiv) haben.

> Der TJA1040 ist ja nur etwas älter, aber ebenfalls ein HighSpeed
> Transceiver.
Richtig. Genauso wie auch der MCP2551 den ich auch noch hier hätte.

> Strom sparen bei Inaktivität geht am Besten über einen Wakeup fähigen
> CAN-Transceiver wie den TJA1043 und einen abschaltbaren Spannungsregler.
> Die Kombination aus ATMEGA16M1, TLE4266-2 und TJA1043 die ich hier
> gerade auf dem Tisch habe kommt auf 20µA im ausgeschalteten Zustand an
> 12V.

Das ist ganz ordentlich! Mein Ansatz wäre aber ohne Dauerplus auskommen 
zu können und damit keine Powersafe/Wakeup Funktionen implementieren zu 
müssen. Ich muss mal experimentell ermitteln, wie lange der Attiny85 in 
der Lage ist einen IO-Pin zu swappen, nachdem er sich nur noch aus einem 
Elko versorgt. Das sollte ich mit einer kleinen Testschaltung am DSO 
durchführen können.
Andere haben es ja offensichtlich auch geschafft.

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.