Det här med I/O, sink/source och active/inactive hos IC:s

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Användarvisningsbild
Magnus_K
EF Sponsor
Inlägg: 5854
Blev medlem: 4 januari 2010, 17:53:25
Ort: Skogen mellan Uppsala-Gävle

Det här med I/O, sink/source och active/inactive hos IC:s

Inlägg av Magnus_K »

Förbered er på en av forumets spånigaste frågor.

Sitter och läser en del i ett datablad för en LED-drivare (Allegro Micros A6276).
Detta är en "sinking current driver" med en drös utgångar.

Nu minns jag lite dåligt men jag har mycket väl för mig att när man pratar om tex mikrokontrollers så krävs det att man anger en I/O till att vara utgång och sedan genom att skriva en 0:a till utgången så sänker den.

Av någon anledning så fick jag för mig att då kretsen ovan är en "sinking driver" så borde logiskt sett en 1:a på utgången innebära att man aktiverar och sänker utgången - men icke.
Jag har säkert missat något väsentligt i databladet men vad jag kan hitta så förtydligas det här endast på ett enda stället, och enligt min menig ganska diffust.

Tankarna går då över till ett större perspektiv, alltså generellt för integrerade kretsar.
Är det allmänt vedertaget och alltid så att en 0:a på en utgång (dvs en lågnivå på en utgång) alltid sänker strömmen?

Ja, jag vet, väldigt dum fråga men uppskattar ändå seriösa svar.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Det här med I/O, sink/source och active/inactive hos IC:

Inlägg av sodjan »

> Är det allmänt vedertaget och alltid så att en 0:a på en utgång (dvs en lågnivå på en utgång) alltid sänker strömmen?

Vart skulle den (strömmen) annars ta vägen?
Användarvisningsbild
Magnus_K
EF Sponsor
Inlägg: 5854
Blev medlem: 4 januari 2010, 17:53:25
Ort: Skogen mellan Uppsala-Gävle

Re: Det här med I/O, sink/source och active/inactive hos IC:

Inlägg av Magnus_K »

Jo det jag menar är att utgången kanske i vissa fall är inverterad för att det ska bli mer "logiskt rätt".
Alltså en sänkade drivare sänker först när man skriver en 1:a till utgången.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Det här med I/O, sink/source och active/inactive hos IC:

Inlägg av sodjan »

Ja, alltså, om utgången har en inverterare mellan det register som
man skriver till och själva utgångssteget så blir det ju så. Men det är
ju principiellt ointressant, det påverkar bara logiken.
Användarvisningsbild
Magnus_K
EF Sponsor
Inlägg: 5854
Blev medlem: 4 januari 2010, 17:53:25
Ort: Skogen mellan Uppsala-Gävle

Re: Det här med I/O, sink/source och active/inactive hos IC:

Inlägg av Magnus_K »

Jo men är ju just det jag menar. Förekommer det att logiken är inverterad jämfört med utgångssteget för att få registerhanteringen (eller vad man ska kalla det) mer logisk?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Det här med I/O, sink/source och active/inactive hos IC:

Inlägg av sodjan »

Ja, just det där databladet kan tolkas så.
En "1" till skiftregistret sätter en utgång "på", d.v.s låg...
Nerre
Inlägg: 27306
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Det här med I/O, sink/source och active/inactive hos IC:

Inlägg av Nerre »

Då brukar väl schemasymbolen vara ritad med en inverterande ring?
Användarvisningsbild
Jan Almqvist
Inlägg: 1658
Blev medlem: 1 oktober 2013, 20:48:26
Ort: Orust

Re: Det här med I/O, sink/source och active/inactive hos IC:

Inlägg av Jan Almqvist »

Ring känns logiskt. Jämför med t.ex. ULN2003.
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4758
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: Det här med I/O, sink/source och active/inactive hos IC:

Inlägg av Swech »

Det är ring i databladet.
en 1a sänker utgången. Har du sätt output enable = 0 ?

Swech
Användarvisningsbild
Icecap
Inlägg: 26701
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Det här med I/O, sink/source och active/inactive hos IC:

Inlägg av Icecap »

Magnus_K: bara så att du vet det: den krets är markerat med "Last Time Buy" vilket betyder att ska du använda den är det NU du kan köpa den, sedan produceras det ingen fler!

Det finns andra likvärda kretsar som sannolikt är bättre också men kan du köpa en bunt billigt duger de ju likaväl för det.

I ritningen över kretsen visas det ganska tydligt att drivsteget har en ring på utgången, alltså att den inverterar. Det betyder att en '1' som data för att driva den får utgångssteget att aktiveras och dra den ställda strömmen till GND.

Maxim/Dallas har ju sådana drivkretsar (kolla HÄR) men det finns andre företag som gör liknande.

De kretsar som används i de LED-moduler vi använder många av har SPI-liknande dataöverföring samt en #OE som är kopplat till alla. Nästan alla har 2 par RGB-data, det ger 6 databit och lägra datahastighet för överföringen men det är en teknisk detalj.

Är det ett RGB-modul finns det en stripa kretsar för R(öd), en för G(rön) och en för B(lå). Varje krets styr 16 st LED.
Det finns en data in för var av R, G & B, en gemensam klocka, en gemensam Strobe samt en gemensam #OE.

Man skickar data pixel för pixel, och för varje data-del drar och släpper man klockan (Alltså: Data ut, Klocka=1, Klocka=0, upprepa). När alla data är överförda drar och släpper man Strobe och det nya mönster visas.

#OE används för att styra intensiteten med PWM, drivstegen slås på när #OE är '0' och av vid '1'.

Jag har numera en standardfunktion som ställer intensiteten i 1000 steg och en funktion som läser en ljussensor. Dessa kan jag enkelt koppla ihop i mjukvaran så att intensiteten på displayen motsvarar allmänbelysningen, displayen är alltså lika tydlig oavsett om det är mörkt som en n..... rumpe eller solig dag.

För att uppnå detta kan jag ge dig (och andra) ett tips: Duty-cycle ska inte regleras linjärt! Ögat är ungefärligt logaritmisk så jag tar mätdata från sensorn och upphöjer det till andra potensen (X = Värde * Värde) och sedan använder jag detta till att reglera med, det finns en del skalning såklart så att minimum er minimum och maximum inte kan bli 3000000%
danwi
Inlägg: 388
Blev medlem: 16 oktober 2008, 17:00:59
Ort: Linköping

Re: Det här med I/O, sink/source och active/inactive hos IC:

Inlägg av danwi »

Current source respektive sink definieras normalt sett utifrån bilden att ström flyter från en högre till en lägre potential. Se det som att strömmen "rinner" från strömkällan på hög potential till strömsänkan på låg potential. Det där med om 0 eller 1 aktiverar utgången är (som flera innan mig har skrivit) bara ett designval från kretstillverkarens sida och har ingenting med hur en mikrokontroller fungerar. Det är rätt vanligt att just drivsteg är inverterande bara för att det är lättare att tänka "1=på" när man använder drivsteget snarare än nåt i stil med "0=vi drar ström genom lysdioden". Konventioner som inte nödvändigtvis är helt uppenbara återfinns lite överallt i elektroniken, till exempel det att output enable ska sättas till 0 för att utgångarna ska aktiveras på många typer av kretsar.

Icecap: Tid för last time buy var 30 april 2011 enligt databladet. Nu är lite i senaste laget ;)
Användarvisningsbild
Icecap
Inlägg: 26701
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Det här med I/O, sink/source och active/inactive hos IC:

Inlägg av Icecap »

danwi: Hoppla - ska erkänna att jag bara så "Last Buy" och inte kollade datum.
Användarvisningsbild
Jan Almqvist
Inlägg: 1658
Blev medlem: 1 oktober 2013, 20:48:26
Ort: Orust

Re: Det här med I/O, sink/source och active/inactive hos IC:

Inlägg av Jan Almqvist »

danwi skrev: Konventioner som inte nödvändigtvis är helt uppenbara återfinns lite överallt i elektroniken, till exempel det att output enable ska sättas till 0 för att utgångarna ska aktiveras på många typer av kretsar.
Men brukar det inte vara antingen ring då eller streck ovanför?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Det här med I/O, sink/source och active/inactive hos IC:

Inlägg av sodjan »

Ja, det ska det vara. Men poängen är väl att att det inte alltid (och jag
skulle nog säga oftast) inte är "hög" (eller "1") som är logisk "on".
Det var väl det som frågan gällde från början...
danwi
Inlägg: 388
Blev medlem: 16 oktober 2008, 17:00:59
Ort: Linköping

Re: Det här med I/O, sink/source och active/inactive hos IC:

Inlägg av danwi »

Jan Almqvist skrev:Men brukar det inte vara antingen ring då eller streck ovanför?
Jodå, jag tänkte mest på det faktum att det finns olika konventioner - inte hur man visar det i databladet. Precis som Sodjan är inne på så varierar det om det är "1"/"hög" eller "0"/"låg" som är aktivt läge på en signal mellan olika typer av kretsar och signaler.
Skriv svar