Სარჩევი:

მარტივი ძალიან დაბალი სიმძლავრის BLE Arduino ნაწილში 3 - Nano V2 შეცვლა - Rev 3: 7 ნაბიჯი (სურათებით)
მარტივი ძალიან დაბალი სიმძლავრის BLE Arduino ნაწილში 3 - Nano V2 შეცვლა - Rev 3: 7 ნაბიჯი (სურათებით)

ვიდეო: მარტივი ძალიან დაბალი სიმძლავრის BLE Arduino ნაწილში 3 - Nano V2 შეცვლა - Rev 3: 7 ნაბიჯი (სურათებით)

ვიდეო: მარტივი ძალიან დაბალი სიმძლავრის BLE Arduino ნაწილში 3 - Nano V2 შეცვლა - Rev 3: 7 ნაბიჯი (სურათებით)
ვიდეო: Output DC or AC Voltage using MCP4725 DAC with LCD and PWM to Voltage Converter with Arduino 2024, დეკემბერი
Anonim
მარტივი ძალიან დაბალი სიმძლავრის BLE Arduino ნაწილში 3 - Nano V2 შეცვლა - Rev 3
მარტივი ძალიან დაბალი სიმძლავრის BLE Arduino ნაწილში 3 - Nano V2 შეცვლა - Rev 3
მარტივი ძალიან დაბალი სიმძლავრის BLE Arduino ნაწილში 3 - Nano V2 შეცვლა - Rev 3
მარტივი ძალიან დაბალი სიმძლავრის BLE Arduino ნაწილში 3 - Nano V2 შეცვლა - Rev 3
მარტივი ძალიან დაბალი სიმძლავრის BLE Arduino ნაწილში 3 - Nano V2 შეცვლა - Rev 3
მარტივი ძალიან დაბალი სიმძლავრის BLE Arduino ნაწილში 3 - Nano V2 შეცვლა - Rev 3

განახლება: 7 აპრილი

განახლება: 2019 წლის 24 მარტი - lp_BLE_TempHumidity Rev 2, ამატებს ნაკვეთის მეტ ვარიანტს და i2c_ClearBus, ამატებს GT832E_01 მხარდაჭერას

შესავალი

ეს სახელმძღვანელო, Redbear Nano V2 Replacement, არის ნაწილი 3 3 – დან. ეს არის ამ პროექტის გადახედვა 2. გადასინჯვის 2 PCB მოიცავს მონეტის უჯრედისა და სენსორის დამონტაჟებას, ამარტივებს კონსტრუქციას და აუმჯობესებს ჰაერის ნაკადს სენსორის გარშემო და იცავს მას მზის პირდაპირი სხივებისგან. შესწორება 1 აქ არის.

ნაწილი 1 - ძალიან დაბალი სიმძლავრის BLE მოწყობილობების შექმნა Arduino– ს საშუალებით ადვილია Arduino– ს დაბლოკვა nRF52 დაბალი სიმძლავრის მოწყობილობებისთვის, პროგრამირების მოდული და გაზომვის მიწოდება. ის ასევე მოიცავს სპეციალიზირებულ დაბალი სიმძლავრის ქრონომეტრებს და კომპარატორებს და გამოტოვებულ საშუალებებს და pfodApp– ის გამოყენებით nRF52 მოწყობილობასთან დასაკავშირებლად და გასაკონტროლებლად.

ნაწილი 2 - ძალიან დაბალი სიმძლავრის ტემპერატურის ტენიანობის მონიტორი მოიცავს Redbear Nano V2 მოდულს და Si7021 ტემპერატურის / ტენიანობის სენსორს დაბალი სიმძლავრის ბატარეის / მზის მონიტორის ასაშენებლად. იგი ასევე მოიცავს Si7021 ბიბლიოთეკის მცირე სიმძლავრის შეცვლას, BLE მოწყობილობის რეგულირებას, რათა შეამციროს მისი ამჟამინდელი მოხმარება <29uA– მდე და შეიმუშაოს ტემპერატურის/ტენიანობის პერსონალური ჩვენება თქვენი მობილური ტელეფონისთვის.

ნაწილი 3 - Redbear Nano V2 ჩანაცვლება, ეს მოიცავს სხვა nRF52 მოდულების გამოყენებას Nano V2- ის ნაცვლად. იგი მოიცავს მომარაგების კომპონენტების შერჩევას, კონსტრუქციას, nRF52 ჩიპების პროგრამირების დაცვის ამოღებას, NFC ქინძისთავების გამოყენებას როგორც ჩვეულებრივ GPIO- ს და არდუინოში ახალი nRF52 დაფის განსაზღვრას.

ეს სასწავლო არის პრაქტიკული გამოყენება ნაწილი 1 შენობა ძალიან დაბალი სიმძლავრის BLE მოწყობილობებით, რომლებიც ადვილი გახდა Arduino– ს მიერ ძალიან დაბალი სიმძლავრის BLE ტემპერატურისა და ტენიანობის მონიტორის აგებით SKYLAB SBK369 დაფის გამოყენებით, როგორც ნანო V2 შემცვლელი. ეს გაკვეთილი მოიცავს როგორ შევქმნათ დაფის ახალი განმარტება და როგორ ამოვიღოთ nRF52 პროგრამირების დაცვა, რათა მოხდეს მისი ხელახალი დაპროგრამება. ეს სახელმძღვანელო იყენებს იგივე ჩანახატს, როგორც ნაწილი 2, იგივე მორგებული BLE პარამეტრებით დაბალი ენერგიის მოხმარებისთვის და შეიძლება იკვებებოდეს ბატარეიდან ან ბატარეიდან + მზის ან მზისგან. დაბალი სიმძლავრის BLE პარამეტრების რეგულირება დაფარული იყო მე -2 ნაწილში

Rev 3 of lp_BLE_TempHumidity ასახავს მონაცემებს თარიღისა და დროის მიხედვით მხოლოდ Arduino millis () - ის გამოყენებით. იხილეთ Arduino თარიღი და დრო millis () და pfodApp გამოყენებით pfodApp უახლესი ვერსიის გამოყენებით (V3.0.362+).

Rev 4 of pfod_lp_nrf52.zip ასევე მხარს უჭერს GT832E_01 მოდულს და ეს სახელმძღვანელო მოიცავს NFC nRF52 ქინძისთავებს, როგორც სტანდარტულ GPIO– ს.

აქ აშენებული მონიტორი წლების განმავლობაში იმუშავებს Coin Cell ან 2 x AAA ბატარეაზე, კიდევ უფრო დიდხანს მზის დახმარებით. მიმდინარე ტემპერატურისა და ტენიანობის ჩვენების გარდა, მონიტორი ინახავს ბოლო 36 სთ 10 წუთის კითხვას და ბოლო 10 დღის საათობრივ კითხვას. ეს შეიძლება აისახოს თქვენს Android მობილურზე და ღირებულებები შეინახოთ ჟურნალის ფაილში. არ არის Android პროგრამირება საჭირო, pfodApp ამუშავებს ამ ყველაფერს. Android დისპლეი და დიაგრამა მთლიანად კონტროლდება თქვენი Arduino ესკიზით, ასე რომ თქვენ შეგიძლიათ მისი მორგება საჭიროებისამებრ.

მე -2 ნაწილმა გამოიყენა Redbear Nano V2 დაფა nRF52832 BLE კომპონენტისთვის. ეს პროექტი ცვლის მას უფრო იაფი SKYLAB SKB369 დაფით. როგორც მე –2 ნაწილში, Sparkfun Si7021 გამანადგურებელი დაფა გამოიყენება ტემპერატურის / ტენიანობის სენსორისთვის. შეცვლილი დაბალი სიმძლავრის ბიბლიოთეკა გამოიყენება Si7021– ით.

ნაბიჯი 1: რატომ Nano V2 ჩანაცვლება?

ი) Nano V2 იყო წარმოებიდან რამდენიმე თვის განმავლობაში და როგორც ჩანს არ ჯდება Particle.io ხაზში, ასე რომ არ არის ნათელი რამდენ ხანს იქნება ხელმისაწვდომი.

ii) ნანო V2 უფრო ძვირია. თუმცა მას ასევე აქვს დამატებითი ფუნქციები. Იხილეთ ქვემოთ.

iii) ნანო V2– ს აქვს კომპონენტები ორივე მხრიდან, რაც მას აძლევს უფრო მაღალ პროფილს და ართულებს მის დამონტაჟებას.

iv) Nano V2– ს აქვს შეზღუდული I/O ქინძისთავები და D6– დან D10– ის გამოყენებამდე საჭიროა საფრენი ბილიკები.

მიუხედავად იმისა, რომ Nano V2 დაფა უფრო ძვირია ვიდრე SKYLAB SKB369 დაფა, ~ US17 წინააღმდეგ ~ US5, Nano V2– ს უფრო მეტი ფუნქცია აქვს. ნანო V2 მოიცავს 3.3 ვ რეგულატორს და მიწოდების კონდენსატორებს, დამატებით კომპონენტებს nRF52 DC/DC გადამყვანი ვარიანტის გამოყენებისათვის, ჩიპური ანტენა და uFL SMT ანტენის კონექტორი.

კიდევ ერთი ალტერნატივაა GT832E_01 მოდული, რომელსაც იყენებს www.homesmartmesh.com. Rev 4 of pfod_lp_nrf52.zip ასევე მხარს უჭერს GT832E_01 მოდულის პროგრამირებას. SKYLAB SKB369 და GT832E_01 ხელმისაწვდომია https://www.aliexpress.com– დან

Redbear– ს (Particle.io) ასევე აქვს შიშველი მოდული 3V3 რეგულატორის, DC/DC კომპონენტების ან 32 კჰც ბროლის კომპონენტების გარეშე.

მონახაზი

ამ პროექტს აქვს 4 შედარებით დამოუკიდებელი ნაწილი:-

კომპონენტის შერჩევა და კონსტრუქცია nRF52 კოდირების დაცვის დროშის ამოღება და ესკიზის დაპროგრამება ახალი Arduino nRF52 დაფის განსაზღვრის შექმნა nRF52 NFC ქინძისთავების როგორც GPIO- ს

ნაბიჯი 2: კომპონენტის შერჩევა და მშენებლობა

კომპონენტის შერჩევა

მე –2 ნაწილში შერჩეული nRF52832 და Si7021 კომპონენტების გარდა, ეს პროექტი ამატებს 3.3 ვ რეგულატორს და მიწოდების კონდენსატორებს.

ძაბვის რეგულატორის კომპონენტი

აქ გამოყენებული მარეგულირებელი არის MC87LC33-NRT. მას შეუძლია გაუმკლავდეს 12 ვ -მდე შეყვანას და აქვს წყნარი დენი <3.6uA, ჩვეულებრივ 1.1uA. ნანო V2– ს მიერ გამოყენებული TLV704 მარეგულირებელი აქვს ოდნავ მაღალი წყნარი დენი, ჩვეულებრივ 3.4uA და შეუძლია გაუმკლავდეს უფრო მაღალ ძაბვას, 24 ვ -მდე. MC87LC33-NRT მის ნაცვლად იქნა არჩეული, რადგან მისი მონაცემთა ფურცელი განსაზღვრავს, თუ როგორ რეაგირებს იგი, რადგან შეყვანის ძაბვა ეცემა 3.3 ვ-ზე ქვემოთ, ხოლო როგორც TLV704 მონაცემთა ფურცელი არა.

TLV704 განსაზღვრავს მინიმუმ 2.5 ვ შეყვანის ძაბვას და არ არის ნათელი ცხრილებიდან რა მოხდება ამის ქვემოთ. NRF52832 იკლებს 1.7 ვ -მდე, ხოლო Si7023 - 1.9 ვ -მდე. MC87LC33-NRT, მეორეს მხრივ, განსაზღვრავს შეყვანის/გამომავალი ძაბვის განსხვავებებს 0V– მდე დაბალი დენებისთვის (მონაცემთა ცხრილის სურათი 18). ასე რომ, კომპონენტების არჩევანის გათვალისწინებით, MC87LC33-NRT შეირჩა, რადგან მას აქვს განსაზღვრული შესრულება.

მიწოდების კონდენსატორები

MC87LC33-NRT მარეგულირებელს სტაბილურობისა და რეაგირებისთვის სჭირდება გარკვეული მიწოდების კონდენსატორები. მონაცემთა ცხრილში რეკომენდებულია გამომავალი კონდენსატორი> 0.1uF. SKYLAB SBK369 ასევე განსაზღვრავს 10uF/0.1uF კონდენსატორებს დაფაზე ახლოს. უფრო დიდი კონდენსატორები ხელს უწყობენ nRF52 TX დენის ნაკადის მიწოდებას. აქ გამოყენებულია 4 x 22uF 25V და 3 x 0.1uF 50V კერამიკული კონდენსატორები. ერთი 22uF და 0.1uF კონდენსატორი მოთავსებულია SKYLAB SBK369– თან ახლოს, 0.1uF მოთავსებულია MC87LC33-NRT– ის გამოსასვლელთან ახლოს სტაბილურობის უზრუნველსაყოფად და 22uF და 0.1uF მოთავსებულია MC87LC33-NRT და a შემდგომი 2 x 22uF კონდენსატორები, სადაც გაერთიანებულია Vin/GND ქინძისთავებზე, როგორც შემდგომი დენის რეზერვუარი. შედარებისთვის NanoV2 დაფას აქვს 22uF / 0.1uF TLV704 მარეგულირებლის შეყვანისას და 0.1uF მის გამოსავალზე.

დამატებითი დენის რეზერვუარის კონდენსატორები დამონტაჟდა 3.3V მარეგულირებლის შესასვლელთან ისე, რომ მზის უჯრედებთან მუშაობისას ისინი უფრო მაღალ ძაბვას დატვირთავდნენ. უფრო მაღალი ძაბვის დატენვა უდრის უფრო მეტი დენის შენახვას Tx spikes მიწოდებისთვის.

კერამიკული X5R კონდენსატორები გამოიყენება, რადგან მათ აქვთ დაბალი სერიის წინააღმდეგობა და დაბალი გაჟონვის დენი. როგორც წესი, წინააღმდეგობა არის 100, 000MΩ ან 1000MΩ - µF, რაც უფრო ნაკლებია. 22uF– ზე გვაქვს 22000MΩ, ანუ 0.15nA გაჟონვა 3.3V– ზე ან 0.6nA ოთხ 22uF კონდენსატორზე. ეს უმნიშვნელოა. შედარებისთვის დაბალი ESR, დაბალი გაჟონვის Panasonic ელექტროლიტურ კონდენსატორებს აქვთ გაჟონვის დენები <0.01CV. 22uF 16V კონდენსატორისთვის გაჟონვა არის <10uA. შენიშვნა: ეს არის გაჟონვა ნომინალური ძაბვის დროს, 16V ამ შემთხვევაში. გაჟონვა უფრო დაბალია ქვედა ძაბვებზე, ანუ <2.2uA 3.3V– ზე.

ნაწილების სია

ერთეულის სავარაუდო ღირებულება 2018 წლის დეკემბრისთვის, $ 61 აშშ დოლარი, გადაზიდვისა და პროგრამისტის გამოკლებით 1 ნაწილიდან

  • SKYLAB SKB369 ~ 5 აშშ დოლარი მაგ ალიექსპრესი
  • Sparkfun Si7021 გარღვევის დაფა 8 აშშ დოლარი
  • 2 x 53 მმ x 30 მმ 0.15W 5V მზის უჯრედები მაგ. გადაფრენა ~ 1.10 აშშ დოლარი
  • 1 x PCB SKYLAB_TempHumiditySensor_R2.zip 25 25 აშშ დოლარი 5 ფასდაკლებით www.pcbcart.com
  • 1 x MC78LC33 3.3V რეგულატორი, მაგ. Digikey MC78LC33NTRGOSCT-ND ~ 1 აშშ დოლარი
  • 2 x 0.1uF 50V კერამიკული C1608X5R1H104K080A მაგ. დიგიკეი 445-7456-1-ND 0.3 0.3 აშშ დოლარი
  • 4 x 22uF 16V კერამიკული GRM21BR61C226ME44L მაგ. დიგიკეი 490-10747-1-ND ~ 2 აშშ დოლარი
  • 1 x BAT54CW, მაგ. დიგიკეი 497-12749-1-ND 0.5 0.5 აშშ დოლარი
  • 1 x 470R 0.5W 1% რეზისტორი მაგ. დიგიკეი 541-470TCT-ND 0. 0,25 აშშ დოლარი
  • 1 x 10V 1W ზენერი SMAZ10-13-F მაგ. დიგიკეი SMAZ10-FDICT-ND 0.5 0.5 აშშ დოლარი
  • 3 მმ x 12 მმ ნეილონის ხრახნები, მაგ. ჯეიკარ HP0140 ~ 3 AUD
  • 3 მმ x 12 მმ ნეილონის თხილი, მაგ. ჯეიკარ HP0146 ~ 3 AUD
  • სკოჩის მუდმივი სამონტაჟო ლენტი კატა 4010 მაგ. ამაზონიდან ~ 6.6 აშშ დოლარი
  • CR2032 ბატარეის დამჭერი, მაგ. HU2032-LF ~ 1.5 აშშ დოლარი
  • CR2032 ბატარეა ~ 1 აშშ დოლარი
  • Perspex ფურცელი, 3.5 მმ და 8 მმ
  • pfodApp ~ 10 აშშ დოლარი
  • Solder Paste მაგ. ჯეიკარ NS-3046 ~ 13 AUD

ნაბიჯი 3: მშენებლობა

მშენებლობა
მშენებლობა
მშენებლობა
მშენებლობა
მშენებლობა
მშენებლობა

პროექტი აგებულია პატარა PCB- ზე. PCB დამზადებულია pcbcart.com– ის მიერ გერბერის ამ ფაილებიდან, SKYLAB_TempHumiditySensor_R2.zip PCB მიბაძავს Nano V2 პინს და არის ზოგადი დანიშნულების საკმარისი იმისათვის, რომ გამოყენებულ იქნას სხვა BLE პროექტებისთვის.

ეს არის სქემატური (pdf ვერსია)

ჯერ შეაერთეთ SMD კომპონენტები, შემდეგ დააინსტალირეთ SKYLAB SKB369 დაფა

თითქმის ყველა კომპონენტი არის ზედაპირზე დამონტაჟებული მოწყობილობები (SMD). კონდენსატორების და IC– ების ხელით შედუღება ძნელია. შემოთავაზებული მეთოდია PCB- ის დაჭერა ვიცეში და მცირე რაოდენობის გამდნარი პასტის გამოყენება ბალიშებზე და SMD კომპონენტების განთავსება, გარდა PCB- ზე SKB369 დაფისა. შემდეგ გამოიყენეთ სითბოს იარაღი, წაისვით სითბო PCB– ის ქვედა მხარეზე, სანამ გამდნარი პასტა არ დნება და შემდეგ გააკეთეთ სწრაფი გადატანა დაფის ზედა ნაწილზე, ფრთხილად იყავით, რომ არ აფეთქდეს კომპონენტები. საბოლოოდ შეხეთ კომპონენტები პატარა წვერით გამაგრილებელი რკინით. ფრთხილად იყავით კონდენსატორებთან და რეზისტენტთან, რადგან ადვილია ორივე ბოლოების დნება და კომპონენტის დაშლა ერთ ბოლოში შედუღებისას.

ეს გადახედვა დამატებით 22uF 16V კერამიკულ კონდენსატორებს. ეს დამატებითი კონდენსატორები ამცირებენ ბატარეიდან ამოღებულ დენებს და ასევე ამცირებენ ძაბვის ვარდნას მზის უჯრედებიდან კვებისას. სანამ მზის უჯრედებიდან ძაბვა რჩება ბატარეის ძაბვის ზემოთ, ბატარეიდან დენი არ გამოდის.

SMD კომპონენტების დამონტაჟების შემდეგ, შეგიძლიათ შედუღოთ SKYLAB SKB369 დაფაზე. SKB369 ჩანართების ერთ მხარეს არის ორი საცდელი წერტილის ხვრელი. გამოიყენეთ ორი ქინძისთავი მუყაოს ბაზაზე SKB369 დაფის დასაყენებლად და ფინჯნების გასწორების მიზნით. (იხილეთ ფოტო ზემოთ, Revision 1 PCB– ის გამოყენებით) შემდეგ შეაერთეთ საპირისპირო მხარის ერთი პინი, რომ დაფა დაიჭიროთ სხვა ქინძისთავების გამაგრებამდე.

გაითვალისწინეთ Gnd კავშირის მავთული CLK– დან GND– ში მზა ნაწილში. ეს არის დაინსტალირებული პროგრამირების შემდეგ, რათა თავიდან იქნას აცილებული ხმაური CLK შეყვანისას, რამაც გამოიწვია nRF52 ჩიპი მაღალი მიმდინარე გამართვის რეჟიმში

სამონტაჟო საქმე

სამონტაჟო კორპუსი დამზადებულია პერსპექსის ორი ნაწილისგან, 110 მმ x 35 მმ, 3 მმ სისქით. მზის უჯრედების ქვეშ არსებული 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– დან - გამართვისა და კვალი გვერდზე DAP - გამართვის წვდომის პორტი. გარე გამხსნელს შეუძლია მოწყობილობაზე წვდომა DAP– ის საშუალებით. DAP ახორციელებს სტანდარტულ ARM® CoreSight ™ სერიული მავთულის გამართვის პორტს (SW-DP). SW-DP ახორციელებს სერიული მავთულის გამართვის პროტოკოლს (SWD), რომელიც არის ორ პინიანი სერიული ინტერფეისი, SWDCLK და SWDIO

მნიშვნელოვანია: SWDIO ხაზს აქვს შიდა გამყვანი რეზისტორი. SWDCLK ხაზს აქვს შიდა გამყვანი რეზისტორი.

CTRL -AP - კონტროლის წვდომის პორტი. საკონტროლო წვდომის პორტი (CTRL-AP) არის პერსონალური წვდომის პორტი, რომელიც შესაძლებელს ხდის მოწყობილობის კონტროლს მაშინაც კი, თუ DAP– ის სხვა წვდომის პორტები გამორთულია წვდომის პორტის დაცვის მიერ. წვდომის პორტის დაცვა ბლოკავს გამომმუშავებელს წაკითხვისა და ჩაწერის წვდომას CPU– ს ყველა რეგისტრზე და მეხსიერებაში ასახულ მისამართებზე. გამორთეთ წვდომის პორტის დაცვა. წვდომის პორტის დაცვა შეიძლება გამორთული იყოს მხოლოდ CTRL-AP– ით ERASEALL ბრძანების გაცემით. ეს ბრძანება წაშლის Flash, UICR და RAM.

შეარჩიეთ CMSIS-DAP, როგორც პროგრამისტი Particle's Debugger– ისთვის და შეარჩიეთ nRF5 Flash SoftDevice

თუ Flash მუშაობს, მაშინ ეს ნორმალურია, მაგრამ ხშირად მოდულები დაცული იქნება ხელახალი პროგრამირებისგან და თქვენ მიიღებთ ამ შეცდომის გამომუშავებას Arduino ფანჯარაში

გახსენით ჩიპების გამხსნელი debug_level: 2 ინფორმაცია: მხოლოდ ერთი სატრანსპორტო ვარიანტი; autoselect 'swd' ადაპტერის სიჩქარე: 10000 kHz cortex_m reset_config sysresetreq ინფორმაცია: CMSIS-DAP: SWD მხარდაჭერილი ინფორმაცია: CMSIS-DAP: ინტერფეისის ინიციალიზებული (SWD) ინფორმაცია: CMSIS-DAP: FW ვერსია = 1.10 ინფორმაცია: SWCLK/TCK = TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1 ინფორმაცია: CMSIS-DAP: ინტერფეისი მზად არის ინფორმაცია: შეამციროს სიჩქარის მოთხოვნა: 10000kHz 5000kHz მაქსიმალური ინფორმაცია: საათის სიჩქარე 10000 kHz ინფორმაცია: SWD IDCODE 0x2ba01477 შეცდომა: ვერ ვიპოვე -AP ძირითადი შეცდომის გასაკონტროლებლად: სამიზნე ჯერ არ არის გამოკვლეული შეცდომა SoftDevice- ის მოციმციმეობისას.

ამ შემთხვევაში თქვენ უნდა დააყენოთ ERASEALL ბრძანების რეესტრი nRF52– ში მეხსიერების გასასუფთავებლად და მოწყობილობის დასაპროგრამირებლად. ვერსია openOCD, რომელიც მოწოდებულია sandeepmistry nRF52– ით, არ შეიცავს apreg ბრძანებას, რომელიც საჭიროა ERASEALL ბრძანების რეესტრში დასაწერად, ასე რომ თქვენ უნდა დააინსტალიროთ უფრო გვიანდელი ვერსია.

დააინსტალირეთ OpenOCD ვერსია OpenOCD-20181130 ან უფრო მაღალი. Windows წინასწარ შედგენილი ვერსია ხელმისაწვდომია https://gnutoolchains.com/arm-eabi/openocd/ უახლესი კოდი ხელმისაწვდომია

გახსენით ბრძანების სტრიქონი და შეცვალეთ dir OpenOCD ინსტალაციის დირექტორიაში და შეიყვანეთ ბრძანება

bin / openocd.exe -d2 -f ინტერფეისი/cmsis -dap.cfg -f target/nrf52.cfg

პასუხი არის

გახსენით ჩიპების გამხსნელი bugs.html debug_level: 2 ინფორმაცია: პირველი ხელმისაწვდომი სესიის ავტომატური შერჩევა "swd". გამოსაყენებლად გამოიყენეთ "ტრანსპორტის შერჩევა". ადაპტერის სიჩქარე: 1000 kHz cortex_m reset_config sysresetreq ინფორმაცია: 6666 პორტის მოსმენა tcl კავშირებისთვის ინფორმაცია: 4444 პორტის მოსმენა Telnet კავშირებისთვის ინფორმაცია: 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 kHz ინფორმაცია: SWD DPIDR 0x2ba01477 შეცდომა: MEM-AP ვერ მოიძებნა ძირითადი ინფორმაციის გასაკონტროლებლად: მოსმენა პორტში 3333 gdb კავშირებისთვის

შემდეგ გახსენით ტერმინალის ფანჯარა მაგ. TeraTerm (Windows) ან CoolTerm (Mac) და დაუკავშირდით 127.0.0.1 პორტს 4444

ტელნეტის ფანჯარა აჩვენებს> და ბრძანების სტრიქონი აჩვენებს ინფორმაციას: ტელნეტის კავშირის მიღება tcp/4444

ტელნეტის ფანჯარაში (ანუ TeraTerm) typenrf52.dap apreg 1 0x04 ეს აბრუნებს 0x00000000, სადაც ნაჩვენებია ჩიპი დაცულია. შემდეგ ტიპი

დახურეთ ტელნეტის კავშირი და ასევე გამოიყენეთ Ctrl-C, რომ გამოხვიდეთ openOCD პროგრამიდან ბრძანების სტრიქონში და შემდეგ ჩართეთ 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 შემცვლელ დაფას. შეარჩიეთ ის დაფის სახით და შემდეგ შეგიძლიათ მისი დაპროგრამება lp_BLE_TempHumidity, lp_BLE_TempHumidity_R3.zip გადახედვით 3, როგორც ეს აღწერილია მე -2 ნაწილში.

თუ პროგრამირება ვერ მოხერხდა. დახურეთ Arduino– ს ყველა ფანჯარა, ამოიღეთ USB კაბელები, გადატვირთეთ Arduino და შეაერთეთ პროგრამისტის USB კაბელი უკან და შეაერთეთ nRF52 მოდულის USB წყარო და ისევ სცადეთ.

შემდეგ დაუკავშირდით pfodApp– ის საშუალებით, რომ აჩვენოთ მიმდინარე და ისტორიული ტემპერატურა და ტენიანობა. მას შემდეგ რაც აჩვენებთ ისტორიულ ნაკვეთს, კითხვები, მილიწამიანი დროის ნიშნებით, ინახება თქვენს მობილურ ჟურნალში და ასევე ხელმისაწვდომია ნედლი მონაცემების ეკრანზე.

ჟურნალის ფაილი ასევე შეიცავს დამატებით მონაცემებს, რომლებიც აუცილებელია ცხრილში თარიღისა და დროის ნაკვეთების ხელახლა შესაქმნელად. დეტალებისთვის იხილეთ Arduino თარიღი და დრო millis () და pfodApp გამოყენებით

ნაბიჯი 6: ახალი Arduino NRF52 დაფის განსაზღვრის შექმნა

ახალი Arduino NRF52 დაფის განსაზღვრის შექმნა
ახალი Arduino NRF52 დაფის განსაზღვრის შექმნა
ახალი Arduino NRF52 დაფის განსაზღვრის შექმნა
ახალი Arduino NRF52 დაფის განსაზღვრის შექმნა
ახალი Arduino NRF52 დაფის განსაზღვრის შექმნა
ახალი Arduino NRF52 დაფის განსაზღვრის შექმნა
ახალი Arduino NRF52 დაფის განსაზღვრის შექმნა
ახალი Arduino NRF52 დაფის განსაზღვრის შექმნა

ახალი nRF52 დაფის მხარდასაჭერად თქვენ უნდა ა) დაამატოთ ახალი დირექტორია ვარიანტების დირექტორიაში დაფის ფაილებით და ბ) შეცვალოთ boards.txt ფაილი, რომ დაამატოთ ახალი დაფა Arduino– ში.

ახალი nRF52 დაფის ვარიანტის დამატება

როგორც აღწერილია 1 ნაწილში, pfod_lp_nrf52 აპარატურის მხარდაჭერის ინსტალაცია, იპოვეთ sandeepmistry პაკეტის აპარატურის ქვე დირექტორია, რომელიც თქვენ განაახლეთ pfod_lp_nrf52 მხარდაჭერით. გახსენით / აპარატურა / nRF5 / 0.6.0 / ვარიანტების ქვე კატალოგი და შექმენით ახალი დირექტორია თქვენი ახალი დაფისთვის, მაგ. variant.cpp და pins_arduino.h თქვენ შეგიძლიათ დააკოპიროთ ისინი დაფის სხვა ვარიანტების დირექტორიებიდან. SKYLAB_SKB369_Nano2 შეცვლისთვის, მე თავდაპირველად გადავაკოპირე ფაილები RedBear_BLENano2 ვარიანტიდან.

pins_arduino.h ფაილი

Pins_arduino.h ფაილი არ უნდა შეიცვალოს. ის უბრალოდ შეიცავს variant.h ფაილს

variant.h ფაილი

შეცვალეთ variant.h ფაილი, რომ განსაზღვროთ თქვენი დაფის ქინძისთავების საერთო რაოდენობა, PINS_COUNT

შენიშვნა: Sandeepmistry პაკეტში, NUM_DIGITAL_PINS, NUM_ANALOG_INPUTS და NUM_ANALOG_OUTPUTS პარამეტრები იგნორირებულია

თუ თქვენი დაფა მეტნაკლებად ანალოგიურ ქინძისთავებს იძლევა, განაახლეთ variant.h ფაილის / * ანალოგური ქინძისთავები / განყოფილება.

შენიშვნა: NanoV2 და SKYLAB დაფებისთვის ანალოგური ქინძისთავები ასახულია ციფრულ ქინძისთავებზე A0 == D0 და ა

ეს არ არის არსებითი. თქვენ შეგიძლიათ მიანიჭოთ ანალოგური შეყვანა ნებისმიერ მოსახერხებელ არდუინოს პინს. იხილეთ შემდეგ blue/variant.h და blue/variant.cpp ფაილები მაგალითისთვის.

NRF52832 ჩიპს აქვს 8 ანალოგური შეყვანის ქინძი, მაგრამ SKYLAB_SKB369_Nano2 შეცვლის დაფა მხოლოდ 6 მათგანს იძლევა Nano2– ის შესატყვისად.

ყველა pin ნომერი, RESET_PIN- ის გარდა, variant.h ფაილში არის Arduino პინის ნომრები. ეს არის #განსაზღვრული PIN_A0 (0) გულისხმობს, რომ არდუინოს ესკიზში D0 არის იგივე პინი, როგორც A0. RESET_PIN არის გამონაკლისი. ეს ნომერი არის nRF52823 ჩიპის პინის ნომერი და 21 ერთადერთი სწორი არჩევანია. თუმცა pfod_lp_nrf52 მხარდაჭერა არ ჩართავს გადატვირთვის პინს nRF52832

variant.cpp ფაილი

Variant.cpp ფაილში არის მხოლოდ ერთი ჩანაწერი, g_ADigitalPinMap მასივი, რომელიც ადგენს Arduino პინის ნომრებს nRF52832 ჩიპ P0.. ქინძისთავებს

შენიშვნა: NanoV2 და SKYLAB დაფებზე, Arduino– ს ანალოგური ქინძისთავები A0, A1… იგივეა, რაც Arduino ციფრული ქინძისთავები D0, D1… ასე რომ, პირველი ჩანაწერები g_ADigitalPinMap - ში უნდა ასახავდეს AINx პინ ნომრებს nRF52832 ჩიპზე

თქვენი დაფისათვის ხელმისაწვდომი ანალოგური შეყვანისთვის, ამ ჩანაწერებში g_ADigitalPinMap უნდა შეინიშნოს nRF52832 AIN0, AIN1, AIN2 და ა.შ. პინ ნომრები. ანუ AIN0 არის ჩიპის პინი P0.02, AIN1 არის ჩიპის პინი P0.03 და ა.შ. იხილეთ nRF52832 პინის განლაგება ზემოთ.

გამოიყენეთ (uint32_t) -1 არასწორი რუკებისათვის. მაგალითად, SKYLAB_SKB369_Nano2 შეცვლის დაფას არ აქვს ჩაშენებული LED, D13, ამიტომ მისი პოზიცია ასახულია (uint32_t) -1

Pfod_lp_nrf52.zip– ში Redbear NanoV2, SKYLAB SKB369 და GT832E_01 ვარიანტების ქვე დირექტორიებში არის სურათები, რომლებიც აჩვენებენ variant.cpp– ის მიერ დადგენილ რუკებს. (იხილეთ სურათები ზემოთ)

იმ შემთხვევაში, SKYLAB SKB369, არსებობს უამრავი ქინძისთავები ასარჩევად. მხოლოდ საკმარისად არის ასახული, რათა შეესაბამებოდეს NanoV2- ს. GT832E_01– ის შემთხვევაში, ყველა არსებული ქინძისთავის რუქა უნდა იყოს ასახული. მაშინაც კი, მხოლოდ სამი (3) ანალოგური შეყვანაა შესაძლებელი ექვსი (6) ნაცვლად NanoV2– ზე. ისევე როგორც ეს ორი NFC ქინძისთავები, P0.09 და P0.10, ხელახლა უნდა იყოს კონფიგურირებული GPIO– ს სახით. იხილეთ nRF52 NFC ქინძისთავების ხელახალი კონფიგურაცია GPIO– ს ქვემოთ.

Boards.txt ფაილის განახლება

აქ არის SKYLAB_SKB369_Nano2 შეცვლის ჩანაწერი boards.txt ფაილში.

## SKYLAB_SKB369 Nano2 ReplacementSKYLAB_SKB369_NANO2_REPLACEMENT.name =*SKYLAB SKB369 Nano2 Replacement

SKYLAB_SKB369_NANO2_REPLACEMENT.upload.tool = sandeepmistry: openocd

SKYLAB_SKB369_NANO2_REPLACEMENT.upload.protocol = cmsis-dap SKYLAB_SKB369_NANO2_REPLACEMENT. SKYLAB_SKB369_NANO2_REPLACEMENT.upload.use_1200bps_touch = false SKYLAB_SKB369_NANO2_REPLACEMENT.upload.wait_for_upload_port = false SKYLAB_SKB369_NANO2_REPLACEMENT.upload

SKYLAB_SKB369_NANO2_REPLACEMENT.bootloader.tool = sandeepmistry: openocd

SKYLAB_SKB369_NANO2_REPLACEMENT.build.mcu = ქერქი-მ 4

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 = მძიმე -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 ხაზი განსაზღვრავს ამ დაფის სახელს არდუინოს დაფის მენიუში.

ატვირთვის ინსტრუმენტი - SKYLAB_SKB369_NANO2_REPLACEMENT.upload ბლოკი განსაზღვრავს რომელი ინსტრუმენტი გამოიყენოს ატვირთვისთვის. თუ თქვენ იყენებთ Particle Debugger- ს მაშინ გამოიყენეთ ოქმი = cmsis-dap როგორც ზემოთ ნაჩვენებია.

ჩამტვირთავი - ეს ხაზი ერთნაირია ამ დაფების ყველა დაფისთვის. 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 კჰც კრისტალი. თუ არა, გამოიყენეთ -DUSE_LFRC, რომელიც იყენებს შიდა RC ოსცილატორს და ოდნავ უფრო მეტ დენს იძენს, u 10uA მეტს, და გაცილებით ნაკლები ჯერ ნაკლები სიზუსტით. არ გამოიყენოთ -DUSE_LFSYNT რადგან ეს ინარჩუნებს ჩიპს მუდმივად მუშაობას, რის შედეგადაც ხდება mAs მიმდინარე გათამაშება.

Softdevice - pfod_lp_nrf52 მხარს უჭერს მხოლოდ nRF52 ჩიპებს და softdevice s132, ასე რომ ცვლილებები არ არის საჭირო ამ ბლოკში, გარდა პრეფიქსისა.

NRF52 NFC ქინძისთავების ხელახალი კონფიგურაცია GPIO– ს სახით

იყავით ნაგულისხმევი nRF52 ქინძისთავებზე, P0.09 და P0.10 კონფიგურირებულია NFC– ის გამოყენებისთვის და ველით, რომ დაუკავშირდება NFC ანტენას. თუ თქვენ გჭირდებათ მათი გამოყენება როგორც ზოგადი დანიშნულების I/O ქინძისთავები (GPIO), მაშინ თქვენ უნდა დაამატოთ განსაზღვრება, -DCONFIG_NFCT_PINS_AS_GPIOS, იმ დაფის… menu.softdevice.s132.build.extra_flags შეადგინოთ პარამეტრები boards.txt ფაილში.

მაგალითად pfod_lp_nrf52.zip, ხელახლა ახდენს კონფიგურაციას GT832E_01 ქინძისთავებისთვის I/O გამოყენებისთვის. ამ დაფის GT832E_01 განყოფილებაში, boards.txt ფაილში, დამატებულია შემდეგი განსაზღვრება

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

ბმულის სკრიპტი pfod_lp_nrf52.zip- ში ასევე შეცვლილია ამ პარამეტრის შესანარჩუნებლად და არ საჭიროებს შეცვლას.

ნაბიჯი 7: დასკვნა

ამ სახელმძღვანელოში წარმოდგენილია Redbear NanoV2– ის შემცვლელი SKYLAB SKB369 მოდულის გამოყენებით. ბატარეის/მზის ენერგიაზე მომუშავე ტემპერატურის ტენიანობის მონიტორი იქნა გამოყენებული, როგორც მაგალითი ძალიან დაბალი სიმძლავრის BLE პროექტი არდუინოში SKYLAB მოდულისთვის. მიაწოდეთ დენები u 29uA, სადაც მიიღწევა კავშირის პარამეტრების დარეგულირებით. ამან გამოიწვია CR2032 მონეტის ელემენტის ბატარეის ხანგრძლივობა ~ 10 თვე. დიდი ხანია უფრო მაღალი სიმძლავრის მონეტის უჯრედები და ბატარეები. ორი იაფი მზის უჯრედის დამატება მარტივად ახანგრძლივებს ბატარეის მუშაობას 50% -ით ან მეტით. ოთახის ნათელი შუქი ან სამაგიდო ნათურა საკმარისია მონიტორის მზის უჯრედებიდან.

ეს გაკვეთილი ასევე მოიცავდა ჩიპების დაცვის ამოღებას წინასწარ დაპროგრამებული nRF52– დან და როგორ უნდა შეიქმნას ახალი დაფის განმარტება, რომელიც ემთხვევა თქვენს საკუთარ PCB/წრეს

Android პროგრამირება არ არის საჭირო. pfodApp ამუშავებს ამ ყველაფერს.

გირჩევთ: