diff --git a/Instrukcje.md b/Instrukcje.md index cfbc190175f6123d0ac3b19f4da7f2eab5bb3bbf..3973c691522539a2c0c6801b02545b88a048ff41 100644 --- a/Instrukcje.md +++ b/Instrukcje.md @@ -189,18 +189,40 @@ img: https://www.vhv.rs/viewpic/iJxRhbb_free-vector-electronic-phototransistor-p ## Konwerter analogowo-cyfrowy W przypadku diody w lab1 API nrf52 zajÄĹo siÄ wszystkimi niskopoziomowymi problemami za nas, by zapaliÄ diodÄ. JeĹli chcemy wysterowaÄ lub odczytaÄ inny element musimy napisaÄ sterownik samemu. Do tego moĹźemy uĹźyÄ znanego juĹź GPIO lub ADC (Analog-Digital Converter), korzystajÄ c z niskopoziomowego API tych moduĹĂłw. -Konwerter ADC zamienia wartoĹÄ analogowÄ (napiÄcie) na wartoĹÄ cyfrowÄ (liczbÄ w pamiÄci). + <p align="center"> + <img src="./instrukcje_img/adc.png" "Title" > +</p> +<p align="center"> + *Rys. 6: Schemat SAADC* +</p> + +Konwerter ADC zamienia wartoĹÄ analogowÄ (napiÄcie) na wartoĹÄ cyfrowÄ (liczbÄ w pamiÄci). Nrf52 posiada moduĹ SAADC czyli Successive approximation analog-to-digital converter. Konwerter ma 8 kanaĹĂłw pojednczych, ktĂłre moĹźna skonfigurowaÄ teĹź jako 4 kanaĹy róşnicowe. KaĹźdy kanaĹ ma wejĹcie dodatnie i ujemne. Dla zwykĹego nieróşnicowego pomiaru kanaĹ negatywny jest zwarty z masÄ , czyli ma zerowe napiÄcie. Do tego dla kaĹźdego kanaĹu moĹźemy wybraÄ osobne napiÄcia referencyjne, domyĹlnie jest to 0.6V. NapiÄcie referencyjne jest jednak zwiÄkszane za pomocÄ opcji gain, domyĹlnie jest to 1/6 co zwiÄksza referencjÄ 6ciokrotnie. + + + +Konwersja dla pomairu nieróşnicowego polega na porownaniu napiÄcia referencyjnego do wejĹcia P ADC. Róşnica miÄdzy tymi napiÄciami jest zapisana na X bitach gdzie X jest rozdzielczoĹciÄ ADC. Dla domyĹlnej rozdzielczoĹci 10 bitĂłw, result 0 oznacza zerowe napiÄcie, a result 1023 (10 bitĂłw samych jedynek) oznacza napiÄcie referencyjne (3.6V). WartoĹÄ wyjĹciowÄ ADC moĹźemy obliczyÄ wzorem z dokumentacji: + + RESULT = (V(P) â V(N)) * (GAIN/REFERENCE) * 2(RESOLUTION - m) + +Chcemy obliczaÄ napiÄcie wiÄc odwracamy: + + V(P)= RESULT / (GAIN/REFERENCE) * 2(RESOLUTION - m) +V(N) + +Dla pomiaru nieróşnicowego napiÄcie negatywne N bÄdzie ok. 0 .DomyĹlny gain to 1/6 , a REFERENCE to 0.6V, co daje nam efektywnÄ referencjÄ 3.6V. Ostatecznie dla domyĹlnej konfiguracji: + V(P)= 3.6V * RESULT / 1024 +Czyli dokĹadnie jak wczeĹniej mĂłwiliĹmy, result jest stosunkiem miedzy referencjÄ a wejĹciem ADC. -== TODO == +ĹšróðĹo obrazka i wzoru: +https://infocenter.nordicsemi.com/index.jsp?topic=%2Fps_nrf52840%2Fsaadc.html&cp=4_0_0_5_22 ## Zadania - GĹĂłwnym celem Äwiczenia jest napisanie prostego czujnika oĹwietlenia ktĂłry zapala diodÄ 1 i 0 gdy ĹwiatĹo jest zgaszone, i gasi diody gdy ĹwiatĹo jest zapalone. - Do naszego moduĹu nRF52840, a dokĹadniej do pinu P0.02 podĹÄ czony zostaĹ fototranzystor. Fototranzystor to element optoelektroniczny, ktĂłry pod wpĹywem ĹwiatĹa zmienia napiÄcie na swoim wyjĹciu. MoĹźna zastosowaÄ go jako prosty detektor ĹwiatĹa. Pin P0.02 jest pinem z analogowym wejĹciem(AIN). We wprowadzeniu do Zad1 jest fragment pinoutu mikrokontrolera - sprawdĹş jaki numer wejĹcia analogowego ma ten pin. - WedĹug dokumentacji uzupeĹnijcie inicjalizacjÄ SAADC tak by odbieraÄ skwantyzowane prĂłbki napiÄcia na pinie P0.02 i wysyĹaÄ tÄ wartoĹÄ na USB. Niech timer odmierza kolejne prĂłbki. MoĹźecie przeksztaĹciÄ tÄ wartoĹÄ na faktyczne napiÄcie w mV mnoĹźÄ c jÄ : value*(3.3 + 0.3) * 1000)/1024) [wyjaĹnienie wzoru w dokumentacji]. SprawdĹşcie jak zmienia siÄ ta wartoĹÄ gdy ĹwiatĹo jest zapalone i zgaszone i na tej podstawie wybierzcie jakÄ Ĺ wartoĹÄ granicznÄ . +GĹĂłwnym celem Äwiczenia jest napisanie prostego czujnika oĹwietlenia ktĂłry zapala diodÄ 1 i 0 gdy ĹwiatĹo jest zgaszone, i gasi diody gdy ĹwiatĹo jest zapalone. +Do naszego moduĹu nRF52840, a dokĹadniej do pinu P0.02 podĹÄ czony zostaĹ fototranzystor. Fototranzystor to element optoelektroniczny, ktĂłry pod wpĹywem ĹwiatĹa zmienia napiÄcie na swoim wyjĹciu. MoĹźna zastosowaÄ go jako prosty detektor ĹwiatĹa. Pin P0.02 jest pinem z analogowym wejĹciem(AIN). We wprowadzeniu do Zad1 jest fragment pinoutu mikrokontrolera - sprawdĹş jaki numer wejĹcia analogowego ma ten pin. +WedĹug dokumentacji uzupeĹnijcie inicjalizacjÄ SAADC tak by odbieraÄ skwantyzowane prĂłbki napiÄcia na pinie P0.02 i wysyĹaÄ tÄ wartoĹÄ na USB. Niech timer odmierza kolejne prĂłbki. MoĹźecie przeksztaĹciÄ tÄ wartoĹÄ na faktyczne napiÄcie w mV mnoĹźÄ c jÄ : (result*(3.6 )/1024) * 1000. SprawdĹşcie jak zmienia siÄ ta wartoĹÄ gdy ĹwiatĹo jest zapalone i zgaszone i na tej podstawie wybierzcie jakÄ Ĺ wartoĹÄ granicznÄ . Dokumentacja: https://infocenter.nordicsemi.com/index.jsp?topic=%2Fsdk_nrf5_v16.0.0%2Fgroup__nrf__drv__saadc.html&anchor=ga4f67c6dad745133956b9ffc9df68d145 @@ -222,7 +244,7 @@ Warto pamiÄtaÄ, Ĺźe wszystkie popularne standardy komunikacji bezprzewodowej ( <img src="./instrukcje_img/blestack.png" "Title" > </p> <p align="center"> - *Rys. 6: Stos BLE. Zejdziemy najniĹźej do obsĹugi warstw GATT i GAP* + *Rys. 7: Stos BLE. Zejdziemy najniĹźej do obsĹugi warstw GATT i GAP* </p> Podobnie jak protokóŠTCP/IP, BLE ma swĂłj wĹasny stos (rys.). PiszÄ c aplikacje oparte na BLE bÄdziemy operowaÄ na dwĂłch warstwach stosu BLE: GAP i GATT. @@ -320,7 +342,7 @@ Jest to zazwyczaj urzÄ dzenie sterujÄ ce np. smartfon. Centrale GAP sÄ zazwycza <img src="./instrukcje_img/GattStructure.png" "Title" > </p> <p align="center"> - *Rys. 7: Struktura profilu GATT* + *Rys. 8: Struktura profilu GATT* </p> diff --git a/instrukcje_img/adc.png b/instrukcje_img/adc.png new file mode 100644 index 0000000000000000000000000000000000000000..73ce0e537ec35385d90a873ccd8a56514aad22c0 Binary files /dev/null and b/instrukcje_img/adc.png differ