Op zondag 11 januari 2026 21:28:09 schreef benleentje:
I2C is officieel ook nooit bedoelt geweest voor lange kabel en dat kan behoorlijk inductie zijn.
Een pull-up weerstand van 10k is dan ook nog eens aan de hoge kant en dat mag gerust 3,3k worden

Daar kwam ik achteraf ook achter... Ik kwam op i2c uit omdat ik daarvoor redelijk makkelijk chips kon vinden voor al mijn plannen (digitaal in, uit, analoog in, uit, pwm uit, en de hele bende geisoleert. Daarom zitten de meeste van die chips achter een cais3020s. Al heb ik volgensmij geen 10k pullups trouwens? Standaard gebruik ik 2k2 in dit systeem. Heb ik ergens 10k genoemd?

De cais3020s tussen de lange kabel en de tca heb ik er achteraf tussen geknutselt omdat de eerste tca de geest gaf toen op de digitaal uit kaart meerdere relais tegelijkertijd schakelde. Dát in combi met de lange kabel heeft hem wss de das om gedaan.

Maarja, nu zie ik meerdere problemen die waarschijnlijk nieteens met die kabel te maken hebben. Dus ik moet even gaan bedenken of ik hier mee verder ga, of de handoek (en ~200 euro....) in de ring gooi en een nieuwe ontwerp met een andere bus. Maargoed, dat beslis ik later... Voor nu even iets makkelijks en rustigs. Dan heb ik nog enige kans dat ik slaap vannacht :P

Er bestaan buffer IC's voor de I2C bus, dat is misschien de makkelijkste oplossing.

Ik dacht dat de D2B bus (die van Philips, niet die van Mercedes) ook relatief dicht op de I2C bus zat, maar dan moet je denk ik toch weer vanaf nul beginnen dus dan kan je net zo goed wat moderners zoeken.

@Bobosje hieronder: RS-422 / RS-485 lijkt me een goede keuze. Het is een dubbel en dwars bewezen bus voor langere afstanden en wordt softwarematig over het algemeen ook prima ondersteund.

De P82B715 is een bekende i2c busbuffer/verlenger: https://www.ti.com/lit/gpn/P82B715

Op zondag 11 januari 2026 19:41:14 schreef DaanSteeman:
Ik vind het alleen zo vreemd dat tot 1,1v alles dan wel gewoon klopt. Dat het i2c deel nog heel is en dus reageert terwijl de mux/adc gaar is kan ik me nog wat bij voorstellen. Maar dat de adc voor 4/5e kapot is maar verder perfect functioneert blijf ik raar vinden...

Dat is vrij normaal voor schade door overspanning/ESD. Meestal begeeft de hele chip het, maar soms is het een gedeelte. En dat kan zich inderdaad manifesteren als een zenerdiode rond 1.1V

Dat je I2C drivers het ook begeven hebben suggereert wel dat je problemen hebt met overspanningen. Ergens. Afijn, I2C is inderdaad niet bedoelt voor afstanden langer dan een (Eindhovense) voet, en je kunt op I2C makkelijk pull-ups van 1k of lager gebruiken. Voedingsspanning/20mA is het minimum voor de meeste devices, al zou ik liever wat hoger zitten.

Is je voeding ook goed ontkoppeld? 5V strak of met flink wat "haar" (snelle pieken van foute schakelende voeding) erbovenop kan hetzelfde op de multimeter lijken, maar toch chips slopen.

Ik heb in het verleden met I2C over een afstand van 4m gewerkt, ging om een LM75 temperatuursensor op 5V. Ik gebruikte getwiste 4 aderige afgeschermde kabel wat probleemloos werkte. Hieronder een voorbeeld.

Het werkt ook prima over een paar meter shielded netwerk kabel, dat heeft een vrij lage capaciteit en is lekker goedkoop. Ik leg dan shield aan massa aan de kant van de PCB en gebruik Beide blauwe aders voor massa, beide oranje voor voeding, bruin en groen hou je over voor klok en data. Verschillende signalen over een enkel paar doe ik niet, want dat maakt het storingsgevoeliger.

Op maandag 12 januari 2026 11:31:10 schreef Roland van Leusden:
Ik heb in het verleden met I2C over een afstand van 4m gewerkt,

Mijn nattevinger getal is 1pF per cm. (ik moest een versterker maken/compenseren. Daar moest een 3pF condensator bij. Bakje was leeg.... Gebruik een draadje!).

Dan is 4m dus 400pF, en dat is precies de max bus-capaciteit die volgens de I2C regels zou mogen.

Is alles wel een sterke functie van draaddikte, de afstand ertussen (tussen draden en/of afscherming) en van het gebruikte dielektricum hoe groot de C per meter is.

Op zondag 11 januari 2026 22:34:18 schreef maartenbakker:
Er bestaan buffer IC's voor de I2C bus, dat is misschien de makkelijkste oplossing.

Ik dacht dat de D2B bus (die van Philips, niet die van Mercedes) ook relatief dicht op de I2C bus zat, maar dan moet je denk ik toch weer vanaf nul beginnen dus dan kan je net zo goed wat moderners zoeken.

@Bobosje hieronder: RS-422 / RS-485 lijkt me een goede keuze. Het is een dubbel en dwars bewezen bus voor langere afstanden en wordt softwarematig over het algemeen ook prima ondersteund.

Ik denk dat ik ga beginnen met een buffer ic inderdaad.
RS485 (of uberhaupt een andere bus) is wellicht de netste oplossing. Ik heb alleen net dik 200 euro uitgegeven aan pcb, assamblage en onderdelen die ik er zelf nog op zet. Dus ik ga toch proberen om dit nog aan de gang te krijgen.
Moet zeggen dat rs485 niet echt op mn radar zat toen ik aan het zoeken was naar een geschikte bus hoewel ik het op het werk toch afentoe wel gebruik. met een beetje zoekwerk nu lijkt er inderdaad behoorlijk wat voor te krijgen te zijn. Het grootste deel van mn ontwerp kan ik hergebruiken waarschijnlijk. Alleen het stukje tussen bus en werkelijke IO moet dan veranderen... Die houd ik in het achterhoofd!

Op maandag 12 januari 2026 01:41:00 schreef Arco:
De P82B715 is een bekende i2c busbuffer/verlenger: https://www.ti.com/lit/gpn/P82B715

Ah kijk dat ziet er inderdaad veelbelovend uit. Begrijp ik goed dat ik deze dus zowel aan de Rpi kant als aan de module kant zet met de lange kabel er tussen? Ik wil zowel de pi als ook de (blijkbaar nogal gevoelige) tca9548 beschermen.

Op maandag 12 januari 2026 08:56:24 schreef blurp:
[...]

Dat is vrij normaal voor schade door overspanning/ESD. Meestal begeeft de hele chip het, maar soms is het een gedeelte. En dat kan zich inderdaad manifesteren als een zenerdiode rond 1.1V

Dat je I2C drivers het ook begeven hebben suggereert wel dat je problemen hebt met overspanningen. Ergens. Afijn, I2C is inderdaad niet bedoelt voor afstanden langer dan een (Eindhovense) voet, en je kunt op I2C makkelijk pull-ups van 1k of lager gebruiken. Voedingsspanning/20mA is het minimum voor de meeste devices, al zou ik liever wat hoger zitten.

Hhmm oke, verklaart een hoop I guess.

Denk dat ik ook wat te makkelijk ben geweest met "ff een testkabeltje er tussen pleuren" (lekker warm in de woonkamer prutsen ipv in de ijskoude garage). 1 catkabel met 3v3, 5v, 24v, gnd, datagnd, SDA, SCL. Afgeschermd, maar daar heb je weinig aan als de ellende binnen de afscherming zit. Geen van al trekken echt stroom. De spannendste zijn 8 minirelaitjes op de 24v. Maar als die onverhoopt allemaal tegelijk schakelen zal dat toch wel een aardige piek opleveren. Dat in combi met een bus die niet gemaakt is voor meters kabel..... Heb even te makkelijk gedacht vrees ik :P

Op maandag 12 januari 2026 09:18:16 schreef Benadski:
Is je voeding ook goed ontkoppeld? 5V strak of met flink wat "haar" (snelle pieken van foute schakelende voeding) erbovenop kan hetzelfde op de multimeter lijken, maar toch chips slopen.

Heb er (nog) geen scope aan geknoopt. Maar het is een industriele meanwell voeding. Dus ik zou verwachten dat die een vrij strakke 5V leveren. Hoeveel daar van overblijft na ~8m kabel waar een schakelende 24v in zit is natuurlijk een tweede vraag...

Wij hebben i2c over vele tientallen meters gebruikt met P82B715 drivers, tot 16 externe slaves aan een master verspreid over een verdieping...
(verbonden via cat5 kabel + RJ45)

Was om server+workstations clusters op afstand via telefoonlijn te kunnen resetten bij problemen (onbemande systemen in 't buitenland)
Nooit enig probleem gehad in 15 jaar tijd...

Op maandag 12 januari 2026 11:31:10 schreef Roland van Leusden:
Ik heb in het verleden met I2C over een afstand van 4m gewerkt, ging om een LM75 temperatuursensor op 5V. Ik gebruikte getwiste 4 aderige afgeschermde kabel wat probleemloos werkte. Hieronder een voorbeeld.

[bijlage]

Hhmm... ja 4m haal ik hier echt ruim. Ik denk eerder 8 dan 4. maar 3v3, 5v, 24v, gnd, datagnd, scl en sda door 1 kabel. Waar die 24v ook nog (onbedoeld... maar toch) in 1 klap 8 (micro) relais schakelde was waarschijnlijk even teveel.

Dat verklaart de eerste problemen. Nu zit ik waarschijnlijk gewoon met een kapotte tca. Kanaal lijkt ok, zodra ik ga testen kakt de sda in naar 3v. En als ik nog even door test word het 0. Maakt daarna niet meer uit of er nog wat aan hangt. De pullup krijgt hem niet omhoog. Dus de tca (i2c multiplexer) zal wel gaar zijn.

Op maandag 12 januari 2026 19:09:53 schreef Arco:
Wij hebben i2c over vele tientallen meters gebruikt met P82B715 drivers, tot 16 externe slaves aan een master verspreid over een verdieping...
(verbonden via cat5 kabel + RJ45)

Was om server+workstations clusters op afstand via telefoonlijn te kunnen resetten bij problemen (onbemande systemen in 't buitenland)
Nooit enig probleem gehad in 15 jaar tijd...

Welke clockrate?
In I2C Normal, Fast of High speed mode (of andere clockrate)?

Op maandag 12 januari 2026 14:30:31 schreef Benadski:
Het werkt ook prima over een paar meter shielded netwerk kabel, dat heeft een vrij lage capaciteit en is lekker goedkoop. Ik leg dan shield aan massa aan de kant van de PCB en gebruik Beide blauwe aders voor massa, beide oranje voor voeding, bruin en groen hou je over voor klok en data. Verschillende signalen over een enkel paar doe ik niet, want dat maakt het storingsgevoeliger.

Tjah, het is schielded netwerkkabel.... Maar er gaat zo veel door die kabel heen. 3v3, 5v, 24v, gnd, datagnd, SDA en SCL. Wetende wat ik nu weet lijkt me dat ook wel erg ambitieus :P. Ik ga kijken of ik met een buffer weg kom. Anders ga ik kijken hoe ik uitkom als ik naar modbusrtu overstap. Vereist weer een behoorlijke smak geld en moeite. Maar als de hardware verkeerde gekozen is moet je dat op een zeker moment maar accepteren. En als ik hier de reacties zo lees komt het daar wel op neer.

In de definitieve versie zit die lange kabel er overigens niet tussen. Maar als i2c zó gevoelig is.... het zit in een stalen besturingskast met twee 2kw omvormers en een berg relais, zekeringen, dc kabels, etc. Dus ik denk dat ik gewoon wat robusters moet hebben

Op maandag 12 januari 2026 19:09:53 schreef Arco:
Wij hebben i2c over vele tientallen meters gebruikt met P82B715 drivers, tot 16 externe slaves aan een master verspreid over een verdieping...
(verbonden via cat5 kabel + RJ45)

Was om server+workstations clusters op afstand via telefoonlijn te kunnen resetten bij problemen (onbemande systemen in 't buitenland)
Nooit enig probleem gehad in 15 jaar tijd...

Hhmm oke, mijn "vermogens" draden door de zelfde kabel zullen dan zeker niet helpen... Maar dan nog. Hadden jullie er buffers tussen zitten?

Als de I2C SDA en SCL verbindingen kort kunnen zijn en beide signalen goed worden afgeschermd dan zal het geen probleem zijn.

Op maandag 12 januari 2026 19:16:55 schreef DaanSteeman:
Hhmm... ja 4m haal ik hier echt ruim. Ik denk eerder 8 dan 4. maar 3v3, 5v, 24v, gnd, datagnd, scl en sda door 1 kabel. Waar die 24v ook nog (onbedoeld... maar toch) in 1 klap 8 (micro) relais schakelde was waarschijnlijk even teveel.

Als jij 24V schakelt met een draad die 8m samen met je I2C door een CAT5(of6,7,8, maakt hier niet uit) loopt dan kun je erop rekenen dat je 24V pulsen hebt op al je andere draadjes. Zeker op het draadje waarmee je de 24V gepaard hebt.

Het kan misschien wel: Je moet protectiedioden tussen ongeveer alle draden hebben op beide kanten van de kabel, geen I2C transmissie willen op enig moment dat je schakelt en waarschijnlijk ook wat serieweerstand in de I2C opnemen. Je max snelheid zal dan wellicht nog maar 10kHz zijn, maar dat kan als je het geen I2C maar SMBUS noemt.

Waarschijnlijk ben je beter af met een simpele Pi aan beide kanten van je CAT5 en ethernet ertussen. Eventueel over alleen de 100MBit paren, dan kun je veilig 24V over de andere twee paren sturen, en met een 24V-5V DC/DC converter de Pi voeden. Dan gaat die 24V nog steeds je ethernet storen, maar dat kan de TCP/IP stack op je pi prima oplossen. (POE mag ook, maar moet je nog meer HW erbij hebben)

Of alleen I2C over de CAT5 sturen, en geen voeding voor andere dingen. Maar dan moet je een andere voeding in je garage hebben. En moet je waarschijnlijk nog steeds je snelheid laag houden vanwege de achterlijk hoge buscapaciteit.

Op maandag 12 januari 2026 19:18:40 schreef Bobosje:
[...]

Welke clockrate?
In I2C Normal, Fast of High speed mode (of andere clockrate)?

100/400k, met lagere snelheden kun je zelfs tot een mijl (1.6km) halen...

[Bericht gewijzigd door Arco op (14%)]

Op maandag 12 januari 2026 19:25:30 schreef DaanSteeman:
[...]

Hhmm oke, mijn "vermogens" draden door de zelfde kabel zullen dan zeker niet helpen... Maar dan nog. Hadden jullie er buffers tussen zitten?

Ja, de genoemde P82B715...

Heb nog zo'n resetunit (master) gevonden. (was reserve maar gingen nooit kapot... ;) )
Met de RJ45 kun je doorlussen, en met de dipswitches het i2c adres instellen...

[Bericht gewijzigd door Arco op (26%)]

Hhmm oke, mijn "vermogens" draden door de zelfde kabel zullen dan zeker niet helpen... Maar dan nog. Hadden jullie er buffers tussen zitten?

Een buffer is enkel maar een soort van versterker maar doet verder niets met allerlei stoorsignalen.
Om in ieder geval de te hoge pieken buiten te houden gebruik je dan clamp diodes. En goed afgeschermde en liefst ook getwiste kabel en zorgen dat je aarding goed is. Alles goed aan 2 kanten aarden en de aarde moet voldoende lage impedantie hebben. Dat is de reden dat aarde soms erg dik lijkt maar dat is meer om de impedantie laag te houden.

Op maandag 12 januari 2026 20:21:44 schreef benleentje:
[...]Een buffer is enkel maar een soort van versterker maar doet verder niets met allerlei stoorsignalen.

Jawel,
De gebufferde bus is veel laagohmiger, dus storing heeft minder kans...