Självterminering av CAN?
Postat: 5 juni 2026, 15:42:06
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?
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?