Operaciniai stiprintuvai: realaus pasaulio pavyzdukas 4, skaitom instrukcijas

January 16th, 2019

Atsimenam senuose postuose, kad jei paduodam į stiprintuvą griežtą stačiakampį išėjime gaunam kiek pasvirusius šonus:
slew rate

Tai yra aprašomas parametras “slew rate", šioje mikroschemoje 3V/μs. Gaunasi, kad signalas kinta ne greičiau kaip nurodyta.
Paveikslėlyje kažkur 2V ir 500ns, perskaičiavus iki 4V per 1μs. Net geriau nei datašyte.

O dabar apie šitą trikampį ir kodėl jis išnyksta prie mažesnės įtampos:
daznis ir galia
Pasirodo tai irgi susije su tuo pačiu “slew rate". Aišku čia įėjime sinusoidė, bet ji irgi turi kažkoki kilimo greitį. O operacinis lagina- jis kaip ir gali dirbti iki reikiamo dažnio, bet nespėja. O “slew rate" matuojamas ir voltais ir mikrosekundėm. Vadinasi, kad suspėtu reikia arba mažinti dažnį arba įtampą. Sumažinus įtampa, operacinis suspėja ir gaunam sinusoidę, o kai nespėją- matom “slew" trikampį. Nes per tai laiką įtampa uždidėjo tiek, kad operaciniui atrodo, kad inėjime stačiakampis :) .

Gudriam dašyte parašyta:

Full Power Bandwidth
FPBW(Hz)=SR/π(Voutp-p(max))
Kur SR tai yra “slew rate".

daznis ir galia
Net grafikėlis nupaišyts.

Galima numatyti, kiek voltų galim išspausti iš savo stiprintuvo. Ir tikrai 2Vp-p tikrai nesigaus prie 1.5MHz. Gal kiek mažiau nei 1V galimas, teoriškai. Pastaroji oscilograma kaip tik buvo užfiksuota kai prasidėjo trikampiavimas. O dar nereikia užmiršti, kad eksperientuojam ne su vienu operaciniu- schemoje jie ten keli. Efektas kažkaip turi sumuotis.

Operaciniai stiprintuvai: realaus pasaulio pavyzdukas 3, bugai

January 13th, 2019

Kartai surenki stiprintuvą, o jis kaip ir stipriną, bet naudoja per daug elektros (srovė per didelė), garsas kažkoks keistas arba net cypia. Oscilografas rodo, kad prie pagrindinio signalo dar prisidėjo papildomas, aukštadažnis:
operacinis stiprintuvas- parazitinis generavimas
Read the rest of this entry »

Operaciniai stiprintuvai: realaus pasaulio pavyzdukas 2, pratesimas

January 11th, 2019

Primenu schemą:
op amp osciloscope screenshot

Ir prisimenam tuos spygliukus signalo pradžioje. Kaip su jai susikovoti? Gi iš pirmojo stiprintuvo signalas buvo geras, tik pasvirusiais šonais. Pradedam nuo neinvertuojančio operacinio U5A. Ten tokie dideli rezistoriai… O jei juos sumažinti 10 kartų? Iš teorijos gi žinom, kad stiprinimas nepasikeis.
R96 ir R93 iš 120 kiloomų tapo 12k. Jungiam schemą ir stebim ekraną:
Read the rest of this entry »

Savel spaudoje :)

January 9th, 2019

Šiandien… :)

Savel Kauno diena

Atspėkit iš trijų kartų kas čia nupaveiksluotas.

Operaciniai stiprintuvai: realaus pasaulio pavyzdukas

January 8th, 2019

Pašnekėjom apie operacinių stiprintuvų teoriją ir sukurpiam tokią schemą realiam pasaulyje:
op amp osciloscope screenshot
(Schema pasididina).
Schemoje gali būti klaidų ar nereikalingų detalių. Aš ją projektavau ypač senai, poto kai kinai padarė plokštę, tai dar ji kokius metus gulėjo neliečiama. O kai pradėjau montuoti jau neatsimenu kam kai kurios detalės. Šiaip jos skirtos eksperimentuoti ir ne visas reikia sulituoti.) R99 ir R92 nenaudojamas. R89 ir R94- sintetinė žemė.

Šis monstras turi visus teorinius elementus: įtampos kartotuvą- buferį, stiprintuvą ir invertuojantį stiprintuvą.
Read the rest of this entry »

Operaciniai stiprintuvai: intro

January 6th, 2019

Viskas gal prasidėjo nuo sponsorinės MAX4494AKA+T špūlės. Špūlėje kogero 2500 vienetai dvigubu operacinių stiprintuvų. Gana šlykščiam korpuse- SOT-23. Tai niekuom neišsiskiriantys stiprintuvai, kaip rašo datašytas “general-purpose operational amplifiers", “unity-gain bandwidth
of 5MHz" ir bla bla kuri man nieko nesako, nes niekada nesimokiau ir per daug nesidomėjau aš operacinių stiprintuvų teorija. Bet praktiškai naudoju.
Taigis, turim pora “štukų" mikroschemų- reikia jas kam nors panaudoti. O kam gi, jei ne eksperimentams. Kai projektuoji PCB, dažnai lieka laisvos vietos iki standartinio dydžio, tai ko į tą vietą nesukišti tuos mikrobus.

max4494 babina
Read the rest of this entry »

Atari 800XL ir kitų maitinimo optimizavimas

January 5th, 2019

Atari kompiuteriukai (8 bitų) turi vieną bėdą- pas juos išorinis maitinimo šaltinis nėra tobulas. Jis paprastutis- transformatorius, lygintuvas ir linijinis (linear) stabilizatorius. Kad išsklaidyti daugiau šilumos tie maitblokiai dažnai užliejami kažkokia epoksidine derva. Todėl pats maitblokis dažnai nesiremontuojasi. O remontuoti tenka, nes dažna liga- pareina stabilizatorius (greičiausiai kondikai) ir maitblokis vietoje 5V atiduoda vos ne 7. Tada būna kiek negerai kompui. Tiesa visi čipai tai dažnai atlaiko, tik neatlaiko atminties čipai. Todėl, preventyviai ir dar todėl, kad galėčiau naudoti bet kokį maitblokį, į senuką Atari 800XL sumontavau impulsinį stabilizatorių:

ATARI 800XL internal 5V PSU
(Ataris be RAM čipų tik todėl, kad perdarytas į SRAM variantą)

Tai originalus National Semiconductors (dabar Texas Instruments) LM2596S ir privalomos detalės pagal datašytą. Dabar be baimės galima jungti kad ir 40V įtampą (tiesa kogero susprogs įėjimo kondikai) ir galima nebijoti supainioto poliariškumo- nes papildomai stovi dar ir diodas ant įėjimo.
Kilmingi Japoniški kondensatoriai ir pagal feng-šui padaryta PCB (kas gi darė! :) ).

Tai paaiškina kodėl stovi tokia plokštė, o ne kažkas tokio:
ATARI 800XL internal 5V PSU

Ogi todėl, kad aš turiu prisidaręs tokių PCB, todėl kad sponsoriai pateikė tikrai originalių komponentų ir tikrai aš pasitikiu jais ir šia schema.

Ir vėl, su naujais metais

January 1st, 2019

Ir vėl nauji metai. Šį kartą video plokštė nesudegė ir lygtai šiandien nieko bloga neatsitiko. Šiandien užsiiminėjau kulinarija, kepėm skanią mėsytę. Ir kai jau reikėjo sveikinti vienus ir kitus, atsisukus į stalą pamatėm va tokį vaizdelį.

2019 new year
Tai beveik nesumodeliuota nuotrauka. Vaizdelis tikrai buvo toks, tik dar šunis ėdė mėsytę. Poto jis skrido nuo stalo. O kad padaryti nuotrauką teko kiek palaukti ir šuniukas vėl atliko Questą. Questas todėl, kad šunis nesiekia pustrečio kilogramo ir dydis jo miniatiūrinis. Jis turėjo lipti ant fotelio. Poto ant fotelio ranktūrio. Poto ant kėdės. Poto jau ant stalo.

Taigi. Linkiu visiems linksmų naujų metų. Su mažytėm škadom ir be jokių didelių problemų. Ir lai tos mažos škados neša jums tik linksmą nuotaiką.

Ir aišku prižadu, kad vistiek dar išspausiu naujų projektų ir šiaip kokių nors įdomių ir nesamoningų straipsnių.

Postkriptovaliutinis pasaulis

December 13th, 2018

Tikriausiai jau visi pastebėjot, kad kriptovaliutinis vajus nuslobo ir viso to reikalo vertė pasiekė logišką galą. Tačiau męs gyvenam post kriptovaliutiniam pasaulyje ir dar liko visai panaudotinos hardwarės. Vienoje vietoje buvo daug tokio gėrio- iki 70kW elektros imdavo iš elektros įvado. Dabar, kai visa tai nelabai reikalinga, galima įrangą panaudoti eksperimentams. Todėl pasiskolinau vieną komplektą pasižaidimui. Tiesiogine prasme ir nelabai.

RT580 crypto leftovers
Nuotraukoje matosi, kad vienos video plokštės (Radeon RX580 Nitro+ 8G) jau nėra, nes ji įsukta į mano naminį kompą. Nes aš taip ir nenusipirkau naujos video plokštės poto kai sudegė manoji.
Read the rest of this entry »

AVR92: Kiniškas rotary encoder

December 8th, 2018

Va kartais internetas nepadeda. Prireikė į vieną projektą sudėti valdymui rotary encoderį. Tą su sukiojama rankenėle. Projekto sąlygos, kad tas enkoderis bus pats prasčiausias kiniškas. Ir jokios papildomos hardwarės. Tingėjau programuoti pats, ir pamaniau, kad tikrai kas nor pridėjo visokiausių pavyzdukų AVR (ir ne tik) kontroleriams. Aha, pridėti kalnai, bet visi kopypaste vienas nuo kito.

Išsiskiria keli variantai:
1. Naudojamas INT ant MCU kojos (LH) ir patikrinama kita enkoderio koja. Ir tas pats su kita koja. Sunaudojami du INT. Galima ir INT nuo vienos kojos, bet reikia tikrinti LH ir HL variantus. Viskas gerai teoriškai arba naudojant optinius enkoderius. Naudojant kiniškus, mechaninius- daugybė trukšmo nuo persijunginėjimų ir rezultate kalnas pertraukimu ir falšyvi suveikimai. Praktikoje- enkoderis pavirsta atsitiktinių skaičių generatorium.
2. Naudojamas main loop amžinas ciklas ir daroma viską softwariškai. Kad apsisaugoti nuo kontaktų kibirkščiavimo dedami programiniai uždelsimai. Kas suėda procesoriaus ciklus.
3. Ir dar yra per taimerį, arduino bibliotekos kurios source supranta tik cpp fanatai ir šiaip vartojantys kokią žolę. Aišku, naudojant aukšto lygio arduino makro programavimą viskas tikriausiai veikia. Bet kai reikia daryti optimizuotą ir eksportuojamą kodą prasideda nesamonės.

Todėl susinervinau ir pasirašiau savo variantą. Veikimas supaprastintas visiškai ir eina per taimerį. Taimerio greitis kažkur 200Hz (0.005s). Toks greitis kaip tink tinka mano naudojamam enkoderiui ir protingam sukimo greičiui. Panaudojus per didelį sukimo greitį enkoderis dažniausiai praleidžia impulsus, gal net ir sustoja ir kartais pavaro ne į tą pusę. Tačiau sukant normaliai arba labai lėtai viskas gerai veikia.

ISR(TIMER1_COMPA_vect)
{
unsigned char d,a,b;

d=PIND & 0b00001100;
if(d != old_d)
{
a=0; b=0;
if(d & 0b00000100) a=1;
if(d & 0b00001000) b=1;

if(inta==0 && a==1) rotar=rotar+b;
if(intb==0 && b==1) rotar=rotar-a;

inta=a;
intb=b;
old_d=d;
}
}


Veikimas paprastas- pirmiausia pasitikrinam, ar kas nors iš esmės pakito (old_d) ir jei nieko nebuvo, tai tepam slides, nes reikia taupyti MCU. O jei jau pasikeitė, tai analizuojamės. Aišku reikėtu nenaudoti to “d & 0b00000100″, bet aš dar nenusprendžiau, kas bus toliau. Ir aišku, kintamieji “rotar", “old_d", “inta" ir “intb" yra globalūs ir “volatile".

Unhappy Tikbalang