Sisukord:
- Samm: plokkskeem
- 2. samm: toimimispõhimõte
- 3. samm: loogika rakendamine
- 4. samm: ummikseisu lahendamine
- 5. samm: seadme konfigureerimine - Matrix0 vooluahel
- 6. samm: seadme konfigureerimine - SPI kellaaja loogika
- 7. samm: seadme konfigureerimine - Matrix0 komponentide omadused
- 8. samm: seadme konfigureerimine - maatriksi1 ahel
- 9. samm: seadme konfigureerimine - 3 -bitine kahendloendur
- 10. samm: seadme konfigureerimine - 3 -bitine võrdlusloogika
- 11. samm: seadme konfigureerimine - digitaalne võrdlusloogika ja ajutine register
- 12. samm: seadme konfigureerimine - maatriksi1 komponentide omadused
- 13. samm: tulemused
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
Juhtimissüsteemid ja nendega seotud seadmed tegelevad mitme toiteallikaga, näiteks eelpingega või patareidega, ning peavad jälgima antud komplekti kõrgeimat (või madalaimat) joont.
Näiteks koormuse vahetamine mitme akuga süsteemis eeldab, et süsteem jälgib aku massiivi minimaalset või maksimaalset pinget (max või min konkreetse lülitusalgoritmi funktsioonina) ja suunab koormuse dünaamiliselt kõige sobivam allikas reaalajas. Teise võimalusena võib süsteem nõuetekohaseks laadimiseks vaja ajutiselt lahti ühendada madalaima pingega aku.
Teine näide on kaasaegne päikeseenergia süsteem, kus iga päikesepaneel on varustatud kallutusmehhanismiga ja päikese jälgimisahelaga (viimane annab paneeli orienteerimiseks teavet Päikese asukoha kohta). Maksimaalse pinge teabe abil saab iga päikesepaneeli positsiooni peenhäälestada, tuginedes stringipaneelile, mis tegelikult annab kõrgeima väljundpinge, saavutades seega suurepärase võimsuse optimeerimise.
On mitmeid erinevaid kaubamärke kaubanduslikke IC -sid (peamiselt mikrokontrollereid), mis põhimõtteliselt suudavad rakendada maksimaalse pinge järgijat. Need nõuavad aga programmeerimist ja on vähem kuluefektiivsed kui segasignaali lahendus. Dialog GreenPAKTM disaini täiendamine võib positiivselt mõjutada disaini taskukohasust, suurust ja modulaarsust. Selle disaini eeliseks on nii analoog- kui ka digitaalskeemi ühendamine üheks kiibiks.
Selles juhendis rakendatakse kaheksa erineva allika vahel maksimaalse (või lõpuks min) pingeotsija rakendamiseks vajalik analoog-esipaneel ja digitaalne loogika.
8-kanalilise analoogpingemonitori rakendamiseks kasutatakse SLG46620G.
Allpool kirjeldasime samme, mida on vaja mõista, kuidas lahendus on programmeeritud 8-kanalilise analoogpingemonitori loomiseks. Kui aga soovite lihtsalt programmeerimise tulemust saada, laadige GreenPAKi tarkvara alla, et vaadata juba valminud GreenPAK disainifaili. Ühendage GreenPAK arenduskomplekt arvutiga ja vajutage programmi, et luua 8-kanaliline analoog max/min pingemonitor.
Samm: plokkskeem
Joonis 1 näitab rakendatud süsteemi üldist diagrammi.
Kuni 8 muutuva pingeallikaga string on multipleksitud ja liidestatud GreenPAKi ADC -mooduliga, mis on ühendatud kohandatud sisekujundusega, mis on võimeline valima teiste suhtes kõrgeima pingega allika. Sisemine loogika väljastab selle teabe kuvamiseks või edasiseks töötlemiseks.
Disain põhineb GreenPAK SLG46620G tootel, sest see sisaldab kõiki rakenduse jaoks vajalikke analoog- ja digitaalseid ehitusplokke. Selle teostuse korral skaneeritakse massiivi ADG508 analoog multiplekseri abil, mida juhib otse GreenPAK IC.
Väljundteave on 3-bitine digitaalne number, mis vastab pingeallika numbrile maksimaalse pinge korral. Otsene viis selle teabe saamiseks on numbri näitamine 7-segmendilise ekraani abil. Seda saab hõlpsasti saavutada, liites SLG46620G digitaalse väljundi 7-segmendilise kuvaridraiveriga, näiteks viites kirjeldatud GreenPAK-lahendusega või tavalise 74LS47 IC-ga.
Esitatud skeem otsib maksimaalset pinget. Kujunduse teisendamiseks minimaalse pinge leidjaks tuleb analoog multiplekseri ja GreenPAK analoogsisendi vahele lisada lihtne eelkonditsioneerimisahel, lahutades multiplekseri väljundi 1 V võrdluspingest.
2. samm: toimimispõhimõte
Disaini eesmärk on valida maksimaalse pingega allikas, seetõttu skaneeritakse kogu massiivi, säilitades samal ajal viimase maksimumväärtuse ja võrreldes seda järgmise sisendväärtusega (mis kuulub skaneerimise järgmisse pingeallikasse).
Järgnevalt nimetame täielikku multipleksimisjärjestust kõikides sisendites kui „skannimist” või „tsüklit”.
Kahe väärtuse võrdlemist ei tehta ACMP komponentide abil (mis on saadaval SLG46620G -s), vaid pigem DCMP -mooduli abil, kui väärtused on vastavalt digiteeritud. See on täiustatud ja täiustatud tehnika, mida käsitleti esmalt viites.
Joonis 2 näitab, kuidas SLG46620G on selle disaini jaoks üles ehitatud.
Analoogsisendisignaal läheb ADC sisendisse PGA komponendi kaudu, mille komplekt on Gain 1. Võimalikud on ka erinevad võimendusseaded, et leida parim vastavus esipaneeli konditsioneerimiselektroonikaga, mis on ette nähtud sisendpinge 0-1 V kaardistamiseks. GreenPAK ADC mooduli valik.
ADC töötab üheotsarežiimis ja teisendab analoogsignaali 8-bitiseks digitaalkoodiks, mis seejärel edastatakse DCMP-moodulisse. Digitaalne kood sisestatakse ka SPI -plokki, mis on konfigureeritud kui ADC/FSM -puhver, kus saab salvestada digitaalse koodi ja see ei muutu enne, kui järgmine impulss jõuab SPI CLK sisendisse. Pange tähele, et spetsiaalne loogikaplokk juhib SPI CLK sisendit. Uurime seda osa hiljem, kuna see on nõuetekohase toimimise eest vastutav „tuum”. Uus digitaalne kood salvestatakse SPI moodulisse ainult siis, kui see kuulub tegeliku maksimaalse sisendpinge hulka.
DCMP komponenti kasutatakse praeguste ADC andmete võrdlemiseks viimase võitjaga (see on viimane leitud maksimum), mis on salvestatud SPI plokki. See genereerib OUT+ väljundis impulsi, kui uued ADC andmed on suuremad kui eelmine. Kasutame OUT+ signaali SPI ploki värskendamiseks uue võitjaga.
Globaalne kellasignaal juhib ADC konversioone ja üldisi ajastusi. Kui teisendus on tehtud, impulsseerib ADC INT väljundsignaal, mis on õigeaegselt kooskõlastatud ADC paralleelse andmeväljundiga. Kasutame INT väljundit ka 3-bitise kahendloenduri suurendamiseks, mille DFF-id rakendavad Matrix1-s, mis on kasulik kolmel põhjusel:
1. Loenduri väljundliinid adresseerivad välist analoog multiplekserit, teenindades seega ADC järgmist sisendpinget;
2. Loend külmutatakse 3-bitisesse registrisse (rakendatud Matrix1-s), et salvestada ajutine võitja skannimise ajal;
3. Loend dekodeeritakse, et värskendada teist 3-bitist registrit (rakendatud Matrix0-s) pärast skannimise lõpetamist.
3. samm: loogika rakendamine
ADC moodul pakub järjestikku määramata ajaks järjestikku teisendatud andmeid kõigi sisendpingete kohta. Kui multiplekser on adresseeritud 0b111 (kümnendkoht 7), rullub loendur väärtusele 0b000 (kümnendkoht 0), alustades seega sisendpingete uut skannimist.
Skaneerimise ajal genereeritakse ADC INT väljundsignaal, kui paralleelne andmeväljund on kehtiv. Kui see signaal pulseerib, peab analoog multiplekser lülituma järgmisele sisendile, pakkudes PGA -le vastavat pinget. Seetõttu on ADC INT väljund joonise 2 3-bitise binaarloenduri otsene kellaaja signaal, mille 3-bitine paralleelne väljundsõna adresseerib otseselt välist analoog multiplekserit (joonisel 1 “V select”).
Vaatleme nüüd näidet, kus sisendpingetel peaks olema järgmised seosed:
a) V0 <V1 <V2
b) V2> V3, V4
c) V5> V2
Joonis 3 kujutab peamisi signaale, mis on seotud maksimaalse otsustusmehhanismiga.
Kuna andmed salvestatakse lõpuks SPI puhverregistrisse sünkroonselt INT -impulssidega, on olemas võrdlusaken, kus SPI -puhvri sisu võrreldakse järgmise ADC -teisendustulemusega. See konkreetne ajastus toob kaasa OUT+ impulsside genereerimise DCMP väljundis. Neid impulsse saame kasutada uute väärtuste laadimiseks SPI puhverregistrisse.
Nagu nähtub eelmise joonise SPI puhvri andmerealt, sisaldab SPI register aja jooksul alati 8 sisendi suurimat väärtust ja seda uuendatakse ainult siis, kui DCMP moodul tuvastab suurema väärtuse (viidates DCMP -le) OUT+ graafiku väljundliin, põhjustavad puuduvad impulsid, et V2 jääb registris lukustatuks, kuni võrrelda V5 -ga).
4. samm: ummikseisu lahendamine
Kui rakendatud loogika oleks täpselt selline, nagu eespool kirjeldatud, on selge, et satume ummikseisu: süsteem on võimeline tuvastama ainult kõrgemaid pingeid kui see, mis vastab SPI puhverregistrisse salvestatule.
See kehtib ka juhul, kui see pinge väheneb ja siis muutub teine sisend, mis on sellest madalam, kõrgeimaks: seda ei tuvastata kunagi. Seda olukorda selgitatakse paremini joonisel 4, kus on ainult 3 sisendpinget selgust.
2. iteratsiooni ajal V3 langeb ja V1 on tegelik maksimaalne pinge. Kuid DCMP -moodul ei anna impulsi, kuna SPI puhverregistrisse salvestatud andmed (mis vastavad 0,6 V -le) on suuremad kui V1 -le (0,4 V) vastavad andmed.
Seejärel käitub süsteem absoluutse maksimumotsijana ja ei värskenda väljundit õigesti.
Tore viis sellest probleemist üle saamiseks on sundida andmed SPI puhverregistrisse uuesti laadima, kui süsteem lõpetab kõigi kanalite täieliku küsitlustsükli.
Tegelikult, kui selle sisendi pinge on endiselt kõrgeim, ei muutu midagi ja juhtimine läheb turvaliselt edasi (viidates ülaltoodud joonisele 4, see on silmuste korduste 0 ja 1 puhul). Teisest küljest, kui selle sisendi pinge langeb juhuslikult väärtuseni, mis on väiksem kui teine sisend, annab väärtuse uuesti laadimine võimaluse DCMP moodulile toota OUT+ impulsi, kui võrrelda seda uue maksimaalse väärtusega (see on silmuste korduste 2 ja 3 puhul).
Probleemi lahendamiseks on vaja loogikaahelat. See peab genereerima SPI komponendile kella signaali, kui silmus jõuab tegeliku maksimaalse sisendini, sundides seega uuendatud andmesõna SPI puhverregistrisse uuesti laadima. Seda arutatakse allpool punktides 7.2 ja 7.6.
5. samm: seadme konfigureerimine - Matrix0 vooluahel
SLG46620G -l on kaks maatriksplokki, nagu on näidatud joonisel 2. Järgmised joonised näitavad vastavaid seadme konfiguratsioone.
Vooluahela ülemine osa on silmuste register, mis on realiseeritud 3 DFF -iga (DFF0, DFF1 ja DFF2). Pärast iga sisend multiplekseri tsüklit värskendatakse, et saata 7-segmendilisele kuvaridraiverile „võitja” binaararv, mis on viimase skaneerimise kõrgeima pingega sisend. Nii DFF -ide kell kui ka andmed pärinevad Matrix1 -s rakendatud loogikast vastavalt pordi P12, P13, P14 ja P15 kaudu.
Alumine osa on analoog -esiosa, mille sisend on pin 8 ja PGA võimendusega x1. ADC INT väljund läheb nii SPI kellaaja loogikale kui ka Matrix1 -le pordi P0 kaudu, kus see toimib rakendatud loenduri kella signaalina.
ADC ja SPI paralleelsed andmeväljundid on vastavalt märgistatud NET11 ja NET15, et need ühendada Matrix1 DCMP komponendiga.
6. samm: seadme konfigureerimine - SPI kellaaja loogika
Nagu eelnevalt jaotises „Loogiline rakendamine” märgitud, uuendatakse SPI puhverregistrit iga kord, kui tegeliku salvestatud väärtuse ja uute ADC teisendusandmete võrdlus genereerib DCMP OUT+ väljundis impulsi.
Signaali terviklikkus on tagatud, kui see signaal on AND-ed koos ADC INT väljundiga. See väldib naelu ja vale käivitamist.
Samuti oleme rõhutanud, et ummikseisude vahelejätmiseks tuleb SPI puhvrit värskendada, kui tsükkel jõuab tegelike võitjaandmeteni.
Siis on mängus kolm signaali SPI õigeks kellaks:
1. ADC INT väljund (LUT0-IN1)
2. DCMP OUT+ väljund (LUT0-IN0 pordi P10 kaudu)
3. Loendus võrdub lukustussignaaliga (LUT0-IN2 pordi P11 kaudu)
Esimesed kaks on AND-red ja mõlemad OR-ed koos viimasega LUT0-s, mille rakendamine on konfigureeritud nagu joonisel 6.
7. samm: seadme konfigureerimine - Matrix0 komponentide omadused
Joonised 7-10 näitavad Matrix0-le kuuluvate ülejäänud komponentide omaduste aknaid.
8. samm: seadme konfigureerimine - maatriksi1 ahel
9. samm: seadme konfigureerimine - 3 -bitine kahendloendur
Vooluahela ülemine osa sisaldab loogikaelemente, peamiselt 3-bitist kahendloendurit, mis on ADC INT väljundiga, nagu juba arutatud. See loendur on rakendatud üsna "tavalise" skeemiga, mis on näidatud joonisel 12.
See loendur on meie disainis realiseeritud Flip-Flops DFF9, DFF10, DFF11 ja INV1, LUT4, LUT8 abil. DFF9 väljund on LSB, samas kui DFF11 on MSB, nagu on näidatud joonisel 13.
LUT4 on konfigureeritud kui XOR, samas kui LUT8 täidab joonise 12 AND-XOR loogikat.
Loenduri väljundid lähevad kolmele digitaalsele väljundpoldile, et adresseerida välist analoog multiplekserit.
LUT10 dekodeerib loenduri koodi, kui skannimine on lõpule viidud, ja edastab impulsi Matrix0 -le DLY8 ja pordi P12 kaudu. See saavutatakse lihtsalt loenduri väljundite AND-sisestamisega, dekodeerides seega numbri 7 dec (0b111 binaarne, tsükli lõpp).
10. samm: seadme konfigureerimine - 3 -bitine võrdlusloogika
Joonisel 15 on kujutatud vooluahel, mida kasutatakse tuvastamiseks, kui silmus itereerub praegusel "võitja" aadressil. Sel juhul, nagu juba arutatud, peaks digitaalne impulss võimaliku ummikseisu lahendamiseks sundima praegust ADC tulemust uuesti laadima.
Võitja aadress salvestatakse Matrix1 ajutisse registrisse (vt allpool), praegune aadress väljastatakse aga binaarloenduri kaudu.
XNOR -väravad annavad tõelise (loogika 1 või „kõrge”) väljundi, kui mõlemad sisendid on võrdsed. Selle signaali andmine kõigile bittidele (LUT9) annab meile impulsi, kui mõlemad kahendkoodid on samad. Üksikasjad XOR -väravate kui pariteedi kontrollija kohta leiate viitest.
Signaal „Counter-equals-Latch” edastatakse Matrix0-le pordi P11 kaudu.
11. samm: seadme konfigureerimine - digitaalne võrdlusloogika ja ajutine register
Joonise 11 alumine osa (joonisel 16 esile tõstetud) näitab DCMP plokki, selle kujunduse otsustamisosa.
DFF6, 7 ja 8 moodustavad 3-bitise registri ajutise sisendnumbri "võitja" salvestamiseks, kui tsükkel töötab. Flip-Flopsi sisendiks on 3-bitised kahendloenduri väljundid, nagu on näha joonise 11 globaalses Matrix1 vooluringis, siin selguse huvides vahele jäetud.
Selle registri väljundid ei saa 7-segmendilist kuva otse juhtida, kuna siin salvestatud väärtus muutub skannimise ajal ja seda tuleks lugeda kehtivaks alles skannimise lõpus.
Sel põhjusel ühendatakse ajutised registriväljundid maatriksitevaheliste portide P13, P14 ja P15 kaudu Matrix0 silmuseregistriga.
Joonisel 16 on oluline jälgida, et ajutise registri kellaajaks on DCMP OUT+ väljund, kui ADC-SPI registrite võrdluse tulemuseks on leitud uus maksimum.
Sama OUT+ signaal edastatakse pordi P10 kaudu Matrix0, SPI CLK Logic.
12. samm: seadme konfigureerimine - maatriksi1 komponentide omadused
Joonised 17-19 näitavad Matrix1-le kuuluvate komponentide omaduste aknaid.
13. samm: tulemused
Rakenduse testimiseks on konstrueeritud hindamiskilbi prototüüp, kus 8 analoogsisendpinget saadakse TrimPotsiga takisti jagajate seeria abil (nagu on näidatud joonisel 20).
Kasutatav multiplekser on ADG508, osa, mis töötab ühe toiteallikaga (12 V).
Seitsme segmendi kuvaridraiver on 74LS47. See dekodeerib paralleelsisendisõna ja juhib otse ühise anoodiga 7-segmendilist ekraani.
Hindamisplaadil on 2x10 täisnurga pistik, mille saab ühendada otse GreenPAKi täiustatud arendusplatvormiga selle laiendusühenduses, nagu on näidatud joonisel 21.
Koos GreenPAKi täiustatud arendusplatvormiga on signaalide mõõtmine kiireks kontrollimiseks väga lihtne. Näiteks näitab joonis 22 signaalide komplekti (vastavalt CLOCK, ADC INT väljund ja DCMP OUT+ väljund), mis on jäädvustatud HP 54620A loogikaanalüsaatoriga. Lainekuju käivitab OUT+ signaali tõusev serv (skaalal, mis on märgistatud kui "A> B"), seega on see lainekuju püüdmine, kui analoogsisendite hulgas tuvastatakse uus maksimaalne pinge. Tegelikult saadi see, pöörates ühte hindamiskomisjoni TrimPotti, et suurendada joonisel 22 näidatud vastavat pinget.
Joonisel 23 on toodud hindamiskomisjoni skeem.
Järeldus
Selles juhendis rakendasime kaheksa kanaliga maksimaalse (või min) pingeotsija, mida kasutatakse mitme kanaliga juhtimissüsteemide ühise lisandina. Esitatud lähenemisviis kasutab GreenPAK komponentide täiustatud funktsioone ja näitab, kuidas on võimalik integreerida ühte kiibi analoog- ja digitaalfunktsiooni. Mitmed kaubanduslikud IC -d saab asendada Dialog GreenPAK -idega, et vähendada rakenduse suurust ja maksumust.