I2C address translater IC?

We hebben een schakeling bedacht met een set van 3 digitale I2C potmeters.
Omdat je deze IC's hooguit met 1 address pin 3 verschillende start adressen kan geven, kunnen we nu niet meer dan 3 van deze IC's op 1 I2C bus gebruiken.

We hebben uiteindelijk om voor het gemak even uit te leggen een setje I2C devices aan een I2C busje hangen met zeg adres 30,32,34 en 40.
En dit setje willen we meerdere malen op dezelfde I2C bus kunnen hangen.

De voorkeur gaat niet uit naar het gebruik van een I2C MUX, omdat we het liefst deze 4 IC's op 1 PCBtje designen met 1 I2C aansluiting en op het PCB'tje dmv van jumpers of solder pads een " hoofd address" instellen.

Ik zat zelf te denken aan een IC wat je tussen een bus zet, en wat een soort subaddressing toevoegd.
Heeft iemand daar ervaring mee?

Ik heb wel een IC gezien dat het geschreven adres XORed, maar dat heeft ook zijn beperkingen.

Wat/welke potmeter-ic gebruik je nu?

[Bericht gewijzigd door Arco op 20 april 2017 16:55:26 (20%)]

Arco - "Simplicity is a prerequisite for reliability" - www.arcovox.com

Geen idee uit mijn hoofd. Ééntje van AD. Maar dat maakt verder niet uit in de strekking van dit verhaal. Deze types potmeter hadden we nodig.

bprosman

Golden Member

Maar dat maakt verder niet uit in de strekking van dit verhaal.

Philips I2C IC's hebben vaak een "A" versie met een ander adres, hebben zij ook niet zo iets ?

De jongere generatie loopt veel te vaak zijn PIC achterna.

Je wil geen multiplexer omdat het een extra chip is
Aan de andere kant wil je wel een extra chip om het op te lossen.

Dus wat is het probleem van een mux?

Weet niet waar de I2C potmeters aan komen..microcontroller, pc?? Bij microcontrollers kan je een software I2C instellen. B.v. de arduino.

Het gaat me niet om geen extra ic te willen gebruiken. Het gaat me om de modulairiteit van de schakelingen. De 3 digitale potmeters moeten een ntc gaan simuleren. Ik elke schakeling op een pcbtje zetten en die direct op een i2c bus kunnen hangen. Niet eerst weer via een aparte i2c mux en die vervolgens bedraden naar de bordjes.
Het moet allemaal aan een hw i2c poort van een micro komen.
Gezien er toepassingen zijn waar ik 4 tot 8 ntc's tegelijk moet simuleren dus dan zijn 4 of 8 sw i2cs geen gewenste oplossing.
We hadden een i2c mux op het bordje bedacht die wel 8 verschillende adressen kon hebben, alleen lossen we daar het probleem niet mee op, want die zijn volledig transparant.
Ik zoek dus echt een ic die pas transparant wordt nadat ik hem eerst addresseer.
Terwijl ik dit type bedenk ik me dat dat wel kan wel een mux, door eerst de aangesloten mux uitgang te selecteren vervolgens de potmeters in te stellen en daarna weer een niet aangesloten kanaal te selecteren. Echter denk ik dat 't makkelijker moet kunnen.

Hebben die ic's (digitale potmeters) geen enable ingang ?

[Bericht gewijzigd door Roland van Leusden op 20 april 2017 21:24:59 (23%)]

It's the rule that you live by and die for It's the one thing you can't deny Even though you don't know what the price is. It is justified.
maartenbakker

Golden Member

Probleem van enable is dat je dan toch een extra draad nodig hebt. Hoewel.... Je kunt natuurlijk een enable maken die je via een eigen I2C adres aanstuurt maar dat is wel wat omslachtig.

Dan kun je er eigenlijk net zo goed een microcontroller tussenhangen die het adres decodeert en vertaalt.

Ik denk dat dat de beste oplossing gaat zijn.

"The mind is a funny thing. Sometimes it needs a good whack on the side of the head to jar things loose."

Waarom zit je aan zo'n exoot vast? Een andere (waarschijnlijk ook een stuk goedkopere) met 8 of 16 i2c adressen is veel simpeler...

Arco - "Simplicity is a prerequisite for reliability" - www.arcovox.com

Prutswerk wordt het. Ik gebruik regelmatig potmeters van Microchip, daar zitten er 4 in een huisje. Daarbij hebben ze al (uit m'n hoofd) 3 adreslijnen. Ik zou wel 20 NTCs kunnen emuleren op 1 bus :7

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein

gebruik zelf de digitale potmeters van microchip, mcp41010, spi aansturing met een arduino. Stuur er 8 aan per uno. Nooit geen problemen mee gehad.

Ik heb deze wel eens naar tevredenheid toegepast: http://www.linear.com/product/LTC4316. Het IC ziet dat er op de I2C bus een start conditie voorbij komt, verandert dan alleen het adres (eerste byte die langs komt), en laat de rest van de data ongestoord door. Hoe het adres aangepast wordt, stel je in door middel van weerstanden.

Op 20 april 2017 21:59:56 schreef Arco:
Waarom zit je aan zo'n exoot vast? Een andere (waarschijnlijk ook een stuk goedkopere) met 8 of 16 i2c adressen is veel simpeler...

Hij moet een grote resolutie hebben. Deze zijn 10 bits en zetten we al parallel en 1 in serie om ntc ranges mee te simuleren.
Wordt zeker geen prutswerk. Een beter oplossing draag je zelf ook niet aan flipflop.

Wellicht is een micro die de vertaling doet nog een optie idd. Of toch maar de omweg met de mux

MCP41XXX/42XXX heeft een resolutie van maximaal 100kΩ. Zet er eens 10 in serie...

Gewoon een MCU nemen met de nodige PWM uitgangen. NTC wordt tenslotte ook gebruikt om variabele spanning op te wekken, dat kan met PWM ook prima...

Arco - "Simplicity is a prerequisite for reliability" - www.arcovox.com

Op 20 april 2017 22:52:58 schreef Stijnos:
..Een beter oplossing draag je zelf ook niet aan flipflop.

Ik dacht het toch wel, maar toen had je de requirement van die 10bits nog niet neergelegd. Waarvan je je kunt afvragen waar het voor nodig is, maar goed, ik doorzie je toepassing nog niet.

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein

Op 20 april 2017 23:29:02 schreef Arco:
Gewoon een MCU nemen met de nodige PWM uitgangen. NTC wordt tenslotte ook gebruikt om variabele spanning op te wekken, dat kan met PWM ook prima...

Of MCU met een 12-bits DAC en daarachter een Op.Amp. met een directe terugkoppeling.

De toepassing is een automatische teststraat van onze software in onze eind producten. Ik ga toch voor de mux of anders hadden ik nog de LTC4316 gevonden, die komt het dichtstbijzijnde in de buurt van wat ik zocht