Мазмуну:
- 1 -кадам: ADC архитектурасы
- 2 -кадам: Ички микросхема
- 3 -кадам: Тышкы микросхема
- 4 -кадам: I2C окуу инструкциялары
- 5 -кадам: Жыйынтыктар
Video: ADC учурдагы сезимин кантип жасоо керек: 5 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:39
Бул Нускамада биз SLG46855Vде 8 биттик аналогдук-санариптик конвертерди (ADC) кантип ишке ашырууну сүрөттөп беребиз, ал I2C аркылуу MCU менен жүктөмдүн агымын жана интерфейсин сезе алат. Бул дизайн амперметрлер, мүчүлүштүктөрдү аныктоо тутумдары жана күйүүчү май өлчөгүчтөрү сыяктуу ар кандай учурдагы сезүү колдонмолору үчүн колдонулушу мүмкүн.
Төмөндө биз ADC учурдагы сезимин түзүү үчүн чечим кантип программаланганын түшүнүү үчүн керектүү кадамдарды сүрөттөдүк. Бирок, эгер сиз программалоонун жыйынтыгын алууну кааласаңыз, GreenPAK программасын жүктөп алыңыз, буга чейин бүткөн GreenPAK Дизайн Файлын көрүңүз. GreenPAK Development Kitти компьютериңизге сайыңыз жана ADC учурдагы сезимин түзүү үчүн программаны басыңыз.
1 -кадам: ADC архитектурасы
ADC негизинен аналогдук салыштыргычтан жана Digital-to-Analog Converter (DAC) дан турат. Салыштыргыч DAC чыгаруу чыңалуусуна каршы кирүү чыңалуусун сезет, андан кийин DAC киргизүү кодун көбөйтүү же азайтуу керекпи, ошону көзөмөлдөйт, DAC чыгаруу киргизүү чыңалуусуна жакындайт. Натыйжада DAC киргизүү коду ADC санарип чыгаруу коду болуп калат.
Биздин ишке ашырууда биз импульстун модуляциясы (PWM) көзөмөлдөгөн резистор тармагын колдонуп DAC түзөбүз. Биз жонокой GreenPAKти колдонуп, так санарип башкарылуучу PWM чыгарууну түзө алабыз. PWM чыпкаланганда биздин аналогдук чыңалууга айланат жана натыйжалуу DAC катары кызмат кылат. Бул ыкманын айырмаланган артыкчылыгы - бул нөлдүк кодго жана толук масштабга (эквиваленттүү түрдө алмаштыруу жана киреше) туура келген чыңалууларды жөн эле резистордун маанилерин тууралоо аркылуу коюу оңой. Мисалы, колдонуучу идеалдуу түрдө нөлдүк кодду температурасы сенсорунан 4.3 Вго туура келген (0 мкА) жана 3.9 Вга туура келген 1000 мкА толук масштабдуу кодду окугусу келет (1-таблица). Бул оңой эле бир нече резистордун маанисин коюу менен ишке ашырылат. ADC диапазону кызыктыруучу сенсордун диапазонуна дал келсе, биз ADC чечимин эң көп колдонобуз.
Бул архитектуранын дизайнын кароо, ички PWM жыштыгы, анын башкаруу циклинин начар жүрүм -турумун алдын алуу үчүн, ADC жаңыртуу ылдамдыгынан алда канча ылдамыраак болушу керек. Жок дегенде ал 256га бөлүнгөн ADC маалыматын эсептөөчү сааттан узунураак болушу керек.
2 -кадам: Ички микросхема
Ийкемдүү ADC Dialog Semiconductor AN-1177де көрсөтүлгөн дизайнга негизделген. SLG46855те 25 МГц сааты бар болгондуктан, ADC эсептегичти иштетүү үчүн сааттын ылдамдыгы 1 МГцтен 12,5 МГцке чейин көбөйтүлгөн. Бул жакшыраак үлгү чечүү үчүн бир топ тезирээк жаңыртуу ылдамдыгын берет. LUT сааттын ADC маалымат сааты өзгөртүлгөн, ошондуктан PWM DFF төмөн болгондо 12.5 МГц сигнал аркылуу өтөт.
3 -кадам: Тышкы микросхема
Сырткы резистор жана конденсатор тармагы PWMди аналогдук чыңалууга айландыруу үчүн 1 -сүрөттө көрсөтүлгөн схемада көрсөтүлгөндөй колдонулат. Маанилер түзмөк сезе турган максималдуу токтун максималдуу чечилиши үчүн эсептелет. Бул ийкемдүүлүккө жетүү үчүн, VDD менен жерге параллель R1 жана R2 каршылыгын кошобуз. Резистор бөлүүчү VBATны чыңалуу диапазонунун төмөнкү жагына бөлөт. Күтүлгөн минималдуу VBAT үчүн бөлүүчү катышы 1 теңдемесин колдонуу менен чечилиши мүмкүн.
4 -кадам: I2C окуу инструкциялары
1 -таблица CNT0до сакталган маалыматтарды кайра окуу үчүн I2C буйрук структурасын сүрөттөйт. I2C буйруктары баштоо битин, башкаруу байтын, сөздүн дарегин, окуу битин жана токтотуу битин талап кылат.
CNT0 эсептелген маанини кайра окуу үчүн мисал I2C төмөндө жазылган:
[0x10 0xA5] [0x11 R]
Кайра окула турган сан ADC кодунун мааниси болот. Мисал катары, Arduino коду Dialog веб -сайтындагы бул тиркеменин ZIP файлына киргизилген.
5 -кадам: Жыйынтыктар
ADC учурдагы сезүү дизайнынын тууралыгын текшерүү үчүн, берилген жүктөө агымы менен VDD деңгээлиндеги өлчөнгөн маанилер теориялык мааниге салыштырылган. Теориялык ADC баалуулуктары 2 барабардыгы менен эсептелген.
ADC мааниси менен байланышкан ILOAD 3 теңдемеси менен табылган.
Кийинки жыйынтыктар үчүн мен 3 -таблицада көрсөтүлгөн бул компоненттин баалуулуктарын колдондум.
ILOAD конверсиясына ADC маанисинин чечилиши 2 -таблицада өлчөнгөн баалуулуктар менен 3 -теңдеменин жардамы менен жана ADC мааниси 1 деп коюлса, 3.9 V болгон VBAT менен чечим 4.96 мкА/див болот.
ADC учурдагы сезүү схемасын 3.6 V минималдуу VDD деңгээлине чейин максималдуу ток 1100 мкА жана 381 Ω сезүү резистору менен оптималдаштыруу үчүн, идеалдуу бөлүүчү коэффициент 1 теңдемеге негизделген 0.884 болмок. 2, чыныгы бөлүүчү 0,876 бөлүүчү коэффициентке ээ. Бул бир аз азыраак болгондуктан, ал бир аз чоңураак токтун диапазонуна мүмкүндүк берет, ошондуктан ADC баалуулуктары толук диапазонго жакын, бирок толуп кетпейт. Чыныгы бөлүүчү мааниси 4 теңдемеси менен эсептелет.
Жогоруда (2-6-сүрөттөр, 4-6-таблицалар) үч чыңалуу деңгээлинде чынжырдын өлчөөлөрү бар: 4.3 В, 3.9 В жана 3.6 В. Теориялык баалуулуктар эң жакын бүтүн санга тегеректелген. Үч чыңалуу деңгээлиндеги айырмачылыктарды салыштыруу үчүн кыскача график бар. Кийинчерээк ар кандай чыңалуу деңгээлдеринде теориялык ADC баалуулуктары менен жүк агымынын ортосундагы корреляцияны көрсөтүүчү график бар.
Жыйынтык
Түзмөк үч чыңалуу денгээлде сыналган: 3.6 V, 3.9 V жана 4.3 V. Бул чыңалуу диапазону анын номиналдык деңгээлине чейин толук литий -иондук батареяны моделдейт. Үч чыңалуу деңгээлинин ичинен, шайман, адатта, 3,9 В тандаган тышкы чынжыр үчүн дагы так болгон. Ченелген жана теориялык ADC маанилеринин ортосундагы айырма 700 - 1000 мкА жүк агымдарында 1 гана ондук өчүрүү болгон. Берилген чыңалуу диапазонунда, өлчөнгөн ADC мааниси эң начар учурда номиналдык шарттардан 3 ондук пунктка жогору болгон. Ар кандай VDD чыңалуу деңгээлин оптималдаштыруу үчүн резистор бөлүштүргүчкө кошумча түзөтүүлөрдү киргизсе болот.
Сунушталууда:
DIY кантип кооз саатты жасоо керек - StickC - Оңой жасоо: 8 кадам
DIY кантип кооз саатты жасоо керек - StickC - Оңой жасалат: Бул окуу куралында биз ESP32 M5Stack StickCти Arduino IDE жана Visuino менен ЖКда убакытты көрсөтүү үчүн кантип программалоону, ошондой эле StickC баскычтарын колдонуу менен убакытты кантип коюуну үйрөнөбүз
Linux жүктөө дискин кантип түзүү керек (жана аны кантип колдонуу керек): 10 кадам
Linux жүктөө дискин кантип түзүү керек (жана аны кантип колдонуу керек): Бул Linuxту кантип баштоо керектиги жөнүндө жөнөкөй маалымат, тактап айтканда Ubuntu
Mac Терминалын кантип колдонуу керек жана Негизги функцияларды кантип колдонуу керек: 4 кадам
Mac Терминалын кантип колдонуу керек жана Негизги функцияларды кантип колдонуу керек: Биз сизге MAC Терминалын кантип ачууну көрсөтөбүз. Биз ошондой эле сизге терминалдын ичинде ifconfig, каталогдорду өзгөртүү, файлдарга кирүү жана arp сыяктуу бир нече мүмкүнчүлүктөрдү көрсөтөбүз. Ifconfig сизге IP дарегиңизди жана MAC жарнагыңызды текшерүүгө мүмкүндүк берет
Raspberry Pi менен Twitter сезимин талдоо: 3 кадам (сүрөттөр менен)
Raspberry Pi менен Twitter сезим анализи: Сезим анализи деген эмне жана ага эмне үчүн кам көрүү керек? ичинде
Ыкчам өрт режимин кантип бекер жасоо керек (сизге болгону отвертка керек): 10 кадам
Ыкчам өрт режимин кантип акысыз жасоо керек (сизге керектүү нерсенин баары - бул отвертка): Бүгүн мен сизге xbox жабдууларында тез өрт режимин кантип жасоону үйрөтөм: коопсуздук тешиги бар бир торкс T8 бурагыч ЖЕ кичине колдонсоңуз болот жалпак баш. Бул жолу мен Titan Torx t8 колдонуп жатам, аны коопсуздук тешиги менен Autozoneдон сатып алса болот