Sadržaj:

Prijenosni generator funkcija na WiFi i Androidu: 10 koraka
Prijenosni generator funkcija na WiFi i Androidu: 10 koraka

Video: Prijenosni generator funkcija na WiFi i Androidu: 10 koraka

Video: Prijenosni generator funkcija na WiFi i Androidu: 10 koraka
Video: Как УСКОРИТЬ ИНТЕРНЕТ на Samsung телефоне и сделать скорость быстрее на Galaxy? 2024, Studeni
Anonim
Prijenosni generator funkcija na WiFi i Android
Prijenosni generator funkcija na WiFi i Android
Prijenosni generator funkcija na WiFi i Android
Prijenosni generator funkcija na WiFi i Android
Prijenosni generator funkcija na WiFi i Android
Prijenosni generator funkcija na WiFi i Android
Prijenosni generator funkcija na WiFi i Android
Prijenosni generator funkcija na WiFi i Android

Pred kraj 20. stoljeća pojavile su se razne tehnološke inovacije, osobito u području komunikacija; ali ne samo. Za nas, korisnike, potrošače i inženjere došlo je do brzog razvoja elektroničkih uređaja koji nam mogu uvelike olakšati život: pametni satovi, pametne kuće, pametni telefoni itd.

Budući da danas sve može biti "pametno", odlučio sam dizajnirati superkorisni uređaj koji će biti dio bitne elektroničke laboratorijske opreme - prijenosni generator funkcija, kojim se može upravljati putem pametnog telefona sa sustavom Android OS putem WiFi izravne ili WiFi lokalne mreže (WLAN)).

Zašto bismo trebali graditi ovaj uređaj?

Velika većina opreme za testiranje danas je prilično skupa. A ponekad ti uređaji nisu prijenosni. Kao rješenje za visoke cijene, nedostatak prenosivosti i nedostatak pristupa mreži uređaja, uređaj nudi dvokanalni generator valnog oblika, koji je doista prenosiv i ima neograničen pristup mreži - bilo internetskoj ili lokalnoj.

I naravno, uređaj bi trebao biti izgrađen zbog entuzijazma, poštujući DIY principe - ponekad jednostavno moramo učiniti sami kako bismo se osjećali ispravno:)

Glavne značajke

Napajanje

  • USB priključak tipa A, za sustave napajanja i programiranje
  • Kompletan sustav upravljanja Li -Ion baterijama - Punjenje i stabilni načini rada
  • Implementacija pametnog prekidača - nema potrebe za prekidačem za uključivanje / isključivanje
  • Dvostruko napajanje: +3,3 V i -3,3 V za generiranje simetričnog napona

Generiranje valnog oblika

  • Implementacija istosmjerne razine na izlaznoj kaskadi - pristrani valni oblik između granica napona
  • Generiranje valnog oblika tipa 4 zasnovano na DDS -u - sinus, trokut, kvadrat i istosmjerna struja
  • Podrška za frekvencije do 10 MHz
  • Izlazna struja do 80mA s raspoloživom maksimalnom snagom od 500mW
  • Odvojeni kanali za generiranje valnog oblika - podijeljeni sklopovi temeljeni na AD9834

Komunikacija

  • Implementacija ESP32 - Primjenjive WiFi mogućnosti
  • Potpuna TCP/IP podrška putem generatorskog uređaja i Android pametnog telefona
  • Sposobnost spremanja korisničkih parametara za svaki ciklus uređaja
  • Praćenje stanja - oba sustava su međusobno svjesna stanja: FuncGen (nazovimo ga od sada ovako) i pametni telefon.

Korisničko sučelje

  • LCD s 20 x 4 znaka s jednostavnim 4-bitnim podatkovnim sučeljem
  • Android aplikacija - potpuna korisnička kontrola nad uređajem FuncGen
  • Krug zujalice - zvučna povratna informacija korisniku

Korak 1: Blok dijagram - hardver

Blok dijagram - hardver
Blok dijagram - hardver
Blok dijagram - hardver
Blok dijagram - hardver

Jedinica mikrokontrolera - ATMEGA32L

Mikrokontroler je programabilni čip koji se sastoji od svih računalnih funkcija koje se nalaze u jednom elektroničkom čipu. U našem slučaju to je „mozak“i središnja komponenta sustava. Svrha MCU -a je upravljati svim perifernim sustavima, upravljati komunikacijom između ovih sustava, kontrolirati rad hardvera i pružati potpunu podršku za korisničko sučelje i njegovu interakciju sa stvarnim korisnikom. Ovaj projekt se temelji na ATMEGA32L MCU, koji može raditi na 3.3V i frekvenciji od 8MHz.

Komunikacijski SoC - ESP32

Ovaj SoC (System on Chip) pruža potpunu komunikacijsku podršku za FuncGen - Pristup WiFi mogućnostima uključujući izravnu, lokalnu ili internetsku komunikaciju. Svrha uređaja je:

  • Rukovanje prijenosom podataka između Android aplikacije i FuncGen uređaja
  • Upravljanje kontrolnim/podatkovnim porukama
  • Podrška za kontinuiranu konfiguraciju klijent-poslužitelj TCP/IP

U našem projektu SoC je espressif ESP32, koji je previše popularan da bismo ga dodatno proširili:)

Sustav upravljanja Li-Ion baterijom

Kako bi naš uređaj pretvorili u prijenosni, uređaj sadrži osmišljen krug za punjenje Li-Ion baterije. Krug se temelji na MC73831 IC, s kontroliranom strujom punjenja podešavanjem vrijednosti jednog programskog otpornika (Ovu temu ćemo obraditi u koraku Sheme). Ulaz za napajanje uređaja je USB priključak tipa A.

Krug pametnog prekidača

Krug upravljanja napajanjem pametnog prekidača pruža potpunu softversku kontrolu nad sekvencom isključivanja uređaja i nedostatkom potrebe za vanjskim prekidačem za isključivanje napona baterije uređaja. Sve operacije napajanja obavljaju se pritiskom na gumb i softverom MCU -a. U nekim bi slučajevima bilo potrebno isključiti sustav: Nizak napon baterije, visoki ulazni napon, komunikacijska pogreška itd. Pametni prekidač temelji se na inteligentnoj sklopci prekidača STM6601, jeftino je i vrlo prijateljsko za igru.

Glavna jedinica za napajanje

Ova jedinica sastoji se od dva kruga napajanja napajanog baterijom - +3,3 V za sve digitalne / analogne opskrbne krugove i -3,3 V za FunGen simetrični izlaz u odnosu na potencijal 0 V (tj. Generirani valni oblik može se postaviti u [-3,3 V: 3,3 V] regija.

  • Glavni opskrbni krug temelji se na linearnom regulatoru napona LP3875-3.3 LDO (nisko ispadanje) 1A.
  • Sekundarni opskrbni krug temelji se na IC-u LM2262MX, koji izvodi istosmjernu-istosmjernu pretvorbu negativnog napona putem kondenzatorske pumpe-sustava na kojem se temelji IC.

Sustav generatora valnih oblika

Sustav je dizajniran s naglaskom na zasebnim DDS (izravna digitalna sinteza) integriranim krugovima, koji omogućuju potpunu kontrolu generiranja valnog oblika pomoću MCI -jevog SPI (serijsko periferno sučelje). Krugovi koji su korišteni u dizajnu su analogni uređaji AD9834 koji mogu pružiti različite vrste valnih oblika. Izazovi s kojima se moramo suočiti tijekom rada s AD9834 su:

  • Fiksna amplituda valnog oblika: Amplitudu valnog oblika kontrolira vanjski DAC modul
  • Bez obzira na pomak DC razine: Implementacija zbrojnih krugova sa željenim vrijednostima pomaka istosmjernog napona
  • Odvojeni izlazi za kvadratni val i trokut/sinusni val: Implementacija visokofrekventnog sklopnog sklopa pa svaki pojedinačni izlaz kanala može pružiti svu željenu valnu formu: sinus, trokut, kvadrat i DC.

Zaslon s tekućim kristalima

LCD je dio korisničkog sučelja (korisničko sučelje), a njegova je svrha omogućiti korisniku da razumije što uređaj radi u načinu rada u stvarnom vremenu. On komunicira s korisnikom u svakom stanju uređaja.

Zvučni signal

Jednostavno kolo generatora tonova za dodatnu povratnu informaciju od uređaja do korisnika.

Integrirani ISP programer

Svaki inženjer ima stalni problem kada je u pitanju proces programiranja: Uvijek postoji najgora potreba da rastavite proizvod kako biste ga reprogramirali novim firmverom. Kako bi se prevladala ova neugodnost, AVR ISP programer je spojen na uređaj iznutra, dok su USB podaci i vodovi povezani s USB priključkom tipa A uređaja. U ovoj konfiguraciji samo moramo priključiti naš FuncGen putem USB kabela za programiranje ili punjenje!

Korak 2: Blok dijagram - umrežavanje

Blok dijagram - Umrežavanje
Blok dijagram - Umrežavanje

Generator dvokanalnih funkcija

Glavni uređaj. Ona koju smo pregledali u prethodnom koraku

ESP-WROOM-32

Integrirani sustav na čipu s mogućnostima WiFi i BLE. SoC je priključen na glavnu ploču (ovo ćemo opisati u koraku sa shemama) putem UART modula i djeluje kao prijenosnik poruka između glavnog uređaja i Android pametnog telefona.

WiFi lokalna mreža

Pametni telefon i uređaj komunicirat će putem WiFi izravne ili lokalne mreže, na temelju konfiguracije TCP poslužitelja/klijenta. Kada se uređaji međusobno prepoznaju na WiFi -u, glavni uređaj stvara TCP poslužitelj s odgovarajućim parametrima i može slati/primati poruke. Uređaj djeluje kao sekundarni dio pametnog telefona. Android uređaj, s druge strane, povezuje se s TCP poslužiteljem kao klijentski mrežni uređaj, ali se smatra primarnim odašiljačem poruka - pametni telefon je taj koji započinje potpuni komunikacijski ciklus: Slanje poruke - primanje odgovora.

Android pametni telefon

Pametni uređaj sa sustavom Android OS koji radi na aplikaciji FuncGen

Korak 3: Dijelovi, alati, IDE i opis materijala

Dijelovi, alati, IDE i materijal
Dijelovi, alati, IDE i materijal
Dijelovi, alati, IDE i materijal
Dijelovi, alati, IDE i materijal
Dijelovi, alati, IDE i materijal
Dijelovi, alati, IDE i materijal

Opis materijala (vidi priloženu XLS tablicu)

UI i veze sustava

  • 1 x 2004A Char-LCD 20x4 plava
  • 1 x USB priključak tipa B
  • 1 x 10 kompleta Mini Micro JST XH 2,54 mm 4 pin
  • 1 x 6kom. Trenutni SW

Naručivanje PCB -a (prema Seeed Studio)

Osnovni materijal FR-4

Broj slojeva 2 sloja

Količina PCB -a 10

Br. Različitih dizajna 1

Debljina PCB -a 1,6 mm

PCB boja plava

Površinska obrada HASL

Minimalna brana maske za lemljenje 0,4 mm ↑

Težina bakra 1 oz

Minimalna veličina rupe za bušenje 0,3 mm

Širina traga / razmak 6/6 mil

Pozlaćene polu-rupe / kastelirane rupe br

Kontrola impedancije br

Alati

  • Pištolj za vruće ljepilo
  • Pinceta
  • Rezač
  • ~ 22AWG žica za rukovanje kvarovima
  • Lemilica/stanica
  • Lim za lemljenje
  • SMD prepravna stanica (izborno)
  • 3D pisač (izborno)
  • Ekstrudiranje datoteke
  • AVR ISP programer
  • USB u serijski pretvarač (izborno, za potrebe otklanjanja pogrešaka)

Integrirano razvojno okruženje (IDE) i softver

  • Autodesk EAGLE ili Cadence Schematic Editor / Allegro PCB Editor
  • OpenSCAD (izborno)
  • Ultimaker Cura (izborno)
  • Saleae Logic (Za rješavanje problema)
  • Atmel Studio 6.3 ili novija verzija
  • Android Studio ili Eclipse IDE
  • Docklight serijski monitor / drugi softver za nadzor COM porta
  • ProgISP za programiranje bljeskalice AVR ATMEGA32L

Korak 4: Dizajn hardvera - glavna ploča

Dizajn hardvera - glavna ploča
Dizajn hardvera - glavna ploča
Dizajn hardvera - glavna ploča
Dizajn hardvera - glavna ploča
Dizajn hardvera - glavna ploča
Dizajn hardvera - glavna ploča

Krug za upravljanje baterijom

Krug punjenja baterije temelji se na IC -u MCP7383, što nam omogućuje odabir željene struje punjenja Li -Ion baterije - 3,7 V kapaciteta 850 mAh. Struja punjenja se u našem slučaju podešava programiranjem vrijednosti otpornika (R1)

R1 = 3KOhm, I (punjenje) = 400mA

USB napon VBUS filtrira se pomoću π-filtra (C1, L3, C3) i djeluje kao izvor napajanja za krug punjenja.

Krug razdjelnika napona (R2, R3) omogućuje MCU -u da pokaže je li vanjsko USB napajanje priključeno ili ne, davanjem sljedećeg napona na MCU A/D kanal:

V (indikacija) ~ (2/3) V (BUS)

Budući da je naš A/D ATMEGA32L 12-bitni, možemo izračunati digitalni raspon:

A / D (raspon) = 4095V (indikacija) / V (REF).

A/D ∈ [14AH: FFFH]

Jedinica napajanja pametnim prekidačem

Krug omogućuje sustavu da kontrolira napajanje svakog projektiranog bloka i s tipkama i softverom na MCU-u, a temelji se na STM6601 Smart-Switch s opcijom POWER umjesto RESET. Terminali koje želimo razmotriti su sljedeći:

  • PSHOLD - Ulazna linija koja definira stanje uređaja: ako se povuče NISKO, uređaj onemogućuje sve jedinice sekundarnog napajanja (+3,3 V i -3,3 V). Ako je pritisnuto HIGH - uređaj održava UKLJUČENO stanje.
  • nSR i nPB - Ulazni vodovi. Stezaljke na gumb. Kada se na ovim pinovima otkrije padajući rub, uređaj pokušava ući u način uključivanja / isključivanja
  • nINT - Izlazna linija. Povučeno LOW svaki put kad se pritisne gumb
  • HR - Izlazni vod, koristi se za omogućavanje napajanja sekundarnih jedinica napajanja. Dok se drži NISKO, oba sekundarna izvora napajanja su onemogućena

Prije nego što prijeđemo na konačni dizajn, postoje neke važne napomene:

  • PSHOLD bi trebalo povući na 3,3 V, jer postoje slučajevi kada MCU-i prisiljavaju sve U/I da budu u stanju VISOKOG Z. U ovom slučaju stanje PSHOLD iz MCU -a je nepoznato i može dramatično utjecati na proces programiranja uređaja.
  • STM6601 treba naručiti s opcijom podešavanja EN -a pri dugom pritisku, umjesto opcije RESET (pao sam u to).

Napajanje: +3.3V

Glavno napajanje za sve sustave u našem projektu. Kad se +3.3V vod drži na razini GND (tj. Nema napona), svi IC osim pametnog prekidača su onemogućeni. Krug se temelji na LDO LP-3875-3.3 IC, s mogućnošću upravljanja putem EN terminala i daje struju do 1A.

Izvor napajanja za ovaj krug je napon baterije, s priključenim A/D indikatorom za prepoznavanje VBAT -a u konfiguraciji, slično krugu osjetljivosti VBUS -a. U ovom slučaju izračuni se malo razlikuju;

V (baterija-A/D) = 0,59V (baterija); A/D (raspon) ∈ [000H: C03H]

Napajanje: -3.3V

Krug napajanja negativnim naponom omogućuje nam generiranje simetričnih valnih oblika s istosmjernim faktorom 0V (tj. Prosječna vrijednost valnog oblika može biti 0V). Ovaj se krug temelji na IC - DC/DC pretvaraču LM2662MX koji radi po metodi "crpke za punjenje". Maksimalna izlazna struja kruga je 200mA što je dovoljno za naše projektne zahtjeve - ograničeni smo izlaznom strujom od 80mA iz kanala svakog uređaja.

IC izvodi sve potrebne radove, pa samo dijelovi koje moramo priključiti su dva elektrolitička kondenzatora: C33 za prebacivanje i C34 za -3.3V linijski zaobilaznik (razmatranja o smanjenju šuma). Učestalost prebacivanja zanemariva je u dizajnu ako krug postavljamo dovoljno daleko od dijelova generiranja valnog oblika (o tome ćemo govoriti u koraku postavljanja PCB -a).

Jedinica mikrokontrolera - MCU

Ovo je upravitelj i izvršni direktor našeg sustava - kontrola, upravljanje mrežom, prijenos poruka i podrška za korisničko sučelje - sve je u rukama MCU -a.

MCU koji je odabran je Atmel ATMEGA32L, gdje L znači rad podržanog napona ∈ [2,7 V: 5,5 V]. U našem slučaju radni napon je +3,3 V.

Razmotrimo glavne operacijske blokove koje je potrebno razumjeti u radu s MCU -om u našem dizajnu:

  • Vanjski oscilator - Opcijska je komponenta jer nas zanima radna frekvencija 8MHz
  • Periferna kontrola, SPI mreža - Svi periferni uređaji (isključujući ESP32) komuniciraju s MCU -om putem SPI -ja. Postoje tri zajedničke linije za sve uređaje (SCK, MOSI, MISO) i svaki periferni krug ima svoju namjensku CS (Chip Select) liniju. SPI uređaji koji su dio uređaja:

    1. D/A za kontrolu amplitude - Kanal A
    2. D/A za kontrolu amplitude - kanal B
    3. AD9834 uređaj - kanal A
    4. AD9834 uređaj - kanal B
    5. D/A za regulaciju napona pristranosti - Kanal A
    6. D/A za regulaciju napona pristranosti - kanal B
    7. Digitalni potenciometar za postavke svjetline i kontrasta LCD -a
  • Podrška za LCD - Budući da je LCD općeniti zaslon veličine 20 x 4 znaka, koristimo 4 -bitno sučelje (linije D7: D4), kontrolne pinove (linije RS, E) i kontrolu svjetline/kontrasta (linije V0 i anoda)
  • Podrška za RGB LED - Ovaj modul nije obavezan, ali postoji uobičajena katodna RGB LED utičnica s odgovarajućim otpornicima, spojena na MCU.
  • Upravljanje napajanjem - MCU vrši nadzor elektroenergetskog sustava u načinu rada u stvarnom vremenu i obrađuje sve potrebne događaje napajanja:

    1. VBAT_ADC - Nadzor napona baterije i određivanje njegovog stanja (ADC0 kanal)
    2. PWR_IND - Oznaka spoja vanjskog napajanja (ADC1 kanal)
    3. PS_HOLD - Primarna linija za omogućavanje napajanja za sve definirane sustave. Kad ga MCU spusti, uređaj se isključuje
    4. Terminal prekidača pametnog prekidača - Praćenje stanja pritiskom na gumb
  • Upravljanje WiFi mrežom - ESP32: MCU komunicira s ESP32 putem UART sučelja. Budući da nam 8MHz omogućuje implementaciju brzine prijenosa od 115200 s relativno malom pogreškom, možemo koristiti ESP32 u krugu bez unaprijed definiranih promjena brzine prijenosa.

AVR ISP programer

Naš MCU programiran je putem SPI -ja s linijom za resetiranje (/RST) koja se mora povući VISOKO za pravilan rad (ako ne - MCU će se zauvijek naći u resetiranom stanju).

Kako bih omogućio programiranje i punjenje uređaja putem USB-a, priključio sam AVR ISP programator (proizvod male veličine, kupljen na eBayu). Kako bi se održala potpuna USB podrška uređaja, potrebno je USB priključke tipa A (D+, D-, VBUS i GND) povezati s AVR ISP uređajem.

Krug za generiranje valnog oblika

Jezgra uređaja su ti krugovi. AD9834 je DDS uređaj male snage koji nam pruža sve valne oblike koje želimo dohvatiti iz sustava. Krugovi sadrže dvije neovisne sklopove AD9834 sa odvojenim vanjskim oscilatorima od 50 MHz (kao što se može vidjeti na shemama). Razlog razdvojenog oscilatora su razmatranja smanjenja šuma digitalnih krugova, pa je odluka bila rukovati ispravnim linijama od 50 MHz s oscilatorima postavljenim uz AD9834.

Pogledajmo sada malo matematiku:

Budući da DDS uređaj radi na tehnologiji Phase Wheel s izlaznom vrijednošću u 28-bitnom registru, generiranje valnog oblika možemo opisati matematički:

dP (faza) = ωdt; ω = P '= 2πf; f (AD9834) = ΔP * f (clk) / 2^28; ΔP ∈ [0: 2^28 - 1]

Prema podatkovnom listu AD9834, uzimajući u obzir maksimalnu frekvenciju, može se dobiti razlučivost izlazne frekvencije:

Δf = k * f (oscilator) / f (maksimum) = 0,28 * 50M / 28M = 0,187 [Hz]

IC -i AD9834 pružaju analogni izlaz struje za trokut/sinusni val (IOUT priključak) i digitalni izlaz za kvadratni val (priključak SIGN_OUT). Upotreba znakovnog bita pomalo je zeznuta, ali to možemo riješiti - Svaki put kad DDS pređe prag usporedbene vrijednosti, SIGN_OUT se ponaša u skladu s tim. Na izlaz svakog kanala priključen je otpornik od 200 Ohma, pa bi izlazni napon imao značajne vrijednosti:

I (jednokanalni) = V (izlaz) / R (izbor napona); V (izlaz) = R (VS)*I (SS) = 200I (SS) [A]

Krugovi za kontrolu amplitude (D/A)

Prema podatkovnom listu AD9834, njegova se amplituda može prilagoditi opskrbom strujom u DDS sustavu cijele skale, tako da uz pomoć dvostrukog D/A IC -a možemo kontrolirati amplitudu izlaznog signala podešavanjem te struje. Još jednom malo matematike:

I (puna skala) = 18 * (V_REF - V_DAC) / R_SET [A]

Prema shemama i stavljanju nekih brojeva u jednadžbu:

I (puna ljestvica) = 3,86 - 1,17 * V_DAC [A]

D/A modul koji se koristi u dizajnu je 12-bitni MCP4922, kada je struja u rasponu od [0mA: 3,86mA], a linearna amplitudna funkcija je:

V (odabir amplitude) = 1 - [V (D / A) / (2^12 - 1)]

Krug multipleksiranja valnog oblika

Izlazi za generiranje kvadratnih valova i sinusnih/trokutastih valova odvojeni su na AD9834, stoga moramo koristiti krug multipleksiranja velike brzine za oba izlaza kako bismo omogućili dohvaćanje svih željenih valnih oblika iz jednog odvojenog kanala. IC multipleksera je analogni prekidač ADG836L s vrlo niskim otporom na uključivanje (~ 0,5Ohm).

Tablica za odabir koju MCU koristi za izlaze ovako:

Odabir načina rada [D2: D1] | Izlazni kanal A | Izlazni kanal B

00 | Sinus/trokut | Sinus/trokut 01 | Sinus/trokut | Trg 10 | Trg | Sinus/trokut 11 | Trg | Kvadrat

Krugovi upravljanja pristranosti napona (D/A)

Jedna od glavnih značajki generatora valnog oblika je kontrola DC vrijednosti. U ovom dizajnu to se postiže postavljanjem željenog D/A napona po svakom kanalu, a ti se prednapon naponi zbrajaju s multipleksnim izlazima o kojima smo govorili malo ranije.

Napon koji se dobiva iz D/A nalazi se u rasponu [0V: +3.3V] pa postoji sklop temeljen na op-pojačalu koji preslikava D/A raspon u [-3.3V: +3.3V], dopuštajući uređaju da pruži puni raspon željene istosmjerne komponente. Preskočit ćemo dosadnu analitičku matematiku i samo ćemo se usredotočiti na konačne rezultate:

V_OUT (kanal B) = V_BIAS_B (+) - V_BIAS_B (-); V_OUT (kanal A) = V_BIAS_A (+) - V_BIAS_A (-)

Sada se raspon DC komponenti nalazi u rasponu [-3.3V: +3.3V].

Zbirni krugovi - DC komponente i izlazi valnog oblika

U ovom trenutku imamo sve što nam je potrebno za pravilan izlaz uređaja - Bias Voltage (DC komponenta) u punom rasponu napona i multipleksirane AD9834 izlaze. To ćemo učiniti pomoću zbrajajućeg pojačala - op -amp konfiguracije

Preskočimo još jednom matematiku (već smo obradili mnogo matematičkog pristupa) i zapišite konačni rezultat izlaza zbrajanja pojačala:

V (izlaz uređaja) = V (pozitivna pristranost) - V (negativna pristranost) - V (višestruki izlaz) [V]

Stoga:

V_OUT = ΔV_BIAS - V_AD9834 [V]

Izlazni konektori tipa BNC povezani su odabirnim otpornicima (R54, R55; R56, R57). Razlog tome je što u slučaju da dizajn može biti nefunkcionalan, još uvijek možemo odabrati želimo li koristiti zbrajajuće pojačalo.

Važna napomena: Mreže otpornika konačnih zbrojnih pojačala može prilagoditi dizajner kako bi promijenio maksimalnu amplitudu koja se može dohvatiti s uređaja. U mom slučaju, sva pojačala dijele isti dobitak = 1, stoga je maksimalna međuspremna amplituda 0,7 Vpp za trokut/sinusni val i 3,3 Vpp za kvadratni val. Specifični matematički pristup može se pronaći među slikama u prilogu koraka.

ESP32 kao vanjski modul

MCU komunicira s ESP32 putem UART sučelja. Budući da sam želio vlastitu PCB za ESP32, na raspolaganju su 4 terminala za povezivanje: VCC, RX, TX, GND. J7 je priključak sučelja između PCB -a, a ESP32 će biti dodijeljen kao vanjski modul unutar uređaja.

Korisničko sučelje - LCD i zvučnik

Korišteni LCD zaslon je generički zaslon veličine 20 x 4 znaka s 4 -bitnim sučeljem. Kao što se može vidjeti iz dizajna, na LCD stezaljke "A" i "V0" nalazi se digitalni SPI digitalni potenciometar - njegova je svrha podešavanje programsko osvjetljenje i kontrast LCD modula.

Zvučnik omogućuje korisniku izlaz zvuka jednostavnim generiranjem kvadratnih valova iz MCU -a. BJT T1 kontrolira struju kroz zvučnik koja može biti samo u dva stanja - UKLJ. / ISKLJ.

Korak 5: Dizajn hardvera - ESP32 modul

Dizajn hardvera - ESP32 modul
Dizajn hardvera - ESP32 modul

ESP32 se koristi kao vanjski modul za glavnu PCB. Komunikacija s uređajem temelji se na AT naredbama koje su dostupne na generičkom firmveru uređaja.

O ovom dizajnu nema mnogo toga za proširenje, ali postoje neke napomene za dizajn:

  • Za rješavanje problema s korištenjem odgovarajućeg UART modula ESP32, priključio sam tri otpornika za odabir i za TX i za RX linije. (0 ohma za svaki). Za standardnu konfiguraciju, UART2 modul se koristi za AT naredbe (R4, R7 moraju biti lemljeni)
  • Uređaj ima 4 -linijski izlaz - VCC, GND, TX, RX.
  • IO0 i EN pinovi procjenjuju rad uređaja i trebaju biti projektirani kako je prikazano u shemama

Sve značajke PCB -a pokriti ćemo u sljedećem koraku.

Korak 6: Raspored PCB -a

Raspored PCB -a
Raspored PCB -a
Raspored PCB -a
Raspored PCB -a
Raspored PCB -a
Raspored PCB -a

Ciljevi projektiranja PCB -a

  1. Izradite ugrađeni sustav za sve integrirane krugove na istoj ploči
  2. Poboljšajte performanse uređaja projektiranjem jednog glavnog PCB -a
  3. Smanjenje troškova - ako želite pogledati cijene, jeftini dizajni su Zbilja niski troškovi
  4. Smanjite veličinu elektroničke ploče
  5. Jednostavno rješavanje problema - Možemo koristiti TP -ove (ispitne točke) za svaku moguću neispravnu liniju.

Tehnički parametri

Obje tiskane ploče: glavna i ESP32 ploča imaju iste karakteristike u proizvodnom procesu - niske cijene i operativne za naše potrebe. Pogledajmo ih:

A - Glavni odbor

  • Veličina: 10 cm x 5,8 cm
  • Broj slojeva: 2
  • Debljina PCB -a: 1,6 mm
  • Minimalni prostor u tragovima/širina: 6/6mil
  • Minimalni promjer rupe: 0,3 mm
  • Bakar do ruba PCB -a minimalna udaljenost: 20mil
  • Površinska obrada: HASL (prilično zgodan, jeftin tip srebrne boje)

B - Glavni odbor

  • Veličina: 3cm x 4cm
  • Broj slojeva: 2
  • Debljina PCB -a: 1,6 mm
  • Minimalni prostor u tragovima/širina: 6/6mil
  • Minimalni promjer rupe: 0,3 mm
  • Bakar do ruba PCB -a minimalna udaljenost: 20mil
  • Površinska obrada: HASL

Korak 7: 3D kućište

3D kućište
3D kućište

Nisam ga sam dizajnirao jer sam u to vrijeme nagovarao ovaj uređaj na rad pa uopće nisam bio svjestan svih osnova 3D ispisa. Stoga sam upotrijebio SCAD projekt iz Thingiversea i pričvrstio različite otvore prema granicama, prema specifikacijama mog uređaja.

  1. Uređaj za ispis: Creality Ender-3
  2. Vrsta kreveta: Staklo, debljine 5 mm
  3. Promjer niti: 1,75 mm
  4. Vrsta niti: PLA+
  5. Promjer mlaznice: 0,4 mm
  6. Početna brzina: 20 mm/sek
  7. Prosječna brzina: 65 mm/sek
  8. Podrška: N/A
  9. Ispuna: 25%
  10. Temperatura:

    • Krevet: 60 (oC)
    • Mlaznica: 215 (oC)
  11. Boja niti: Crna
  12. Ukupan broj otvora: 5
  13. Broj ploča kućišta: 4

    • TOP Shell
    • Donja ljuska
    • Prednja ploča
    • Stražnja ploča

Korak 8: Implementacija softvera - MCU

Implementacija softvera - MCU
Implementacija softvera - MCU
Implementacija softvera - MCU
Implementacija softvera - MCU
Implementacija softvera - MCU
Implementacija softvera - MCU

GitHub Veza na Android i Atmega32 kod

Softverski algoritam

Sve operacije koje izvodi MCU opisane su u priloženim dijagramima toka. Osim toga, za projekt je priložen kôd. Pokrijmo specifikacije softvera:

Uključiti

U ovoj fazi MCU izvodi sve inicijalizacijske sekvence zajedno s određivanjem vrste pohranjene komunikacije s Android uređajem: izravna WiFi ili WLAN mrežna komunikacija - ti se podaci pohranjuju u EEPROM. U ovoj fazi korisnik može redefinirati vrstu uparivanja Android uređaja.

Izravno uparivanje Android uređaja

Ova vrsta uparivanja temelji se na stvaranju WiFi mreže od strane FuncGen uređaja. On će stvoriti AP (pristupnu točku) i TCP poslužitelj na IP -u lokalnog uređaja sa specifičnim SSID -om (naziv WiFi mreže) i određenim brojem porta. Uređaj treba držati stanje - otvoren za veze.

Kad je Android uređaj spojen na FuncGen, MCU ulazi u AKTIVAN način rada i reagira prema korisničkim uputama s Android uređaja.

Uparivanje WLAN -a

Kako bi komunicirao na lokalnoj WiFi mreži, MCU bi trebao dati naredbe za ESP32 za stvaranje pristupne točke, komunikaciju s Android uređajem i razmjenu ključnih mrežnih podataka:

  • Android uređaj prima od FuncGena svoju MAC adresu, pohranjuje je u memoriju.
  • FuncGen uređaj prima od Android uređaja odabrane parametre WLAN -a: SSID, vrstu zaštite i lozinku te ih pohranjuje u EEPROM.

Kad su uređaji doista spojeni na istu WLAN, Android uređaj će tražiti FuncGen skeniranjem svih MAC adresa uređaja povezanih na WLAN. Kada Android uređaj utvrdi podudaranje MAC -a, pokušava komunicirati.

Povezivanje i rukovanje stanjem - MCU

Kad uređaji međusobno komuniciraju, protokol (vidi predzavršni korak) ostaje isti, a dijagram toka isti.

Praćenje stanja uređaja

Vremenski prekid daje MCU -u potrebne podatke za rukovanje stanjem. Svaki ciklus prekida timera ažurira se sljedeći popis parametara:

  • Vanjsko napajanje - Uključeno/Isključeno
  • Stanje napona baterije
  • Ažuriranje korisničkog sučelja za svaku prilagodbu
  • Tipka: pritisnuto/ne pritisnuto

Korak 9: Implementacija softvera - aplikacija za Android

Implementacija softvera - aplikacija za Android
Implementacija softvera - aplikacija za Android
Implementacija softvera - aplikacija za Android
Implementacija softvera - aplikacija za Android
Implementacija softvera - aplikacija za Android
Implementacija softvera - aplikacija za Android
Implementacija softvera - aplikacija za Android
Implementacija softvera - aplikacija za Android

Android aplikacija napisana je u Java-Android stilu. Pokušat ću to objasniti na isti način kao i prethodne korake - podjelom algoritma na zasebne blokove koda.

Niz uključivanja

Prvi niz uređaja. Ovdje je prikazan logotip aplikacije zajedno s omogućenim GPS i WiFi modulima Android uređaja (Ne brinite, GPS je potreban samo za skeniranje ispravnih WiFi mreža).

Glavni izbornik

Nakon pokretanja aplikacije, na zaslonu će se pojaviti četiri gumba. Rad gumba:

  1. IZRAVNO POVEZIVANJE: Inicijalizacija povezivanja s FuncGen -ovom AP -om pomoću SSID -a IOT_FUNCGEN -a. Ako je veza uspješna, uređaj ulazi u glavni način korisničkog sučelja.
  2. WIFI POVEZIVANJE: Uređaj provjerava postoje li u memoriji pohranjeni parametri podataka: wifi.txt, mac.txt. Ako nema pohranjenih podataka, uređaj će odbiti zahtjev korisnika i dati skočnu poruku da se prvo mora izvršiti uparivanje WLAN-a.
  3. PAROVANJE: Komuniciranje s FuncGenom na isti način kao i DIREKTNA VEZA, ali umjesto stalne razmjene poruka, postoji jedno rukovanje. Android uređaj provjerava je li već spojen na WiFi mrežu i traži od korisnika da unese lozinku. Ako je ponovno povezivanje uspješno, Android uređaj pohranjuje SSID i pristupni ključ u datoteku wifi.txt. Nakon uspješne komunikacije s FuncGenom, pohranjuje primljenu MAC adresu u datoteku mac.txt.
  4. Izlaz: Dosta je rečeno:)

Upravitelj WiFi skeniranja

Želio sam da aplikacija bude potpuno operativna i bez prilagođavanja izvan aplikacije. Dakle, dizajnirao sam WiFi skener koji izvodi sve potrebne operacije za povezivanje na WiFi mrežu s poznatim lozinkom i SSID -om.

Prijenos podataka i TCP komunikacija

Ovo je glavni blok koda u aplikaciji. Za sve jedinice korisničkog sučelja postoji definirana poruka u određenom formatu (predzavršni korak), koja prisiljava FuncGen da omogući željeni izlaz za kanale. Postoje tri vrste polja korisničkog sučelja u aktivnosti:

  1. Trake traženja: Ovdje definiramo stvarni raspon izlaznih parametara FuncGen-a
    1. Amplituda
    2. DC pomak
    3. Svjetlina LCD ekrana
    4. LCD kontrast
  2. Uređivanje teksta: Kako bi cjelobrojne vrijednosti bile dobro definirane i precizne, unos frekvencije vrši se putem tekstualnih okvira samo s brojevima
  3. Gumbi: Odabir parametara s dostupnih popisa:

    1. Vrsta valnog oblika
      1. Sinus
      2. Trokut
      3. DC
      4. Kvadrat
      5. ISKLJUČENO
    2. Dobiti informacije

      1. Status baterije (postotak)
      2. AC status (vanjsko napajanje)
    3. Opcija pokretanja (za FuncGen MCU)

      1. Tvorničke postavke
      2. Ponovo pokrenite
      3. Ugasiti
      4. Izravno - Ponovo pokrenite s načinom izravnog uparivanja
      5. WLAN - Ponovo pokrenite s načinom uparivanja WLAN -a
    4. Izlaz na glavni izbornik: Dosta je rečeno:)

Korak 10: Testiranje

Preporučeni: