Innehållsförteckning:
- Steg 1: ADC -arkitektur
- Steg 2: Intern krets
- Steg 3: Extern krets
- Steg 4: I2C Läs instruktioner
- Steg 5: Resultat
Video: Hur man gör ADC Current Sense: 5 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:39
I denna instruktionsbok kommer vi att beskriva hur man implementerar en 8-bitars analog-till-digital-omvandlare (ADC) i SLG46855V som kan känna lastström och gränssnitt med en MCU via I2C. Denna design kan användas för olika strömavkänningstillämpningar såsom ammetrar, feldetekteringssystem och bränslemätare.
Nedan beskrivs stegen som behövs för att förstå hur lösningen har programmerats för att skapa ADC -strömkänslan. Men om du bara vill få resultatet av programmeringen, ladda ner GreenPAK -programvara för att se den redan färdiga GreenPAK -designfilen. Anslut GreenPAK Development Kit till din dator och tryck på programmet för att skapa ADC aktuell känsla.
Steg 1: ADC -arkitektur
ADC består i huvudsak av en analog komparator och en Digital-to-Analog Converter (DAC). Komparatorn känner av ingångsspänningen mot DAC -utspänningen och styr därefter om DAC -ingångskoden ska ökas eller minskas, så att DAC -utgången konvergerar till ingångsspänningen. Den resulterande DAC -ingångskoden blir den digitala ADC -utgångskoden.
I vår implementering skapar vi en DAC med hjälp av ett pulsbreddsmodulation (PWM) styrt motståndsnätverk. Vi kan enkelt skapa en exakt digitalt styrd PWM -utgång med GreenPAK. PWM när den filtreras blir vår analoga spänning och fungerar därmed som en effektiv DAC. En klar fördel med detta tillvägagångssätt är att det är enkelt att ställa in spänningarna som motsvarar nollkod och full skala (motsvarande förskjutning och förstärkning) genom att helt enkelt justera motståndsvärden. Till exempel vill en användare idealiskt läsa nollkod från en temperaturgivare utan ström (0 µA) motsvarande 4,3 V, och fullskalig kod vid 1000 µA motsvarande 3,9 V (tabell 1). Detta implementeras enkelt genom att helt enkelt ställa in några motståndsvärden. Genom att låta ADC -intervallet matcha sensorintervallet använder vi ADC -upplösningen mest.
En designhänsyn för denna arkitektur är att en intern PWM -frekvens måste vara mycket snabbare än ADC -uppdateringshastigheten för att förhindra underdämpat beteende hos dess styrslinga. Åtminstone bör det vara längre än ADC -dataräknarklockan dividerat med 256. I denna design är ADC -uppdateringsperioden satt till 1,3312 ms.
Steg 2: Intern krets
Den flexibla ADC är baserad på designen som presenteras i Dialog Semiconductor AN-1177. Klockhastigheten ökas från 1 MHz till 12,5 MHz för att klocka ADC -räknaren eftersom SLG46855 har en 25 MHz klocka tillgänglig. Detta möjliggör en mycket snabbare uppdateringshastighet för finare provupplösning. LUT -klockan för ADC -dataklockan ändras så att den passerar genom 12,5 MHz -signalen när PWM DFF är låg.
Steg 3: Extern krets
Ett externt motstånd och kondensatornätverk används för att omvandla en PWM till en analog spänning som visas i kretsschemat i figur 1. Värdena beräknas för maximal upplösning för den maximala ström som enheten känner av. För att uppnå denna flexibilitet lägger vi till motstånd R1 och R2 parallellt med VDD och jord. En motståndsdelare delar ner VBAT till den låga sidan av spänningsområdet. Delningsförhållandet för ett förväntat minimum VBAT kan lösas med ekvation 1.
Steg 4: I2C Läs instruktioner
Tabell 1 beskriver I2C -kommandostrukturen för att läsa tillbaka data lagrade i CNT0. I2C -kommandona kräver en startbit, kontrollbyte, ordadress, läsbit och stoppbit.
Ett exempel I2C -kommando för att läsa tillbaka CNT0 -räknat värde skrivs nedan:
[0x10 0xA5] [0x11 R]
Det räknade värdet som läses tillbaka är ADC -kodvärdet. Som ett exempel ingår en Arduino -kod i ZIP -filen för denna applikationsanteckning på Dialogs webbplats.
Steg 5: Resultat
För att testa noggrannheten i ADC -strömavkänningsdesignen jämfördes mätvärdena vid en given lastström och VDD -nivå med ett teoretiskt värde. De teoretiska ADC -värdena beräknades med ekvationen 2.
ILOAD som korrelerar med ett ADC -värde återfinns med ekvationen 3.
För följande resultat använde jag dessa komponentvärden som visas i tabell 3.
Upplösningen av ADC -värdet till ILOAD -konvertering kan beräknas med hjälp av ekvation 3 med de uppmätta värdena i tabell 2 och ADC -värdet inställt på 1. Med en VBAT på 3,9 V är upplösningen 4,96 µA/div.
För att optimera ADC -strömavkänningskretsen till en minsta VDD -nivå på 3,6 V med en maximal ström på 1100 µA och ett 381 Ω avkänningsmotstånd skulle den idealiska avdelningskoefficienten vara 0,884, baserat på ekvation 1. Med värdena i tabellen 2 har den faktiska avdelaren en avdelningskoefficient på 0,876. Eftersom detta är något mindre kommer det att möjliggöra ett något större belastningsströmintervall så att ADC -värdena ligger nära hela intervallet men inte kommer att flyta över. Det faktiska delningsvärdet beräknas med ekvationen 4.
Ovan (figurerna 2-6, tabellerna 4-6) visas mätningarna av kretsen vid tre spänningsnivåer: 4,3 V, 3,9 V och 3,6 V. Varje nivå visar en graf som visar skillnaden mellan de uppmätta och teoretiska ADC-värdena. Teoretiska värden avrundas till närmaste heltal. Det finns en sammanfattande graf för att jämföra skillnaderna vid de tre spänningsnivåerna. Därefter finns en graf som visar korrelationen mellan de teoretiska ADC -värdena och belastningsströmmen vid de olika spänningsnivåerna.
Slutsats
Enheten testades vid tre spänningsnivåer: 3,6 V, 3,9 V och 4,3 V. Området för dessa spänningar modellerar ett fullt litiumjonbatteri som laddas ur till sin nominella nivå. Av de tre spänningsnivåerna observeras att enheten vanligtvis var mer exakt vid 3,9 V för den valda externa kretsen. Skillnaden mellan de uppmätta och teoretiska ADC -värdena var endast 1 decimalvärde av vid lastströmmar på 700 - 1000 µA. Vid det angivna spänningsområdet var de uppmätta ADC -värdena 3 decimaler över nominella förhållanden i värsta fall. Ytterligare justeringar av motståndsdelaren kan göras för att optimera olika VDD -spänningsnivåer.
Rekommenderad:
Hur man gör en HIGH Current Driver för en stegmotor: 5 steg
Hur man gör en HÖG strömdrivrutin för en stegmotor: här kommer vi att se hur man gör en stegmotordrivrutin med hjälp av Toshibas TB6560AHQ -styrenhet. Detta är en fullfjädrad controller som bara behöver 2 variabler som ingång och det gör allt arbete. Eftersom jag behövde två av dessa har jag gjort dem båda med
Hur man skapar en Linux -boot -enhet (och hur man använder den): 10 steg
Hur man skapar en Linux Boot Drive (och hur man använder den): Detta är en enkel introduktion om hur man kommer igång med Linux, särskilt Ubuntu
Hur man gör en drönare med Arduino UNO - Gör en quadcopter med mikrokontroller: 8 steg (med bilder)
Hur man gör en drönare med Arduino UNO | Gör en Quadcopter Med Microcontroller: Introduktion Besök min Youtube -kanal En Drone är en mycket dyr gadget (produkt) att köpa. I det här inlägget ska jag diskutera, hur gör jag det billigt ?? Och hur kan du göra din egen så här till billigt pris … Tja i Indien alla material (motorer, ESC
HUR MAN GÖR ARDUINO NANO/MINI - Hur man bränner bootloader: 5 steg
HUR MAN GÖR ARDUINO NANO/MINI | Hur man bränner bootloader: I denna instruktionsbok kommer jag att visa dig hur man gör en Arduino MINI från Scratch.Förfarandet som skrivs i denna instruktion kan användas för att göra alla arduino -brädor för dina anpassade projektkrav.Se videon för bättre förståelse
Hur man gör en morföräldrars kalender & Klippbok (även om du inte vet hur du ska klippbok): 8 steg (med bilder)
Hur man gör en morföräldrars kalender & Klippbok (även om du inte vet hur du ska klippbok): Detta är en mycket ekonomisk (och mycket uppskattad!) Semestergåva till morföräldrar. Jag gjorde 5 kalendrar i år för mindre än $ 7 styck. Material: 12 fina bilder på ditt barn, barn, syskonbarn, brorson, hundar, katter eller andra släktingar 12 olika bitar