Diskret low/high/hi-z buffer

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Användarvisningsbild
SenseiTG
Inlägg: 57
Blev medlem: 9 april 2008, 10:18:23
Ort: En i sydvästra skåne

Diskret low/high/hi-z buffer

Inlägg av SenseiTG »

Har ett pågående projekt med en LED matris (armbandsur i björk med valnötsintarzia, smd luftbygge a'la spaghetti-art)



Fig 1
Matrisen är en enkel XY matris, där varje nod har två dioder kopplade i vardera riktning.
Samtliga X och Y ledningar är kopplade till en mikrokontroller.
Med denna konfiguration måste jag naturligtvis kunna sätta varje utgång antingen HIGH, LOW eller HI-Z/frånkopplad.

Eftersom jag inte gjort min läxa ordentligt visade det sig först när projektet var nära klart att mikrokontrollern inte klarar av att driva matrisen med önskad strömstyrka vid den matningsspänning jag använder (5mA, istället för önskade 20mA).

Tråkigt läge, skäms, men det enda jag har möjlighet att göra nu är att bygga till ett antal buffrar på utgångarna.

Fig 2
Illustration av ungefär vad jag är ute efter.

Min fråga är, hur bygger jag på bästa sätt en buffert som utifrån en low/high/hi-z signal skapar en ny low/high/hi-z signal, men med utökad drivförmåga? Det är helt OK om signalen blir inverterad!

Jag är rädd för (ja, jag är värdelös på sånt här) att schemat i Fig 2 kommer leda till att en ström dras genom båda transistorerna (emitter->bas på NPN, vidare bas->emitter på PNP), och därför antingen inte fungera eller dra, i sammanhanget, kraftig ström även i HI-Z läge - men är osäker.

Fokus ligger till 100% på låg strömförbrukning i HI-Z läge eftersom projektet är batteridrivet med en knappcell á 50mA. Projektet drar i dagsläget ca 700nA med LED matrisen avstängd och mikrokontrollern i sömnläge+RTC och med 7st sådana här buffert lösningar måste jag fortfarande hålla mig under högst några µA. Strömförbrukning i aktivt läge är inte särskilt intressant.

Jag hoppas att någon som verkligen kan transistorer med allt vad läckage och annat heter kan tänka sig att hjälpa till - jag har spenderat löjligt mycket tid på bara den fysiska konstruktionen av det här projektet för att låta elektroniken sätta käppar i hjulet :)

Tack!
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
xxargs
Inlägg: 10189
Blev medlem: 23 september 2006, 14:28:27
Ort: Södertälje

Re: Diskret low/high/hi-z buffer

Inlägg av xxargs »

dina schemor syns inte i inlägget till och börja med

---

Kan du inte begränsa strömmar genom LED till 5 mA istället för 20 mA (dvs välja förkopplingsmotstånd med högre värde) - rent Upplevelsemässigt så är det inte sådär jättestor skillnad på ljuset mellan 5 och 20 mA då även ögona jobbar med log10 och upplevd dubbel ljusstyrka kostar 10 ggr mer i ström och du skapar bara 4 ggr högre ström när du går från 5 mA till 20 mA och det upplevs att det blir bara lite aning ljusare än vid 5 mA-drift.

Har man inget att jämföra med som att växla mellan 5 och 20 mA-läge så kan du förmodligen inte avgöra säkert om LED matas med 5 eller 20 mA om du startar från helt svart LED och det har gått en stund från förra lysperioden.

det här är också viktigt med lägre strömförbrukning om du driver grejorna från så litet batteri som 50 mAh med ganska hög inre resistans och kanske dessutom driver fler än en lysdiod samtidigt.

behöver du mer ljus så är det som högtalare, det lönar sig bättre att leta ut lysdioder med hög ljus/strömverkningsgrad än att försöka kompensera med högre effekt/ström på slutsteg/buffer.

när det gäller trissor så blir det att läsa datablad (att jaga och läsa kanske flera 10-tals datablad och kolla tillgängligheten rent inköpsmässigt innan man hittar rätt komponent ingår faktiskt i designjobbet!) och i många fall så kan man också simulera detta i tex LTspice (gratis från linear technology) för dom vanligaste bipolära och (MOS)FET signaltransistorer som det handlar om här.
xxargs
Inlägg: 10189
Blev medlem: 23 september 2006, 14:28:27
Ort: Södertälje

Re: Diskret low/high/hi-z buffer

Inlägg av xxargs »

fig 2 kommer inte att fungera och agera 'kortis' då du har ström genom emitter - bas på den övre trissan som går till bas-emitter till den nedre trissan och i båda fallen gör att trissorna leder ström så mycket det går oavsett vilket läge din styrutgång är.

inom transistorlogiken (TTL-kretsar) hade man sk totem-pole utgångar för kretsar som skulle erbjuda tri-state (dvs högimpedans, låg och hög drivning) och användes tex i buss-kretsar där man skulle lyssna och ibland också styra men i övrig tid vara passiv på en bakplansbuss.

krets av den typen är tex. 74HC244 men högimpediva läget på utgångarna måste styras av en separat ingång till kretsen och gäller alla utgångar samtidigt
Användarvisningsbild
SenseiTG
Inlägg: 57
Blev medlem: 9 april 2008, 10:18:23
Ort: En i sydvästra skåne

Re: Diskret low/high/hi-z buffer

Inlägg av SenseiTG »

@XXARGS:

Lade till schemat bara någon minut efter inlägget, missade det vid första postningen.

Strömmen är redan av mikrokontrollern begränsad till runt 5mA... eller rättare sagt 4mA i dagsläget, plockar jag bort motstånden helt skulle jag få ca 5mA.

Jag har god kompetens på LED-sidan, och är medveten om hur ögat uppfattar ljus. Jag har noggrannt valt ut lysdioder, orange super bright med 120* spridning, utifrån behov av ljusstyrka och matningsspänning. Ljusstyrkan på dessa dioder är 2700mcd vilket är högt, med tanke på spridningsvinkeln. Det går i alltid att hitta något bättre, men tro mig när jag säger att det lagts mer än tillräcklig tid bakom valet av lysdioder, inte minst för att det rör sig om ett designföremål med synliga lysdioder, varför deras utseende och fysiska form även spelar in. Jag är av naturen mycket noggrann.

Jag är också fullt medveten om batteriets interna resistans och hur spänningen påverkas med last. Detta är inte ett problem, speciellt då jag också noggrant valt ut en mikrokontroller med inre spänningsreferens som internt kan kopplas till dess AD omvandlare på så vis att batterispänningen kan räknas ut under belastning så att mätvärde från fototransistorn, samt ljusstyrka kan regleras för att kompensera för detta över batteriets livslängd. Det finns även en termometer som ska användas för att kompensera för temperaturberoende parametrar, i första hand klockkristallens huvudsakliga resonansfrekvens.

Ljusstyrkan kommer alltså att regleras med PWM i utgångspunkt ett mätvärde från en fototransistor, men matrisen kommer användas på så vis att endast 1 LED är tänd åt gången vilket batteriet klarar utan problem. Eftersom 2 LED måste indikera samtidigt kommer dessa att drivas med högst 50% duty cycle. Skillnaden på 5mA och 20mA gör sig tydlig i dagsljus. Med 50% duty behöver jag 13mA eller mer för tillräcklig ljusstyrka under 10.000lux (duger, men...) och 20 under 25.000lux (...önskvärt - motsvarar direkt solljus en klar dag). Dessa värden är experimentellt framtagna.

Jag har lagt mycket god tid på att hitta rätt komponenter - missen jag gjort är att jag för mikrokontrollern läste kurvorna IOH & IOL för 5V matningsspänning istället för korrekta 3V.

Detta är en mycket tight konstruktion på en yta med kraftig kurvatur. LEDarna är monterade direkt i en 1mm krökt björkskiva dekorerad med detaljerad intarzia och är inte perfekt placerade. Detta gör PCB svåranvänt, varför allting är handlödat med 0.2mm kopplingstråd under mikroskop. Det ligger mer än 50 timmars arbete bakom projektet och det är inte aktuellt att börja om från början, varför en buffertlösning är den enda i nuläget acceptabla lösningen.

Du bekräftar i ditt andra inlägg precis vad jag skrev att misstänkte i mitt inlägg - det uppskattas.
Anledningen att jag ens frågade var att det till min förvåning fungerade i en enklare simulator baserad på falstads circuit simulator.

Jag har inga problem med att läsa datablad och hitta rätt transistorer.

Frågan kvarstår - vad rekommenderas för konstruktion av en sådan buffert (inte exakt vilka komponenter som ska användas).
xxargs
Inlägg: 10189
Blev medlem: 23 september 2006, 14:28:27
Ort: Södertälje

Re: Diskret low/high/hi-z buffer

Inlägg av xxargs »

Kan du styra tristate-läget med en separat ut/ingång eller är din önskan att bufferstegen skall replikera din ports beteende - dvs är högimpediv när porten är högimpediv, låg när porten är låg och dito hög

I sistnämnda fallet kommer _inte_ att vara lätt att få till med dom strömkraven du har då för att mäta någon ports impedans så går det åt ström och även om man byggde med P och N-FET-trissor med snäva övergångar så måste dess ingång hållas fixerat på en mellannivå (där båda trissorna är hårt strypta) så att nivån inte glider upp eller ned så att endera trissan öppnar en smula i bufferten och börja läcka ström - och där är det stor risk att din PIC:s port kommer att dra ström utifrån in till porten när den är 'avstängd' förutom förbrukningen på de flera MOhm-stora motstånden (1 MOhm = 1 µA/V - dvs 3 ggr din nuvarande förbrukning i viloläge redan vid 1 Volt spänningsfall) som försöker biasera spänningen till mitten av batterispänningen för att hålla trissorna stängda.

Jag skulle hellre satsa på en 'huvudbrytare' via någon mosfet-trissa som stänger av strömmen helt när diodmatrisen inte används då när lysdioderna används så gör det inget om det drar någon % mer i ström för buffertens funktion just under aktiviteten.


13 mA mot 20 mA ger bara 1.85 dB skillnad i ljusstyrka medans 10000 mot 25000 Lux ger 4 dB skillnad, så det känns inte som att du har samma visibilitets-kriterier vid som här nivåerna - är det bedömt subjektiv eller är det bedömt med tex. en kamera och mäta luminiscensnivån på dess pixlar i tagna bilden när det gäller bedöma hur mycket mer lysdioden lyser gentemot omgivningsbelysningen?

En förstärkande faktor för högre visibilitet kan tex. välja en lämplig färg (...mattsvart...) på ytan som lysdioderna tittar igenom och den vägen får lysdioderna mer synliga och en sådan åtgärd kan motsvara att man ökar strömmen 1000 ggr i lysdioden för att uppnå samma visibla verkan med lysdioder på en vit bakgrundsyta.

Obs detta är inte för att ifrågasätta dina praktiska studier som sådant utan mera att få tänket ' jag måste klara visibiliteten vid 10000 Lux och det gör jag redan med den existerande lösningen - men det vore bra är att klara situation också med 25000 Lux men när jag studerar det så växer komponentbehovet i kubik, det blir trångt och effektbehovet ökar mycket och måste ifrågasätta om det är värt detta om det här inte är ett krav utan bara en feature...'

- Du skulle bara veta hur mycket jobb man måste lägga ned på en RF-slutsteg för multicarrier om man vill gå ifrån 27 dBm per carrier till 30 dBm per carrier vid 2-ton - det är bara 3 dB ökning men kräver en helt ny konstruktion från grunden för att klara alla kraven

så frågan är att alltid ställa: "är dom här bra och ha-grejorna verkligen nödvändiga?? är det lätt att fixat till nästan gratis och utan ansträngning, gör det - är det mycket extra jobb - låt bli ".

---

När du använder simulatorer så skall det helst vara sådana med riktiga modeller typ spice-modeller för de använda transistorerna medan det du använde och om jag mins rätt hur den fungerade med falstads circuit simulator så hör den närmare till klassen utbildningssimulator med förenklade modeller och de gör oftare fel än riktiga Spice-simulatorer. - det är skillnad på nybörjarvänlig simulator och användbar simulator och till sist måste man ta steget till det senare och ta tjuren vid hornen och lära sig denna trots att det kan vara motigt i början.


Många här använde LT:s spice-simulator som kan hämtas gratis, även om den från början bara är tänkt för att sälja LT:s olika kretsfamiljer inom framförallt switcharkretsar, så har olika communitys breddat användningsområdet radikalt.


ingen simulator är perfekt och hur bra det fungerar beror till största delen hur bra modellerna för komponenterna är byggda
Användarvisningsbild
SenseiTG
Inlägg: 57
Blev medlem: 9 april 2008, 10:18:23
Ort: En i sydvästra skåne

Re: Diskret low/high/hi-z buffer

Inlägg av SenseiTG »

Kan du styra tristate-läget eller skall portens beteende replikeras
Beteendet behöver replikeras eftersom jag bara har en endaste ledig pinne kvar.

En eventuell lösning med denna pinne skulle kunna vara att använda nuvarande pinnar för att signalera tristate och den lediga för att växla X och Y gruppen mellan låg/hög alt. hög/låg vilket räcker för att styra samtliga lysdioder med viss omskrivning av programvaran. C7SZ126 är en möjlig kandidat - lite gränsland.
I sistnämnda fallet kommer _inte_ att vara lätt ... hållas fixerat på en mellannivå där båda trissorna är hårt strypta... förutom förbrukningen på spänningsdelaren för bias
Problemet försvåras också av att matningsspänningen kan variera från 3 ner mot närmare 2 volt.
Inser att det inte är lätt - då hade jag inte behövt fråga ;)
Jag skulle hellre satsa på en 'huvudbrytare'
Precis min tanke, har redan en lågläckande transistor för ljussensorn som öppnar för upp till 20mA under fullt dagsljus och således måste kunna stängas av.
13 mA mot 20 mA ger bara 1.85 dB skillnad i ljusstyrka medans 10000 mot 25000 Lux ger 4 dB skillnad, är det bedömt subjektivt...
I högsta grad subjektivt. Experimentplatta, luxmätare samt jag och mina ben.
Det är jag som ska använda slutresultatet, så min subjektiva bedömning är det bästa mätverktyget ;)
En förstärkande faktor för högre visibilitet kan tex. välja en lämplig färg
Sant, men grundidén är att "urtavlan" skulle tillverkas i björk med valnötsintarzia och lysdioderna tittar upp direkt ur uttavlan.
Obs detta är inte för att ifrågasätta dina praktiska studier... utan mera att få tänket... du skulle bara veta hur mycket jobb man måste lägga ned på en...
Jag arbetar sedan lång tid tillbaka som programmerare och måste göra precis samma värderingar även i mitt yrke och gud vet att jag är medveten om vilka omkonstruktioner som kan krävas när kraven ökar. Elektroniken har varit en hobby sedan barnsben - så jag vet också mycket väl vilken tid det tar att ta fram större lösningar även om jag aldrig konstruerat några RF-slutsteg för multicarrier 30 dBm per carrier vid 2-ton ;)

I det här fallet rör det som som sagt om ett hobbyprojekt och då behöver jag inte längre ta några genvägar. Tid är fortfarande värdefull, men inte på samma sätt - det är ju roligt och lärorikt att lösa problem!

Jag var kanske otydlig vad gäller 10.000lux, ljusstyrkan är med nuvarande konstruktion inte tillräcklig - vilket gör klockan nästan obrukbar utomhus på dagen. Här sätter jag mitt krav, alltså 13 mA! 20mA lutar kanske åt feature-hållet, men om det går utan absurd insats så vill jag nå dit.
När du använder simulatorer...
Jodå, jag vet att circuit simulator är väldigt enkel. Har tillgång till riktiga verktyg på jobb, men kan dom inte särskilt bra och är i vilket fall pappaledig.
Många här använde LT:s spice-simulator ...
Ska klart testa!
Användarvisningsbild
Icecap
Inlägg: 26693
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Diskret low/high/hi-z buffer

Inlägg av Icecap »

Bara en tanke...

Om vi utgår ifrån Fig. 2 i första inlägget som grundtanke. Baserna kan inte vara ihopkopplade som de är där, det ville ge en direkt kortslutning men om man lossar dom från varandra.

På varje transistor monterar man sedan ett motstånd mellan bas och emitter.
Mellan de två baser monterar man två seriekopplade motstånd.

Portpinnen ansluts sedan till mittpunkten. Och nu kommer det knepiga: värdet på motstånden.

När portpinnen är Hi-Z kommer spänningen att vara VDD/2 och då ska båda transistorer vara avstängda. En '0' ska slå på PNP-transistorn och en '1' ska slå på NPN-transistorn.

Jag tror att det kan fungera med rätt värde på motstånden.
Skriv svar