Självterminering av CAN?

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
tobiasger
Inlägg: 53
Blev medlem: 1 augusti 2019, 20:51:25

Självterminering av CAN?

Inlägg av tobiasger »

Jag håller på med ett litet projekt där jag tänkt "daisy chaina" flera moduler mellan varandra för överföring av bl. a. gemensam 24V och jord men också CAN-kommunikation. En brasklapp är att jag är nybörjare när det kommer till själva hårdvarubiten, så mycket av det kopplingsschema som jag jobbar på nu kommer från att jag antingen gjort som scheman från diverse breakoutboards jag använder ser ut eller att jag följt applikationsexempel i datasheets. Mycket av det handlar alltså om att bara koppla saker på rätt plats, men nu har jag ett litet huvudbry där jag måste komma på något själv.

Det skulle alltså röra sig om 2st 1x8 pin-anslutningar som in och ut för kedjan per modul, där in kommer från föregående modul och ut går till nästa. Förutom att skicka CAN_H och CAN_L-signaler genom dessa anslutningar så har jag tänkt på om det skulle gå att skicka en signal som får till en slags självterminering av CAN-bussen, dvs. att sista modulen baserat på om det finns en nästa modul ansluten eller ej lägger på 120 ohms resistor mellan CAN_H och CAN_L med hjälp av en analog switch. Så det skulle behöva finnas en signal som kommer från ut-kontakten, dvs att nästa modul skickar tillbaka en signal till föregående modul, för att indikera att det finns en nästa modul ansluten, som i sådana fall exempelvis skulle öppna en normalt stängd analog switch om en nästa modul finns ansluten.

Är jag rätt ute? Min följdfråga blir i sådana fall, vilket metod för att detektera att en nästa modul är ansluten är enklast? Varje modul kommer ha en MCU som skulle kunna skicka konstant signal till en av pinsen på daisy chain-anslutningen, men det känns onödigt att offra en pin på MCU för en sådan konstant signal. Kan jag inte lika gärna skicka konstant 3.3V? Och behöver jag i sådana fall en diod som ser till att signalen endast kan komma från nästa modul? Det behöver ju på något sätt isoleras så att inte modulens egna 3.3V flödar dit av misstag, om ni hänger med?
Castor
Inlägg: 2268
Blev medlem: 24 mars 2012, 13:03:49

Re: Självterminering av CAN?

Inlägg av Castor »

Kommer du verkligen att dela på slingan eller koppla till nytt på den sista så det är värt att lägga tid på detta?
Två pinnar som kopplar in ena änden av 120 ohm och en bygling som du flyttar till "sist i slingan", enklare!
ie
EF Sponsor
Inlägg: 1487
Blev medlem: 23 oktober 2006, 13:12:57
Ort: Tyresö

Re: Självterminering av CAN?

Inlägg av ie »

Eller ett don med ett 120ohm-motstånd som du sätter på sista enhets ut-kontakt?
bobobo
Inlägg: 727
Blev medlem: 10 november 2007, 22:18:30
Ort: Kungsbacka

Re: Självterminering av CAN?

Inlägg av bobobo »

Och så är ju frågan hur långa kablar du har och vilken hastighet du kör på bussen. Jag har märkt att can-buss är rätt förlåtande i praktiken för var termineringen sitter.
tobiasger
Inlägg: 53
Blev medlem: 1 augusti 2019, 20:51:25

Re: Självterminering av CAN?

Inlägg av tobiasger »

Castor skrev: 5 juni 2026, 15:55:22 Kommer du verkligen att dela på slingan eller koppla till nytt på den sista så det är värt att lägga tid på detta?
Två pinnar som kopplar in ena änden av 120 ohm och en bygling som du flyttar till "sist i slingan", enklare!
ie skrev: 5 juni 2026, 16:27:49 Eller ett don med ett 120ohm-motstånd som du sätter på sista enhets ut-kontakt?
Det är ju enklast, absolut! Jag skulle dock för övningens skull vilja hitta en lösning som hade funkat i produktion, dvs om produkten skulle användas av gemene man. Att manuellt sätta bygel eller liknande på sista enheten är ju kanske inte så mycket begärt i och för sig, men att det per automatik skulle tas om hand känns lite elegant och som något jag åtminstone skulle utforska tillvägagångssättet på. Så kanske egentligen inte är ute efter den enklaste lösningen, utan mer det enklaste sättet att åstadkomma automatisk terminering.

Gällande kabellängd mellan varje enhet så är det inte långt, max 10-20 cm skulle jag tippa, kanske till och med kortare. Egentligen är nog CAN lite överkurs, men det är återigen mest för övningens skull, att lära mig använda det. Hastigheten har jag inte tänkt på. Vilka parametrar spelar in i val av hastighet?
Användarvisningsbild
mrfrenzy
Co Admin
Inlägg: 16117
Blev medlem: 16 april 2006, 17:04:10

Re: Självterminering av CAN?

Inlägg av mrfrenzy »

Det är enkelt att lösa. Använd en MAX14759 som normalt är aktiv med pullup och ansluter termineringen i varje enhet.
Om exempelvis stift 8 på out-kontakten är byglat till jord dras styringången på MAX14759 mot jord och termineringen kopplas ur.
På inkontakterna ska du såklart bygla stift 8 mot det som är jord.

Det finns tusentals liknande analoga switchar, photo-mosfets, CAN transceivers med valbar terminering etc att välja på.
tobiasger
Inlägg: 53
Blev medlem: 1 augusti 2019, 20:51:25

Re: Självterminering av CAN?

Inlägg av tobiasger »

Okej, såhär då om jag förstår det rätt? DAISY_PRESENCE_IN skulle gå vara GND från nästa enhet?
Skärmavbild 2026-06-07 kl. 11.59.14.png
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
mrfrenzy
Co Admin
Inlägg: 16117
Blev medlem: 16 april 2006, 17:04:10

Re: Självterminering av CAN?

Inlägg av mrfrenzy »

Ja, men det rekommenderas att använda 2st 60 Ohm resistorer istället, en på varje sida om switchen.

Se sidan 12 i databladet.
Användarvisningsbild
Synesthesia
Inlägg: 695
Blev medlem: 22 januari 2010, 19:14:10
Ort: Mellan Göteborg och Kungsbacka

Re: Självterminering av CAN?

Inlägg av Synesthesia »

Ett helt vanligt telejack 3,5mm eller 6,3mm som kopplar bort 120Ω motstånd när du kopplar in kontakten? Du kan ha stereojack och koppla 120Ω mellan de båda brytande kontakterna.
Skriv svar