Мазмұны:

Arduino 3 -те өте төмен қуатты BLE 3 - Nano V2 ауыстыру - Rev 3: 7 қадамдары (суреттермен)
Arduino 3 -те өте төмен қуатты BLE 3 - Nano V2 ауыстыру - Rev 3: 7 қадамдары (суреттермен)

Бейне: Arduino 3 -те өте төмен қуатты BLE 3 - Nano V2 ауыстыру - Rev 3: 7 қадамдары (суреттермен)

Бейне: Arduino 3 -те өте төмен қуатты BLE 3 - Nano V2 ауыстыру - Rev 3: 7 қадамдары (суреттермен)
Бейне: Control 2 DC Motors with L298N module with potentiometer and 3 push buttons 2024, Қараша
Anonim
Arduino -дағы өте төмен қуатты BLE 3 бөлігі - Nano V2 ауыстыру - Rev 3
Arduino -дағы өте төмен қуатты BLE 3 бөлігі - Nano V2 ауыстыру - Rev 3
Arduino -дағы өте төмен қуатты BLE 3 бөлігі - Nano V2 ауыстыру - Rev 3
Arduino -дағы өте төмен қуатты BLE 3 бөлігі - Nano V2 ауыстыру - Rev 3
Arduino -дағы өте төмен қуатты BLE 3 бөлігі - Nano V2 ауыстыру - Rev 3
Arduino -дағы өте төмен қуатты BLE 3 бөлігі - Nano V2 ауыстыру - Rev 3

Жаңарту: 2019 жылдың 7 сәуірі - lp_BLE_TempHumidity -тің 3 -ші нұсқасы, pfodApp V3.0.362+көмегімен деректерді жіберу кезінде күн/уақыт графиктерін қосады.

Жаңарту: 24 наурыз 2019 ж. - lp_BLE_TempHumidity -тің 2 -ші нұсқасы, басқа сюжеттік опциялар мен i2c_ClearBus қосады, GT832E_01 қолдауын қосады

Кіріспе

Бұл оқулық, Redbear Nano V2 ауыстыру, 3 -ші бөлімнің 3 -ші бөлімі. Бұл осы жобаның 2 -нұсқасы. Revision 2 PCB монета ұяшығына және сенсорға орнатуды қамтиды, құрылысты жеңілдетеді және сенсордың айналасындағы ауа ағынын жақсартады, сонымен қатар оны тікелей күн сәулесінен қорғайды. 1 -нұсқа мұнда.

1 -бөлім - Arduino көмегімен өте төмен қуатты BLE құрылғыларын құру Arduino -ны nRF52 аз қуатты құрылғыларға кодтауды, бағдарламалау модулін және қоректену тогын өлшеуді қамтиды. Ол сондай -ақ nRF52 құрылғысына қосылу және басқару үшін мамандандырылған қуатты таймерлер мен компараторлар мен дебуфирленген кірістерді және pfodApp қолдануды қамтиды.

2 -бөлім - Өте төмен қуаттағы ылғалдылық мониторы Redbear Nano V2 модулін және Si7021 температура / ылғалдылық датчигін пайдаланып, қуаты төмен батарея / күн мониторын жасайды. Ол сонымен қатар Si7021 кітапханасын қуаты төмен етіп өзгертуді, BLE құрылғысын ағымдағы тұтынуды <29uA дейін азайтуды реттеуді және ұялы телефон үшін температура/ылғалдылықтың реттелетін дисплейін жобалауды қамтиды.

3 -бөлім - Redbear Nano V2 ауыстыру, бұл Nano V2 орнына басқа nRF52 модульдерін қолдануды қамтиды. Ол жеткізу компоненттерін таңдауды, құрылысты, nRF52 чипін бағдарламалау қорғанысын жоюды, NFC түйреуіштерін қалыпты GPIO ретінде пайдалануды және Arduino -да жаңа nRF52 тақтасын анықтауды қамтиды.

Бұл нұсқаулық Nano V2 ауыстыру ретінде SKYLAB SBK369 тақтасын қолдана отырып, өте төмен қуатты BLE температурасы мен ылғалдылығы мониторын құру арқылы Arduino көмегімен жеңілдетілген өте төмен қуатты BLE құрылғыларының 1 -бөлігінің практикалық қолдануы болып табылады. Бұл оқулық тақтаның жаңа анықтамасын жасауды және оны қайта бағдарламалауға мүмкіндік беретін nRF52 бағдарламалау қорғанысын жоюды қамтиды. Бұл нұсқаулықта энергияны аз тұтыну үшін BLE параметрлері реттелген 2 -бөлімнің эскизі пайдаланылады және оны батареядан немесе батареядан + күн немесе күн сәулесінен ғана алуға болады. Төмен қуат үшін BLE параметрлерін реттеу 2 -бөлімде қамтылды

Lp_BLE_TempHumidity -тің 3 -ші нұсқасы деректерді тек Arduino millis () көмегімен күн мен уақытқа салыстырады. PduodApp (V3.0.362+) соңғы нұсқасын пайдаланып millis () пен pfodApp көмегімен Arduino күні мен уақытын қараңыз.

Pfod_lp_nrf52.zip нұсқасының 4 нұсқасы GT832E_01 модулін де қолдайды және бұл оқулық NFC nRF52 түйреуіштерін стандартты GPIO ретінде қолданады.

Мұнда жасалған монитор Coin Cell немесе 2 x AAA батареяларымен ұзақ жылдар бойы жұмыс істейді, тіпті күн сәулесімен. Монитор ағымдағы температура мен ылғалдылықты көрсетумен қатар, соңғы 36 сағат 10 минуттық көрсеткіштерді және соңғы 10 күндік сағаттық көрсеткіштерді сақтайды. Оларды Android ұялы телефонында және журнал файлына сақталған мәндерде диаграммалауға болады. Android бағдарламалаудың қажеті жоқ, pfodApp мұның бәрін өңдейді. Android дисплейі мен диаграммасын Arduino эскизі толығымен басқарады, сондықтан сіз оны қажеттілікке қарай реттей аласыз.

2 -бөлімде nRF52832 BLE компоненті үшін Redbear Nano V2 тақтасы қолданылды. Бұл жоба оны арзанырақ SKYLAB SKB369 тақтасына ауыстырады. 2 -бөлімдегідей, температура / ылғалдылық сенсоры үшін Sparkfun Si7021 сынғыш тақтасы қолданылады. Төмен қуатты модификацияланған кітапхана Si7021 көмегімен қолданылады.

1 -қадам: Нано V2 неге ауыстырылады?

i) Nano V2 бірнеше ай бойы өндірісте болмады және Particle.io желісіне сәйкес келмейтін сияқты, сондықтан оның қанша уақытқа қол жетімді болатыны белгісіз.

ii) Nano V2 қымбатырақ. Алайда оның қосымша мүмкіндіктері де бар. Төменде қараңыз.

iii) Nano V2 екі жағында компоненттері бар, ол жоғары профиль береді және орнатуды қиындатады.

iv) Nano V2 шектеулі енгізу -шығару түйреуіштеріне ие және D6 - D10 ұшу сымдарын қажет етеді.

Nano V2 тақтасы SKYLAB SKB369 тақтайшасынан қымбат болса да, ~ US17 ~ US5 ~ US5 салыстырғанда, Nano V2 мүмкіндіктері көп. Nano V2 құрамында 3,3 В кернеу реттегіші мен қоректендіру конденсаторлары, nRF52 DC/DC түрлендіргіш опциясын қолдануға арналған қосымша компоненттер, чиптік антенна мен uFL SMT антеннасының қосқышы бар.

Басқа нұсқа - www.homesmartmesh.com қолданатын GT832E_01 модулі. Pfod_lp_nrf52.zip нұсқасының 4 -ші нұсқасы GT832E_01 модулін бағдарламалауды қолдайды. SKYLAB SKB369 және GT832E_01 https://www.aliexpress.com сайтынан қол жетімді

Redbear -де (Particle.io) 3V3 реттегіші жоқ тұрақты модуль бар, DC/DC компоненттері немесе 32 Гц кристалды компоненттері.

Контур

Бұл жоба 4 салыстырмалы тәуелсіз бөліктен тұрады:-

NRF52 кодтаудан қорғайтын жалаушаны алып тастау және эскизді бағдарламалау.

2 -қадам: Компоненттерді таңдау және салу

Компоненттерді таңдау

2 -бөлімде таңдалған nRF52832 және Si7021 компоненттерінен басқа, бұл жоба 3,3 В кернеу реттегіші мен қоректендіру конденсаторларын қосады.

Кернеу реттегіші компоненті

Мұнда қолданылатын реттегіш-MC87LC33-NRT. Ол 12В кірістерді қабылдай алады және тыныш ток <3.6uA, әдетте 1.1uA құрайды. Nano V2 TLV704 реттегішінде сәл жоғары тыныш ток бар, әдетте 3,4уА және 24В дейін жоғары кіріс кернеуін басқара алады. Оның орнына MC87LC33-NRT таңдалды, себебі оның деректер кестесінде кіріс кернеуі 3,3В төмен болса, TLV704 деректер кестесі болмаған кезде қалай жауап беретіні көрсетілген.

TLV704 кіріс кернеуін минимум 2,5В көрсетеді және оның астында не болатыны деректер кестесінен анық емес. NRF52832 1.7В дейін төмендейді, ал Si7023 1.9В дейін төмендейді. MC87LC33-NRT, керісінше, төмен токтар үшін 0В дейінгі кіріс/шығыс кернеуінің айырмашылығын көрсетеді (мәліметтер кестесінің 18-суреті). Компоненттерді таңдауды ескере отырып, MC87LC33-NRT таңдалды, себебі ол көрсетілген өнімділікке ие.

Жеткізу конденсаторлары

MC87LC33-NRT реттегішіне тұрақтылық пен жауап беру үшін кейбір жеткізу конденсаторлары қажет. Деректер парағында> 0.1uF шығыс конденсаторы ұсынылады. SKYLAB SBK369 сонымен қатар тақтаға жақын жерде 10uF/0.1uF конденсаторларын көрсетеді. Үлкен конденсаторлар nRF52 TX ток ұштарын жеткізуге көмектеседі. Мұнда 4 x 22uF 25V және 3 x 0.1uF 50V керамикалық конденсаторлар қолданылды. SKYLAB SBK369 жанына бір 22uF және 0.1uF конденсаторы, тұрақтылықты қамтамасыз ету үшін MC87LC33-NRT шығысына жақын 0,1uF, ал MC87LC33-NRT кірісіне 22uF және 0.1uF орналастырылды. одан әрі ток резервуар ретінде Vin/GND түйреуіштері арқылы дәнекерленген 2 x 22uF конденсаторлар. Салыстыру үшін NanoV2 тақтасында TLV704 реттегішінің кірісінде 22uF / 0.1uF және шығысында 0.1uF бар.

Қосымша ток резервуарлық конденсаторлар 3.3В реттегішінің кірісіне күн батареяларымен жұмыс кезінде жоғары кернеуге зарядталатын етіп орнатылды. Жоғары кернеуге зарядтау Tx ұштарын беру үшін көбірек ток сақтауға тең.

Керамикалық X5R конденсаторлары қолданылады, себебі олар төмен сериялы қарсылыққа ие және ағып кету тогы төмен. Қарсылық әдетте 100, 000MΩ немесе 1000MΩ - µF құрайды, бұл ешқашан аз. Сонымен, 22uF үшін бізде 22000MΩ бар, яғни төрт 22uF конденсаторлар үшін 0,3nA 3,3В немесе 0,6нА ағуы. Бұл шамалы. Салыстыру үшін төмен ESR, төмен ағып кететін панасоникалық электролиттік конденсаторларда ағып кету токтары <0,01CV. Осылайша, 22 вольт 16 В конденсатор үшін ағып кету <10uA құрайды. Ескертпе: бұл номиналды кернеудің ағуы, бұл жағдайда 16В. Ағу төмен кернеулерде төмен, яғни 3,3В кезінде <2,2уА.

Бөлшектер тізімі

2018 жылдың желтоқсанындағы жағдай бойынша бірлікке шамамен шығын, ~ 61 АҚШ доллары, жеткізілім мен бағдарламалаушыны қоспағанда, 1 -бөлім

  • SKYLAB SKB369 ~ 5 АҚШ доллары, мысалы, Aliexpress
  • Sparkfun Si7021 үзіліс тақтасы ~ 8 АҚШ доллары
  • 2 x 53mm x 30mm 0.15W 5V күн батареялары, мысалы. Overfly ~ 1.10 АҚШ доллары
  • 1 x PCB SKYLAB_TempHumiditySensor_R2.zip ~ 25 АҚШ доллары үшін 5 жеңілдік www.pcbcart.com
  • 1 x MC78LC33 3.3V реттегіш, мысалы. Digikey MC78LC33NTRGOSCT-ND ~ 1 АҚШ доллары
  • 2 x 0.1uF 50V керамикалық C1608X5R1H104K080A мысалы Digikey 445-7456-1-ND ~ 0,3 АҚШ доллары
  • 4 x 22uF 16V керамикалық GRM21BR61C226ME44L, мысалы Digikey 490-10747-1-ND ~ 2 АҚШ доллары
  • 1 x BAT54CW, мысалы Digikey 497-12749-1-ND ~ 0,5 АҚШ доллары
  • 1 x 470R 0,5W 1% резистор, мысалы. Digikey 541-470TCT-ND ~ 0,25 АҚШ доллары
  • 1 x 10V 1W zener SMAZ10-13-F мысалы. Digikey SMAZ10-FDICT-ND ~ 0,5 АҚШ доллары
  • 3 мм х 12 мм нейлон бұрандалары, мысалы. Jaycar HP0140 ~ AUD $ 3
  • 3 мм x 12 мм нейлон жаңғақтар, мысалы. Jaycar HP0146 ~ AUD $ 3
  • Scotch Тұрақты бекіту таспасы Cat 4010, мысалы. Amazon -дан ~ 6.6 АҚШ доллары
  • CR2032 батарея ұстағышы, мысалы HU2032-LF ~ 1.5 АҚШ доллары
  • CR2032 аккумуляторы ~ 1 АҚШ доллары
  • Perspex парағы, 3,5 мм және 8 мм
  • pfodApp ~ 10 АҚШ доллары
  • Дәнекерлеу пастасы, мысалы Jaycar NS-3046 ~ AUD $ 13

3 -қадам: құрылыс

Құрылыс
Құрылыс
Құрылыс
Құрылыс
Құрылыс
Құрылыс

Жоба шағын ПХД -де жасалған. ПХД pcbcart.com осы Gerber файлдарынан жасалған, SKYLAB_TempHumiditySensor_R2.zip ПХД Nano V2 түйреуішін имитациялайды және басқа BLE жобаларында қолдануға жеткілікті жалпы мақсат болып табылады.

Бұл схема (pdf нұсқасы)

Алдымен SMD компоненттерін дәнекерлеңіз, содан кейін SKYLAB SKB369 тақтасын орнатыңыз

Барлық компоненттер дерлік жер үсті қондырғылары (SMD). Конденсаторлар мен IC -ді қолмен дәнекерлеу қиын болуы мүмкін. Ұсынылатын әдіс - ПХД -ны вицеде ұстау және жастықшаларға дәнекерленген пастаның аз мөлшерін жағу және СКБ369 тақтасын қоспағанда, SMD компоненттерін орналастыру. Содан кейін жылытқыш пистолетті қолданып, дәнекерленген паста ерігенше ПХД астыңғы жағына жылуды жағыңыз, содан кейін тақтаның үстіңгі жағынан тез өтіп, компоненттерді өшіріп алмаңыз. Соңында компоненттерді кішкене ұшты дәнекерлегіш үтікті қолданыңыз. Конденсаторлар мен резисторға абай болыңыз, себебі екі ұшын балқыту оңай және бір ұшын дәнекерлеу кезінде компонент босатылуы мүмкін.

Бұл нұсқада қосымша 22uF 16V керамикалық конденсаторлар қосылады. Бұл қосымша конденсаторлар аккумулятордан шығатын ток күшін азайтады, сонымен қатар күн батареяларынан қуат алу кезінде кернеуді төмендетеді. Күн батареяларының кернеуі аккумулятор кернеуінен жоғары болғанша, батареядан ток алынбайды.

SMD компоненттері орнатылғаннан кейін SKYLAB SKB369 тақтасына дәнекерлеуге болады. SKB369 қойындыларының бір жағында екі сынақ нүктесі тесіктері бар. SKB369 тақтасын орналастыру және түйреуіштерді мұқият туралау үшін картон негізіне екі түйреуішті қолданыңыз. (Revision 1 PCB көмегімен жоғарыдағы суретті қараңыз) Басқа түйреуіштерді дәнекерлеместен бұрын тақтаны орнында ұстау үшін қарама -қарсы жақтың бір түйреуішін дәнекерлеңіз.

Аяқталған бөлікте CLK -тен GND -ге дейінгі Gnd байланыс сымына назар аударыңыз. Бұл CLK кіруіндегі шу nRF52 чипінің жоғары ағымдағы күйін келтіру режиміне қосылуының алдын алу үшін бағдарламалаудан кейін орнатылады

Монтаж корпусы

Бекіту корпусы қалыңдығы 110 мм х 35 мм, перспекстің екі бөлігінен жасалған. Күн батареяларының астындағы 3,5 мм кесінді 3 мм нейлон бұрандаларын алу үшін бекітілген. Бұл қайта қаралған құрылғы Rev 1 -ге қарағанда жеңілдетілген және сенсордың айналасындағы ауа ағынын жақсартады. Әр ұшындағы қосымша тесіктер, мысалы, кабельдік байланыстарды қолдана отырып, бекітуге арналған.

4 -қадам: NRF52 кодтау қорғау жалаушасын алып тастау

NRF52 кодтау қорғау жалаушасын алып тастау
NRF52 кодтау қорғау жалаушасын алып тастау
NRF52 кодтау қорғау жалаушасын алып тастау
NRF52 кодтау қорғау жалаушасын алып тастау
NRF52 кодтау қорғау жалаушасын алып тастау
NRF52 кодтау қорғау жалаушасын алып тастау

Температура/ылғалдылық тақтасын жоғарыда көрсетілгендей 1 -бөлімде сипатталған Бағдарламалаушыға қосыңыз.

Күн батареялары мен аккумуляторлар ажыратылған кезде, Vin мен Gnd бағдарламашының Vdd және Gnd (Сары және Жасыл сымдары), SWCLK және SWDIO бағдарламалаушы тақтасының Clk және SIO (Ақ және Сұр сымдар) қосылады.

NRF52 бағдарламалық қорғанысын жою

Nordic Semi - Debug and Trace бетінен DAP - Отладка кіру порты. Сыртқы отладчик DAP арқылы құрылғыға қол жеткізе алады. DAP стандартты ARM® CoreSight ™ Serial Wire Debug Port (SW-DP) енгізеді. SW-DP SWDCLK және SWDIO екі істікшелі сериялық интерфейс болып табылатын Serial Wire Debug хаттамасын (SWD) енгізеді.

Маңызды: SWDIO желісінің ішкі тартқыш резисторы бар. SWDCLK желісінде ішкі тартылатын резистор бар.

CTRL -AP - қатынау портын басқару. Control Access Port (CTRL-AP)-бұл кіру портының қорғанысымен DAP басқа кіру порттары өшірілген болса да, құрылғыны басқаруға мүмкіндік беретін реттелетін кіру порты. Қатынас портының қорғанысы отладчикке барлық CPU регистрлеріне және жадпен салыстырылған мекенжайларға оқуға және жазуға рұқсат бермейді. Кіру портын қорғауды өшіру. Кіру портын қорғауды CTRL-AP арқылы ERASEALL пәрменін беру арқылы ғана өшіруге болады. Бұл команда Flash, UICR және жедел жадты өшіреді.

Particle's Debugger бағдарламашысы ретінде CMSIS-DAP таңдаңыз және nRF5 Flash SoftDevice таңдаңыз

Егер жарқыл жұмыс істесе, онда бұл жақсы, бірақ көбінесе модульдер қайта бағдарламалаудан қорғалған болады және сіз бұл қатені Arduino терезесінде аласыз.

On-Chip Debugger 0.10.0-dev-00254-g696fc0a ашыңыз (2016-04-10-10: 13) GNU GPL v2 лицензиясы бойынша қате туралы есеп алу үшін https://openocd.org/doc/doxygen/bugs.html оқыңыз debug_level: 2 Ақпарат: тек бір тасымалдау нұсқасы; адаптерді автоматты түрде таңдау 'swd' адаптерінің жылдамдығы: 10000 кГц cortex_m reset_config sysresetreq Ақпарат: CMSIS-DAP: SWD Қолдау көрсетілетін ақпарат: CMSIS-DAP: Interface Initialized (SWD) Ақпарат: CMSIS-DAP: FW нұсқасы = 1.10 ақпарат: SWCLW/TCK = 1 TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1 Ақпарат: CMSIS-DAP: Интерфейс дайын Ақпарат: жылдамдық сұранысын азайту: 10000кГц-5000кГц максимум Ақпарат: сағат жылдамдығы 10000кГц Ақпарат: SWD IDCODE 0x2ba01477 Қате: MEM табылмады -AP негізгі ядроды басқару үшін Қате: Мақсат әлі тексерілмеген, SoftDevice жыпылықтаған кездегі қате.

Бұл жағдайда жадыны тазарту және құрылғыны қайтадан бағдарламаланатын ету үшін nRF52 ішіндегі ERASEALL командалық регистрін орнату қажет. NRF52 sandeepmistry жеткізілген openOCD нұсқасы ERASEALL командалық регистріне жазу үшін қажет apreg командасын қамтымайды, сондықтан сізге кейінгі нұсқаны орнату қажет.

OpenOCD-20181130 немесе одан жоғары OpenOCD нұсқасын орнатыңыз. Windows-тың алдын ала құрастырылған нұсқасын https://gnutoolchains.com/arm-eabi/openocd/ сайтынан алуға болады. Ең соңғы кодты https://gnutoolchains.com/arm-eabi/openocd/ сайтынан алуға болады.

Пәрмен жолын ашып, dir -ді OpenOCD орнату каталогына өзгертіңіз және пәрменді енгізіңіз

bin / openocd.exe -d2 -f интерфейсі/cmsis -dap.cfg -f мақсатты/nrf52.cfg

Жауап - бұл

On-Chip Debugger 0.10.0 (2018-11-30) ашу bugs.html debug_level: 2 Ақпарат: «swd» бірінші қолжетімді сеансты автоматты түрде таңдау. Қайта анықтау үшін 'transport select' пайдаланыңыз. адаптер жылдамдығы: 1000 кГц cortex_m reset_config sysresetreq Ақпарат: tcl қосылымдары үшін 6666 портында тыңдалады Ақпарат: 4444 портында телетайылымдар үшін тыңдалады Ақпарат: CMSIS-DAP: SWD қолдау көрсетілетін ақпарат: CMSIS-DAP: FW нұсқасы = 1.10 ақпарат: CMSIS-DAP: Бастапқы интерфейс туралы ақпарат (SWD): SWCLK/TCK = 1 SWDIO/TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1 Ақпарат: CMSIS-DAP: интерфейс дайын ақпарат: сағат жылдамдығы 1000 кГц Ақпарат: SWD DPIDR 0x2ba01477 қатесі: Негізгі ақпаратты басқару үшін MEM-AP табылмады: gdb қосылымдары үшін 3333 портында тыңдау

Содан кейін терминал терезесін ашыңыз, мысалы. TeraTerm (Windows) немесе CoolTerm (Mac) және 127.0.0.1 4444 портына қосылыңыз

Телнет терезесінде> көрсетіледі, ал пәрмен жолында Ақпарат көрсетіледі: tcp/4444 бойынша 'telnet' байланысын қабылдау

Telnet терезесінде (яғни TeraTerm) typenrf52.dap apreg 1 0x04 бұл чип қорғалғанын көрсететін 0x00000000 қайтарады. Содан кейін typenrf52.dap apreg 1 0x04 0x01 және thennrf52.dap apreg 1 0x04 бұл 0x00000001 қайтарады, чип енді келесі қайта жүктеуде ERASEALL күйіне орнатылғанын көрсетеді.

Telnet қосылымын жабыңыз, сонымен қатар пәрмен жолында openOCD бағдарламасынан шығу үшін Ctrl-C пайдаланыңыз, содан кейін nRF52 модулінің қуат циклі және ол енді бағдарламаға дайын болады.

Енді жұмсақ құрылғыны жыпылықтап көріңіз.

Енді nRF52 модулін Arduino -дан бағдарламалауға болады.

5 -қадам: SKYLAB SKB369 бағдарламалау

SKYLAB SKB369 бағдарламалау
SKYLAB SKB369 бағдарламалау
SKYLAB SKB369 бағдарламалау
SKYLAB SKB369 бағдарламалау
SKYLAB SKB369 бағдарламалау
SKYLAB SKB369 бағдарламалау

Arduino жабыңыз және pfod_lp_nrf52 аппараттық қолдауды орнату нұсқауларын орындау арқылы pfod_lp_nrf52 қолдауының соңғы нұсқасын қайта орнатыңыз. Соңғы pfod_lp_nrf52 құрамында SKYLAB SKB369 Nano2 ауыстыру тақтасы бар. Оны тақта ретінде таңдаңыз, содан кейін оны 2 -бөлімде сипатталғандай lp_BLE_TempHumidity, lp_BLE_TempHumidity_R3.zip нұсқасының 3 нұсқасымен бағдарламалай аласыз.

Егер бағдарламалау сәтсіз болса. Барлық Arduino терезелерін жабыңыз, USB кабелдерін алып тастаңыз, Arduino -ны қайта іске қосыңыз және бағдарламашының USB кабелін қайта жалғаңыз және nRF52 модулінің USB қорек көзін қайта жалғап, әрекетті қайталаңыз.

Содан кейін ағымдағы және тарихи температура мен ылғалдылықты көрсету үшін pfodApp арқылы қосылыңыз. Тарихи сюжетті көрсеткеннен кейін, миллисекундтық уақыт белгілері бар көрсеткіштер ұялы телефондағы журнал файлына сақталады, сонымен қатар бастапқы деректер экранында қол жетімді болады.

Журнал файлы сонымен қатар электрондық кестеде күн мен уақыт кестелерін қайта құруға қажетті қосымша деректерді қамтиды. Мәліметтер алу үшін millis () және pfodApp көмегімен Arduino күні мен уақытын қараңыз

6 -қадам: Arduino NRF52 тақтасының жаңа анықтамасын жасау

Жаңа Arduino NRF52 тақтасының анықтамасын жасау
Жаңа Arduino NRF52 тақтасының анықтамасын жасау
Жаңа Arduino NRF52 тақтасының анықтамасын жасау
Жаңа Arduino NRF52 тақтасының анықтамасын жасау
Жаңа Arduino NRF52 тақтасының анықтамасын жасау
Жаңа Arduino NRF52 тақтасының анықтамасын жасау
Жаңа Arduino NRF52 тақтасының анықтамасын жасау
Жаңа Arduino NRF52 тақтасының анықтамасын жасау

Жаңа nRF52 тақтасын қолдау үшін сізге а) тақта файлдары бар нұсқалар каталогының астына жаңа каталогты қосу және б) жаңа тақтаны Arduino -ға қосу үшін board.txt файлын өңдеу қажет.

NRF52 тақтасының жаңа нұсқасын қосу

Pfod_lp_nrf52 аппараттық қолдауын орнатудың 1-бөлімінде сипатталғандай, pfod_lp_nrf52 қолдауымен жаңартылған құмды пакеттің аппараттық ішкі каталогын табыңыз. / Аппараттық / nRF5 / 0.6.0 / нұсқаларының ішкі каталогын ашыңыз және жаңа тақта үшін жаңа каталог жасаңыз, мысалы: SKYLAB_SKB369_Nano2 ауыстыру Жаңа / аппараттық / nRF5 / 0.6.0 / нұсқаларында / SKYLAB_SKB369_Nano2 ауыстыру каталогында үш файлды жасаңыз.h, variant.cpp және pins_arduino.h Сіз оларды басқа тақта нұсқаларының каталогтарынан көшіре аласыз. SKYLAB_SKB369_Nano2 ауыстыру үшін мен бастапқыда RedBear_BLENano2 нұсқасынан файлдарды көшірдім.

pins_arduino.h файлы

Pins_arduino.h файлын өзгерту қажет емес. Ол тек variant.h файлын қамтиды

variant.h файлы

Портта PINS_COUNT болатын түйреуіштердің жалпы санын анықтау үшін variant.h файлын өңдеңіз

ЕСКЕРТПЕ: Sandeepmistry пакетінде NUM_DIGITAL_PINS, NUM_ANALOG_INPUTS және NUM_ANALOG_OUTPUTS параметрлері еленбейді

Егер сіздің тақтаңыз аз немесе көп аналогты түйреуіштерді қол жетімді етсе, variantian.h файлының / * Analog Pins * / бөлімін жаңартыңыз.

ЕСКЕРТПЕ: NanoV2 және SKYLAB тақталары үшін аналогтық түйреуіштер сандық түйреуіштерге A0 == D0 және т.б

Бұл маңызды емес. Аналогты кірісті кез келген ыңғайлы Arduino түйреуішіне тағайындауға болады. Мысал үшін blue/variant.h және blue/variant.cpp файлдарын қараңыз.

NRF52832 чипінде 8 аналогты кіріс түйреуіштері бар, бірақ SKYLAB_SKB369_Nano2 ауыстыру тақтасы Nano2 -ге сәйкес келу үшін олардың тек 6 -ын ғана қол жетімді етеді.

Variant.h файлындағы RESET_PIN -ден басқа барлық PIN нөмірлері Arduino пин сандары болып табылады. Яғни #define PIN_A0 (0) arduino эскизіндегі D0 A0 нүктесімен бірдей екенін білдіреді. RESET_PIN - бұл ерекшелік. Бұл нөмір nRF52823 микросхема түйреуішінің нөмірі және 21 - бұл жалғыз жарамды таңдау. Алайда pfod_lp_nrf52 қолдауы nRF52832 қалпына келтіру түйреуін қоспайды.

variant.cpp файлы

Variant.cpp файлында Arduino пин нөмірлерін nRF52832 P0.. түйреуіштерімен салыстыратын g_ADigitalPinMap массивінде бір ғана жазба бар.

ЕСКЕРТПЕ: NanoV2 және SKYLAB тақталарында, Arduino A0, A1… аналогтық түйрегіштері D0, D1 Arduino цифрлық түйреуіштерімен бірдей … сондықтан g_ADigitalPinMap ішіндегі бірінші жазбалар nRF52832 чипіндегі AINx сымдарының нөмірлерімен салыстырылуы тиіс

Аналогты кірістер үшін сіздің тақта қол жетімді етеді, g_ADigitalPinMap ішіндегі жазбалар nRF52832 AIN0, AIN1, AIN2 және т.б. пин нөмірлерін салыстыруы керек. яғни AIN0 - бұл P0.02 микросхемасы, AIN1 - P0.03 микросхемасы және т.б.

Жарамсыз салыстырулар үшін (uint32_t) -1 пайдаланыңыз. Мысалы, SKYLAB_SKB369_Nano2 ауыстыру тақтасында D13 орнатылған жарық диоды жоқ, сондықтан оның орны (uint32_t) -1 -ге салыстырылады.

Pfod_lp_nrf52.zip-те Redbear NanoV2, SKYLAB SKB369 және GT832E_01 нұсқаларының ішкі каталогтарында variant.cpp арқылы орнатылған салыстыруларды көрсететін суреттер бар. (Жоғарыдағы суреттерді қараңыз)

SKYLAB SKB369 жағдайында таңдау үшін көптеген түйреуіштер бар. NanoV2 -ге сәйкес келетін карталар жеткілікті. GT832E_01 жағдайында барлық қол жетімді түйреуіштерді салыстыру қажет. NanoV2 алты (6) орнына тек үш (3) аналогтық кіріс бар. Сонымен қатар, екі NFC түйрегіші, P0.09 және P0.10, GPIO ретінде қайта конфигурациялануы керек. NRF52 NFC түйреуіштерін төменде GPIO ретінде қайта конфигурациялауды қараңыз.

Board.txt файлын жаңарту

Бұл SKYLAB_SKB369_Nano2 ауыстыру тақтасы.txt файлындағы жазба.

## SKYLAB_SKB369 Nano2 ауыстыруSKYLAB_SKB369_NANO2_REPLACEMENT.name =*SKYLAB SKB369 Nano2 ауыстыру

SKYLAB_SKB369_NANO2_REPLACEMENT.upload.tool = sandeepmistry: openocd

SKYLAB_SKB369_NANO2_REPLACEMENT.upload.protocol = cmsis-dap SKYLAB_SKB369_NANO2_REPLACEMENT.upload.use_1200bps_touch = жалған

SKYLAB_SKB369_NANO2_REPLACEMENT.bootloader.tool = sandeepmistry: openocd

SKYLAB_SKB369_NANO2_REPLACEMENT.build.mcu = cortex-m4

SKYLAB_SKB369_NANO2_REPLACEMENT.build.f_cpu = 16000000 теңге SKYLAB_SKB369_NANO2_REPLACEMENT.build.board = SKYLAB_SKB369_Nano2replacement SKYLAB_SKB369_NANO2_REPLACEMENT.build.core = nRF5 SKYLAB_SKB369_NANO2_REPLACEMENT.build.variant = SKYLAB_SKB369_Nano2replacement SKYLAB_SKB369_NANO2_REPLACEMENT.build.variant_system_lib = SKYLAB_SKB369_NANO2_REPLACEMENT.build.extra_flags = -DNRF52 SKYLAB_SKB369_NANO2_REPLACEMENT.build.float_flags = -mfloat -abi = hard -mfpu = fpv4-sp-d16 SKYLAB_SKB369_NANO2_REPLACEMENT.build.ldscript = nrf52_xxaa.ld

SKYLAB_SKB369_NANO2_REPLACEMENT.menu.lfclk.lfrc.build.lfclk_flags = -DUSE_LFXO

SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132 = S132

SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132.softdevice = s132 SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132.softdeviceversion = 2.0.1 SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132.upload.maximum_size = 409600 SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132.build.extra_flags = - DNRF52 -DS132 -DNRF51_S132 SKYLAB_SKB369_NANO2_REPLACEMENT.menu.softdevice.s132.build.ldscript = armgcc_s132_nrf52832_xxaa.ld

board.txt параметрлері

Түсініктемелер - # деп басталатын жолдар - түсініктемелер.

Префикс - әр тақта өзінің мәндерін анықтау үшін бірегей префиксті қажет етеді. Мұнда префикс - SKYLAB_SKB369_NANO2_REPLACEMENT.

Аты - SKYLAB_SKB369_NANO2_REPLACEMENT.name жолында Arduino тақтасының мәзірінде көрсетілетін осы тақтаның атауы көрсетіледі.

Жүктеу құралы - SKYLAB_SKB369_NANO2_REPLACEMENT.upload блогы жүктеу үшін қай құралды қолдану керектігін көрсетеді. Егер сіз бөлшектерді түзету құралын қолдансаңыз, жоғарыда көрсетілгендей = cmsis-dap протоколын қолданыңыз.

Жүктеуші - Бұл жол осы board.txt файлындағы барлық тақталар үшін бірдей

Құру - бұл блокта тек екі жолды жаңарту қажет. SKYLAB_SKB369_NANO2_REPLACEMENT.build.variant жолы осы тақтаның каталог атауын нұсқалар ішкі каталогында көрсетеді. SKYLAB_SKB369_NANO2_REPLACEMENT.build.board - ARDUINO_ -ға қосылған, содан кейін кодты құрастыру кезінде анықталған мән. мысалы -DARDUINO_SKYLAB_SKB369_Nano2 ауыстыру Бұл арнайы тақталар үшін код бөліктерін қосуға/өшіруге мүмкіндік береді.

Төмен жиілікті сағат - бұл жол, SKYLAB_SKB369_NANO2_REPLACEMENT.menu.lfclk.lfrc.build.lfclk_flags, lp_timer үшін қолданылатын төмен жиілікті сағат көзін көрсетеді. Үш нұсқа бар: -DUSE_LFXO, -DUSE_LFRC және -DUSE_LFSYNT. Ең жақсы таңдау -DUSE_LFXO, егер тақтада 32 кГц сыртқы кристалл болса. Олай болмаған жағдайда, ішкі RC осцилляторын қолданатын және аздап көбірек ток алатын ~DUE_LFRC пайдаланыңыз, бірақ дәлдігі әлдеқайда аз. -DUSE_LFSYNT қолданбаңыз, себебі бұл чиптің үнемі жұмыс істеуін қамтамасыз етеді, нәтижесінде mAs ағымдағы ұтыс болады.

Softdevice - pfod_lp_nrf52 тек nRF52 чиптері мен softdevice s132 қолдайды, сондықтан бұл блокқа префикстен басқа ешқандай өзгеріс қажет емес.

NRF52 NFC түйреуіштерін GPIO ретінде қайта конфигурациялау

NRF52 түйреуіштерінде әдепкі бойынша, P0.09 және P0.10 NFC ретінде пайдалануға арналған және NFC антеннасына қосылады деп күтілуде. Егер оларды жалпы мақсаттағы енгізу -шығару түйреуіштері (GPIO) ретінде пайдалану қажет болса, онда board.txt файлындағы… menu.softdevice.s132.build.extra_flags компиляциясының параметрлеріне -DCONFIG_NFCT_PINS_AS_GPIOS анықтамасын қосу қажет.

Мысалы, pfod_lp_nrf52.zip, GT832E_01 түйреуіштерін енгізу-шығару ретінде қайта конфигурациялайды. Бұл тақтаға арналған GT832E_01 бөлімінде board.txt файлында келесі анықтама қосылған

GT832E_01.menu.softdevice.s132.build.extra_flags = -DNRF52 -DS132 -DNRF51_S132 -DCONFIG_NFCT_PINS_AS_GPIOS

Pfod_lp_nrf52.zip сілтеме сценарийі де осы параметрді сақтау үшін өзгертілген және оны өзгерту қажет емес.

7 -қадам: Қорытынды

Бұл оқулықта SKYLAB SKB369 модулінің көмегімен Redbear NanoV2 ауыстыру ұсынылды. SKYLAB модулі үшін Arduino -да өте төмен қуатты BLE жобасы ретінде батарея/күн энергиясымен жұмыс істейтін температуралық ылғалдылық мониторы қолданылды. ~ 29uA жеткізу токтары, қосылу параметрлерін реттеу арқылы қол жеткізіледі. Бұл CR2032 монеталық ұялы батареяның қызмет ету мерзіміне ~ 10 ай әкелді. Сыйымдылығы жоғары монеталар мен батареялар үшін ұзағырақ. Екі арзан күн батареясын қосу батареяның қызмет ету мерзімін 50% немесе одан да көп ұзартты. Мониторды күн батареяларынан қуаттандыру үшін бөлмедегі жарық шам немесе үстел шамы жеткілікті.

Бұл оқулық сонымен қатар алдын ала бағдарламаланған nRF52-ден чиптен қорғауды жоюды және PCB/схемаға сәйкес келетін тақтаның жаңа анықтамасын қалай орнатуды қарастырды.

Android бағдарламалау қажет емес. pfodApp мұның бәрін өңдейді.

Ұсынылған: