Satura rādītājs:

Pārnēsājams funkciju ģenerators WiFi un Android ierīcēs: 10 soļi
Pārnēsājams funkciju ģenerators WiFi un Android ierīcēs: 10 soļi

Video: Pārnēsājams funkciju ģenerators WiFi un Android ierīcēs: 10 soļi

Video: Pārnēsājams funkciju ģenerators WiFi un Android ierīcēs: 10 soļi
Video: ELK: Elasticsearch, logstash, beats (Часть 1) / Java Tech Talk 2024, Jūlijs
Anonim
Pārnēsājams funkciju ģenerators WiFi un Android ierīcēs
Pārnēsājams funkciju ģenerators WiFi un Android ierīcēs
Pārnēsājams funkciju ģenerators WiFi un Android ierīcēs
Pārnēsājams funkciju ģenerators WiFi un Android ierīcēs
Pārnēsājams funkciju ģenerators WiFi un Android ierīcēs
Pārnēsājams funkciju ģenerators WiFi un Android ierīcēs
Pārnēsājams funkciju ģenerators WiFi un Android ierīcēs
Pārnēsājams funkciju ģenerators WiFi un Android ierīcēs

Gandrīz 20. gadsimta beigās parādījās dažādi tehnoloģiski jauninājumi, īpaši sakaru jomā; bet ne tikai. Mums, lietotājiem, patērētājiem un inženieriem parādījās strauja elektronisko ierīču attīstība, kas var ievērojami atvieglot mūsu dzīvi: viedie pulksteņi, viedās mājas, viedtālruņi utt.

Tā kā mūsdienās viss var būt “gudrs”, esmu nolēmis izveidot īpaši noderīgu ierīci, kas būtu būtiska elektroniskā laboratorijas aprīkojuma sastāvdaļa - portatīvo funkciju ģenerators, ko var kontrolēt ar Android OS balstītu viedtālruni, izmantojot tiešo WiFi vai WiFi lokālo tīklu (WLAN)).

Kāpēc mums vajadzētu veidot šo ierīci?

Lielākā daļa testēšanas iekārtu mūsdienās ir diezgan dārgas. Un dažreiz šīs ierīces nav pārnēsājamas. Kā risinājums augstām cenām, pārnesamības trūkumam un ierīces tīkla piekļuves trūkumam ierīce nodrošina divkanālu viļņu formas ģeneratoru, kas patiešām ir pārnēsājams un kam ir neierobežota piekļuve tīklam - vai nu internetam, vai vietējam.

Un, protams, ierīce jāveido entuziasma dēļ, ievērojot DIY principus - dažreiz mums vienkārši jādara lietas, lai justos pareizi:)

Galvenās iezīmes

Enerģijas padeve

  • A tipa USB savienotājs gan barošanas sistēmām, gan programmēšanai
  • Pilnīga litija jonu akumulatora pārvaldības sistēma - Uzlādes un stabili režīmi
  • Smart Switch ieviešana - nav nepieciešams strāvas pārslēgšanas slēdzis
  • Divkāršs barošanas avots: +3.3V un -3.3V simetriskai sprieguma viļņu formas ģenerēšanai

Viļņu formas ģenerēšana

  • Līdzstrāvas līmeņa ieviešana izejas kaskādē - neobjektīva viļņu forma starp sprieguma robežām
  • Uz DDS balstīta 4 veidu viļņu formas ģenerēšana - sinuss, trīsstūris, kvadrāts un līdzstrāva
  • Līdz 10MHz frekvences atbalsts
  • Izejas strāva līdz 80mA ar 500mW maksimālo jaudas pieejamību
  • Atsevišķi kanāli viļņu formas ģenerēšanai - sadalītas ķēdes, kuru pamatā ir AD9834

Komunikācija

  • ESP32 ieviešana - piemērojamās WiFi iespējas
  • Pabeigt TCP/IP atbalstu, izmantojot ģeneratora ierīci un Android viedtālruni
  • Spēja saglabāt lietotāja parametrus katram ierīces ciklam
  • Stāvokļa uzraudzība - abas sistēmas apzinās viena otru: FuncGen (turpmāk sauksim to tā) un viedtālrunis.

Lietotāja interfeiss

  • 20 x 4 rakstzīmju LCD ar vienkāršu 4 bitu datu saskarni
  • Android lietojumprogramma - pilnīga lietotāja kontrole pār FuncGen ierīci
  • Signāla ķēde - skaņas atgriezeniskā saite lietotājam

1. darbība: bloka diagramma - aparatūra

Bloku diagramma - aparatūra
Bloku diagramma - aparatūra
Bloku diagramma - aparatūra
Bloku diagramma - aparatūra

Mikrokontrollera bloks - ATMEGA32L

Mikrokontrolleris ir programmējama mikroshēma, kas sastāv no visām datora funkcijām, kas atrodas vienā elektroniskajā mikroshēmā. Mūsu gadījumā tās ir "smadzenes" un centrālā sistēmas sastāvdaļa. MCU mērķis ir pārvaldīt visas perifērijas sistēmas, pārvaldīt saziņu starp šīm sistēmām, kontrolēt aparatūras darbību un nodrošināt pilnīgu atbalstu lietotāja saskarnei un tās mijiedarbībai ar faktisko lietotāju. Šis projekts balstās uz ATMEGA32L MCU, kas var darboties ar 3.3V un 8MHz frekvenci.

Sakaru SoC - ESP32

Šis SoC (System on Chip) nodrošina pilnīgu saziņas atbalstu FuncGen - Piekļuve WiFi iespējām, ieskaitot tiešu, lokālu vai interneta komunikāciju. Ierīces mērķi ir šādi:

  • Datu pārraides apstrāde starp Android lietotni un FuncGen ierīci
  • Vadības/datu ziņojumu pārvaldība
  • Atbalsts nepārtrauktai TCP/IP klienta-servera konfigurācijai

Mūsu projektā SoC ir espresifs ESP32, kas ir pārāk populārs, lai to paplašinātu vēl vairāk:)

Litija jonu akumulatora vadības sistēma

Lai mūsu ierīci pārveidotu par pārnēsājamu, ierīcē ir paredzēta litija jonu akumulatora uzlādes ķēde. Ķēde ir balstīta uz MC73831 IC, ar kontrolējamu uzlādes strāvu, pielāgojot viena programmēšanas rezistora vērtību (mēs apskatīsim šo tēmu shematiskajā solī). Ierīces barošanas avota ieeja ir A tipa USB savienotājs.

Viedā slēdža ķēde

Viedā slēdža ierīces strāvas vadības ķēde nodrošina pilnīgu programmatūras kontroli pār ierīces izslēgšanas secību un nepieciešamību pēc ārēja pārslēgšanas slēdža ierīces akumulatora sprieguma pārtraukšanai. Visas barošanas darbības tiek veiktas, nospiežot spiedpogu un MCU programmatūru. Dažos gadījumos sistēma būtu jāizslēdz: zems akumulatora spriegums, augsts ieejas spriegums, sakaru kļūda utt. Viedā slēdža pamatā ir STM6601 viedais slēdzis IC, kas ir lēts un ļoti draudzīgs spēlēšanai.

Galvenais barošanas bloks

Šī iekārta sastāv no divām barošanas ķēdēm, kuras darbina baterijas - +3.3V visām digitālajām / analogās barošanas ķēdēm un -3.3V FunGen simetriskai izejai attiecībā pret 0V potenciālu (ti, ģenerēto viļņu formu var iestatīt ar [-3.3V: 3.3V)] novads.

  • Galvenā barošanas ķēde ir balstīta uz LP3875-3.3 LDO (zems pārtraukums) 1A lineāro sprieguma regulatoru.
  • Sekundārā barošanas ķēde ir balstīta uz LM2262MX IC, kas veic līdzstrāvas līdzstrāvas negatīvā sprieguma pārveidošanu, izmantojot kondensatora uzlādes sūkni-sistēmu, uz kuras balstās IC.

Viļņu formu ģeneratoru sistēma

Sistēma tika izstrādāta, liekot uzsvaru uz atsevišķām DDS (tiešā digitālā sintēze) integrālajām shēmām, kas ļauj pilnībā kontrolēt viļņu formu, izmantojot MCU SPI (sērijas perifērijas saskarni). Projektēšanā izmantotās shēmas ir analogās ierīces AD9834, kas var nodrošināt dažāda veida viļņu formas. Strādājot ar AD9834, mums ir jāsaskaras ar šādām problēmām:

  • Fiksēta viļņu formas amplitūda: Viļņu formas amplitūdu kontrolē ārējais DAC modulis
  • Neņemot vērā nobīdes līdzstrāvas līmeni: summēšanas shēmu ieviešana ar vēlamajām līdzstrāvas nobīdes vērtībām
  • Atsevišķas izejas kvadrātveida vilnim un trīsstūrim/sinusoidālajam vilnim: Augstas frekvences komutācijas shēmas ieviešana, tādējādi katra kanāla viena izeja var nodrošināt visu vēlamo viļņu formu: sinusu, trīsstūri, kvadrātu un līdzstrāvu.

Šķidro kristālu displejs

LCD ir lietotāja interfeisa (UI) sastāvdaļa, un tā mērķis ir ļaut lietotājam saprast, ko ierīce dara reālā laika režīmā. Tas mijiedarbojas ar lietotāju jebkurā ierīces stāvoklī.

Signāls

Vienkārša toņu ģeneratora shēma papildu atsauksmēm no ierīces lietotājam.

Integrēts ISP programmētājs

Programmēšanas procesā ikvienam inženierim ir pastāvīga problēma: vienmēr ir vissliktākā nepieciešamība izjaukt produktu, lai to pārprogrammētu ar jaunu programmaparatūru. Lai novērstu šīs neērtības, AVR ISP programmētājs tika pievienots ierīcei no iekšpuses, bet USB dati un strāvas līnijas ir piesaistītas ierīces A tipa USB savienotājam. Šajā konfigurācijā mums vienkārši jāpievieno mūsu FuncGen, izmantojot USB kabeli, lai programmētu vai uzlādētu!

2. darbība. Bloķēšanas diagramma - tīklošana

Bloku diagramma - tīklošana
Bloku diagramma - tīklošana

Divkanālu funkciju ģenerators

Galvenā ierīce. To, kuru esam pārskatījuši iepriekšējā solī

ESP-WROOM-32

Integrēta sistēma mikroshēmā ar WiFi un BLE iespējām. SoC ir piestiprināts pie galvenās plates (mēs to aplūkosim shematiskajā solī), izmantojot UART moduli, un darbojas kā ziņu raidītājs starp galveno ierīci un Android viedtālruni.

WiFi vietējais tīkls

Viedtālrunis un ierīce sazināsies, izmantojot tiešo WiFi vai lokālo tīklu, pamatojoties uz TCP servera/klienta konfigurāciju. Kad ierīces atpazīst WiFi, galvenā ierīce izveido TCP serveri ar atbilstošiem parametriem un spēj nosūtīt/saņemt ziņas. Ierīce darbojas kā sekundārais viedtālrunim. No otras puses, Android ierīce savienojas ar TCP serveri kā klienta tīkla ierīce, bet tiek uzskatīta par galveno ziņojumu sūtītāju - viedtālrunis ir tas, kurš uzsāk pilnu saziņas ciklu: Sūta ziņojumu - saņem atbildi.

Android viedtālrunis

Uz Android OS balstīta viedtālruņa ierīce, kas darbojas lietotnē FuncGen

3. solis: detaļas, rīki, IDE un materiālu saraksts

Daļas, rīki, IDE un materiālu saraksts
Daļas, rīki, IDE un materiālu saraksts
Daļas, rīki, IDE un materiālu saraksts
Daļas, rīki, IDE un materiālu saraksts
Daļas, rīki, IDE un materiālu saraksts
Daļas, rīki, IDE un materiālu saraksts

Materiālu saraksts (skatīt pievienoto XLS tabulu)

Lietotāja saskarne un sistēmas savienojumi

  • 1 x 2004A Char-LCD 20x4 zils
  • 1 x USB tipa B savienotājs
  • 1 x 10 komplekts Mini Micro JST XH 2.54mm 4 Pin
  • 1 x 6 gab Momentary SW

PCB pasūtīšana (saskaņā ar Seeed Studio)

Pamatmateriāls FR-4

Slāņu skaits 2 slāņi

PCB daudzums 10

Dažādu dizainu skaits 1

PCB biezums 1,6 mm

PCB krāsa zila

Virsmas apdare HASL

Minimālais lodēšanas maskas aizsprosts 0,4 mm ↑

Vara svars 1 oz

Minimālais urbuma cauruma izmērs 0,3 mm

Izsekošanas platums / atstarpes 6/6 mil

Pārklāti puscaurumi / Kastelēti caurumi Nr

Pretestības kontrole Nr

Rīki

  • Karstās līmes pistole
  • Pincetes
  • Kuteris
  • ~ 22AWG vads darbības traucējumu novēršanai
  • Lodāmurs/stacija
  • Lodēšanas alva
  • SMD pārstrādes stacija (pēc izvēles)
  • 3D printeris (pēc izvēles)
  • Ekstrudējošs fails
  • AVR ISP programmētājs
  • USB uz seriālo pārveidotāju (pēc izvēles, atkļūdošanas nolūkos)

Integrētā izstrādes vide (IDE) un programmatūra

  • Autodesk EAGLE vai Cadence shematiskais redaktors / Allegro PCB redaktors
  • OpenSCAD (pēc izvēles)
  • Ultimaker Cura (pēc izvēles)
  • Saleae Logic (problēmu novēršanai)
  • Atmel Studio 6.3 vai jaunāka versija
  • Android Studio vai Eclipse IDE
  • Docklight sērijas monitors / cita COM portu uzraudzības programmatūra
  • ProgISP AVR ATMEGA32L zibspuldzes programmēšanai

4. solis: Aparatūras projektēšana - galvenā plate

Aparatūras dizains - galvenā plate
Aparatūras dizains - galvenā plate
Aparatūras dizains - galvenā plate
Aparatūras dizains - galvenā plate
Aparatūras dizains - galvenā plate
Aparatūras dizains - galvenā plate

Akumulatora vadības ķēde

Akumulatora uzlādes ķēde ir balstīta uz MCP7383 IC, kas ļauj mums izvēlēties vēlamo uzlādes strāvu litija jonu akumulatoram - 3,7 V ar jaudu 850 mAh. Uzlādes strāvu mūsu gadījumā nosaka programmēšanas rezistora vērtība (R1)

R1 = 3KOhm, I (lādiņš) = 400mA

USB spriegums VBUS tiek filtrēts ar π filtru (C1, L3, C3) un darbojas kā strāvas avots uzlādes ķēdei.

Sprieguma dalītāja ķēde (R2, R3) ļauj MCU norādīt, vai ārējais USB barošanas avots ir pievienots vai nē, nodrošinot šādu spriegumu MCU A/D kanālam:

V (indikācija) ~ (2/3) V (BUS)

Tā kā mūsu ATMEGA32L A/D ir 12 bitu, mēs varam aprēķināt digitālo diapazonu:

A / D (diapazons) = 4095V (indikācija) / V (atsauce).

A/D ∈ [14AH: FFFH]

Smart Switch barošanas bloks

Ķēde ļauj sistēmai kontrolēt strāvas padevi katram projektētajam blokam gan ar spiedpogu, gan programmatūru MCU, un tā ir balstīta uz STM6601 viedo slēdzi ar POWER opciju, nevis RESET. Termināļi, kurus mēs vēlamies apsvērt, ir šādi:

  • PSHOLD - ievades līnija, kas nosaka ierīces stāvokli: ja to pavelk LOW, ierīce atspējo visas sekundārās barošanas vienības (+3.3V un -3.3V). Ja tiek turēts HIGH - ierīce saglabā ON stāvokli.
  • nSR un nPB - ievades līnijas. Spiedpogas spailes. Kad uz šīm tapām tiek konstatēta krītošā mala, ierīce mēģina ieslēgt jaudas palielināšanas / samazināšanas režīmu
  • nINT - izvades līnija. Vilkts LOW katru reizi, kad tiek nospiesta poga
  • LV - Izejas līnija tiek izmantota kā strāvas avots sekundārajiem barošanas blokiem. Kamēr tiek turēts LOW, abi sekundārie barošanas avoti ir atspējoti

Pirms galīgā dizaina izstrādes ir dažas svarīgas piezīmes:

  • PSHOLD ir jāvelk līdz 3.3V, jo ir gadījumi, kad MCU piespiež visas I/O būt HIGH-Z stāvoklī. Šajā gadījumā PSHOLD stāvoklis no MCU nav zināms un var dramatiski ietekmēt ierīces programmēšanas procesu.
  • STM6601 būtu jāpasūta ar EN pielāgošanas iespēju, ilgi nospiežot, nevis RESET opciju (esmu iekritusi šajā).

Barošanas bloks: +3.3V

Galvenais barošanas avots visām mūsu projekta sistēmām. Ja +3.3V līnija tiek turēta GND līmenī (t.i., nav sprieguma), visi IC, izņemot viedo slēdzi, ir atspējoti. Ķēde ir balstīta uz LDO LP-3875-3.3 IC, un to var kontrolēt, izmantojot EN termināli, un nodrošināt strāvu līdz 1A.

Šīs ķēdes barošanas avots ir akumulatora spriegums ar pievienotu A/D indikatoru VBAT noteikšanai konfigurācijā, līdzīgi kā VBUS sensoru ķēde. Šajā gadījumā aprēķini nedaudz atšķiras;

V (no akumulatora līdz A/D) = 0,59 V (akumulators); A/D (diapazons) ∈ [000H: C03H]

Barošanas bloks: -3.3V

Negatīvā sprieguma padeves ķēde ļauj mums izveidot simetriskas viļņu formas ar līdzstrāvas koeficientu 0V (t.i., viļņu formas vidējā vērtība var būt 0V). Šīs shēmas pamatā ir LM2662MX IC - DC/DC pārveidotājs, kas darbojas ar "uzlādes sūkņa" metodi. Ķēdes maksimālā izejas strāva ir 200mA, kas ir pietiekama mūsu projektēšanas prasībām - mēs esam ierobežoti ar 80mA izejas strāvu no katras ierīces kanāla.

IC veic visu nepieciešamo darbu, tāpēc tikai detaļas, kas mums jāpievieno, ir divi elektrolītiskie kondensatori: C33 pārslēgšanai un C34 -3,3 V līnijas apvedceļam (apsvērumi par troksni). Pārslēgšanās biežums ir niecīgs, ja mēs novietojam ķēdi pietiekami tālu no viļņu formas ģenerēšanas daļām (mēs to apspriedīsim PCB izkārtojuma posmā).

Mikrokontrollera bloks - MCU

Tas ir mūsu sistēmas vadītājs - izpilddirektors, vadība, tīkla apstrāde, ziņojumu pārraide un lietotāja saskarnes atbalsts - visu nodrošina MCU.

Izvēlētais MCU ir Atmel ATMEGA32L, kur L apzīmē atbalstītu sprieguma darbību ∈ [2.7V: 5.5V]. Mūsu gadījumā darba spriegums ir +3,3 V.

Apskatīsim galvenos darbības blokus, kas ir nepieciešami, lai saprastu, strādājot ar MCU mūsu dizainā:

  • Ārējais oscilators - ir izvēles sastāvdaļa, jo mūs interesē 8 MHz darba frekvence
  • Perifērijas vadība, SPI tīkls - Visas perifērās ierīces (izņemot ESP32) sazinās ar MCU, izmantojot SPI. Visām ierīcēm (SCK, MOSI, MISO) ir trīs koplīnijas, un katrai perifērai shēmai ir sava CS (mikroshēmas atlases) līnija. SPI ierīces, kas ir ierīces sastāvdaļa:

    1. D/A amplitūdas kontrolei - A kanāls
    2. D/A amplitūdas kontrolei - B kanāls
    3. AD9834 ierīce - A kanāls
    4. AD9834 ierīce - kanāls B
    5. D/A slīpuma sprieguma kontrolei - A kanāls
    6. D/A slīpuma sprieguma kontrolei - B kanāls
    7. Digitālais potenciometrs LCD spilgtuma/kontrasta iestatījumiem
  • LCD atbalsts - tā kā LCD ir vispārējs 20 x 4 rakstzīmju displejs, mēs izmantojam 4 bitu saskarni (D7: D4 rindas), vadības tapas (RS, E rindas) un spilgtuma/kontrasta vadību (V0 un anoda līnijas)
  • RGB LED atbalsts - Šis modulis nav obligāts, taču ir kopīgs katoda RGB LED savienotājs ar atbilstošiem rezistoriem, kas pievienots MCU.
  • Barošanas kontrole - MCU veic energosistēmas uzraudzību reālā laika režīmā un apstrādā visus nepieciešamos barošanas notikumus:

    1. VBAT_ADC - akumulatora sprieguma uzraudzība un tā stāvokļa noteikšana (ADC0 kanāls)
    2. PWR_IND - ārējā barošanas avota savienojuma norāde (ADC1 kanāls)
    3. PS_HOLD - primārās barošanas iespējošanas līnija visām definētajām sistēmām. Kad MCU to pavada zemu, ierīce tiek izslēgta
    4. Viedā slēdža pārtraukšanas terminālis - spiedpogas stāvokļa uzraudzība
  • WiFi tīkla pārvaldība - ESP32: MCU sazinās ar ESP32, izmantojot UART interfeisu. Tā kā 8MHz ļauj mums īstenot bodu pārraides ātrumu 115200 ar salīdzinoši nelielu kļūdu, mēs varam izmantot ESP32 ķēdē bez iepriekšējas datu pārraides ātruma izmaiņu definīcijas.

AVR ISP programmētājs

Mūsu MCU ir ieprogrammēts, izmantojot SPI, un atiestatīšanas līnija (/RST) ir jāvelk HIGH, lai tā darbotos pareizi (ja nē - MCU atradīsies atiestatīšanas stāvoklī uz visiem laikiem).

Lai ierīci varētu gan ieprogrammēt, gan uzlādēt, izmantojot USB, esmu pievienojis AVR ISP programmētāju (maza izmēra produkts, nopirkts no eBay). Lai saglabātu ierīces pilnīgu USB atbalstu, ir jāpiesaista A tipa USB (D+, D-, VBUS un GND) spailes ar AVR ISP ierīci.

Viļņu formas ģenerēšanas shēma

Ierīces kodols ir šīs shēmas. AD9834 ir mazjaudas DDS ierīce, kas nodrošina visas viļņu formas, kuras mēs vēlētos iegūt no sistēmas. Ķēdēs ir divi neatkarīgi AD9834 IC ar atdalītiem ārējiem 50MHz oscilatoriem (kā tas redzams shēmās). Atdalītā oscilatora iemesls ir apsvērumi par trokšņa samazināšanu digitālajās shēmās, tāpēc tika pieņemts lēmums apstrādāt pareizas 50 MHz līnijas ar oscilatoriem, kas novietoti blakus AD9834.

Tagad apskatīsim kādu matemātiku:

Tā kā DDS ierīce darbojas ar fāzes riteņa tehnoloģiju, kuras izejas vērtība tiek glabāta 28 bitu reģistrā, mēs varam matemātiski aprakstīt viļņu formas ģenerēšanu:

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

Un saskaņā ar AD9834 datu lapu, ņemot vērā maksimālo frekvenci, var iegūt izejas frekvences izšķirtspēju:

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

AD9834 IC nodrošina analogās strāvas izvadi trīsstūra/sinusoidālajam vilnim (IOUT terminālis) un digitālo izeju kvadrātveida vilnim (SIGN_OUT terminālis). Zīmju bitu izmantošana ir nedaudz sarežģīta, taču mēs to varam apstrādāt - katru reizi, kad DDS pārsniedz salīdzināšanas vērtības slieksni, SIGN_OUT attiecīgi uzvedas. Katra kanāla izejai ir pievienots 200 omu rezistors, tāpēc izejas spriegumam būtu nozīmīgas vērtības:

I (viens kanāls) = V (izeja) / R (sprieguma izvēle); V (izeja) = R (VS)*I (SS) = 200I (SS) [A]

Amplitūdas kontroles (D/A) shēmas

Saskaņā ar AD9834 datu lapu, tās amplitūdu var pielāgot, nodrošinot strāvu DDS pilna mēroga sistēmai, tāpēc ar dubultās D/A IC palīdzību mēs varam kontrolēt izejas signāla amplitūdu, pielāgojot šo strāvu. Vēlreiz nedaudz matemātikas:

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

Saskaņā ar shēmām un ievietojot dažus skaitļus vienādojumā:

I (pilna skala) = 3,86 - 1,17 * V_DAC [A]

Projektēšanā izmantotais D/A modulis ir 12 bitu MCP4922, ja strāva ir diapazonā no [0mA: 3,86mA] un lineārās amplitūdas funkcija ir:

V (amplitūdas izvēle) = 1 - [V (D / A) / (2^12 - 1)]

Viļņu formas multipleksēšanas shēma

Kvadrātveida viļņu un sinusa/trīsstūra viļņu ģenerēšanas izejas ir atdalītas pie AD9834, tāpēc mums abām izejām ir jāizmanto ātrgaitas multipleksēšanas shēma, lai varētu iegūt visas vēlamās viļņu formas no viena atdalīta kanāla. Multipleksora IC ir ADG836L analogais slēdzis ar ļoti zemu pretestību (~ 0,5 omi).

Atlases tabula, ko MCU izmanto izejām, tā ir:

Režīma izvēle [D2: D1] | Izejas kanāls A | Izejas kanāls B

00 | Sinus/trīsstūris | Sinus/trīsstūris 01 | Sinus/trīsstūris | Laukums 10 | Kvadrāts | Sinus/trīsstūris 11 | Kvadrāts | Kvadrāts

Sprieguma kontroles (D/A) ķēdes

Viena no viļņu formas ģeneratora galvenajām iezīmēm ir kontrolēt tā līdzstrāvas vērtību. Šajā dizainā tas tiek darīts, katram kanālam iestatot vēlamo D/A spriegumu, un šie novirzes spriegumi tiek summēti ar multipleksētiem izvadiem, par kuriem mēs runājām nedaudz agrāk.

Spriegums, kas iegūts no D/A, atrodas diapazonā [0V: +3.3V], tāpēc ir uz op-amp balstīta ķēde, kas kartē D/A diapazonu līdz [-3.3V: +3.3V], ļaujot ierīcei nodrošināt pilnu diapazonu vēlamo līdzstrāvas komponentu. Mēs izlaidīsim kaitinošo analītisko matemātiku un koncentrēsimies tikai uz gala rezultātiem:

V_OUT (kanāls B) = V_BIAS_B (+) - V_BIAS_B (-); V_OUT (A kanāls) = V_BIAS_A (+) - V_BIAS_A (-)

Tagad DC komponentu diapazons atrodas diapazonā [-3.3V: +3.3V].

Apkopojošās shēmas - līdzstrāvas komponenti un viļņu formas izejas

Šajā brīdī mums ir viss nepieciešamais pareizai ierīces izejai - sprieguma spriegums (līdzstrāvas komponents) visā sprieguma diapazonā un multipleksētas AD9834 izejas. Mēs to panāksim, izmantojot summēšanas pastiprinātāju - op -amp konfigurāciju

Atkal izlaidīsim matemātiku (mēs jau esam aptvēruši daudz matemātiskas pieejas) un pierakstīsim summējošā pastiprinātāja izejas gala rezultātu:

V (ierīces izeja) = V (pozitīva novirze) - V (negatīva novirze) - V (multipleksēta izeja) [V]

Tādējādi:

V_OUT = ΔV_BIAS - V_AD9834 [V]

BNC tipa izejas savienotāji ir savienoti ar izvēles rezistoriem (R54, R55; R56, R57). Iemesls tam ir tas, ka gadījumā, ja dizains var nedarboties, mēs joprojām varam izvēlēties, vai mēs vēlētos izmantot summēšanas pastiprinātāju.

Svarīga piezīme: gala summēšanas pastiprinātāju rezistoru tīklus var pielāgot dizainers, lai mainītu maksimālo amplitūdu, ko var iegūt no ierīces. Manā gadījumā visiem pastiprinātājiem ir vienāds pastiprinājums = 1, tādējādi maksimālā buferizētā amplitūda ir 0,7 Vpp trīsstūrim/sinusoidālajam vilnim un 3,3 Vpp kvadrātveida vilnim. Īpašo matemātisko pieeju var atrast soļa pievienotajos attēlos.

ESP32 kā ārējais modulis

MCU sazinās ar ESP32, izmantojot UART interfeisu. Tā kā es gribēju savu PCB ESP32, ir pieejami 4 termināļi, kurus savienot: VCC, RX, TX, GND. J7 ir saskarnes savienotājs starp PCB, un ESP32 tiks piešķirts kā ārējs modulis ierīces iekšpusē.

Lietotāja saskarne - LCD un skaļrunis

Izmantotais LCD ir vispārējs 20 x 4 rakstzīmju displejs ar 4 bitu saskarni. Kā redzams no konstrukcijas, LCD termināļiem "A" un "V0" ir pievienots digitālais SPI potenciometrs - tā mērķis ir pielāgot LCD moduļa spilgtums un kontrasts programmatiski.

Skaļrunis nodrošina skaņas izvadi lietotājam, vienkārši ģenerējot kvadrātveida viļņus no MCU. BJT T1 kontrolē strāvu caur skaļruni, kas var būt tikai divos stāvokļos - ON / OFF.

5. solis: Aparatūras dizains - ESP32 modulis

Aparatūras dizains - ESP32 modulis
Aparatūras dizains - ESP32 modulis

ESP32 tiek izmantots kā ārējais modulis galvenajam PCB. Ierīces sakaru pamatā ir AT komandas, kas ir pieejamas vispārējā ierīces programmaparatūrā.

Par šo dizainu nav daudz ko paplašināt, taču ir dažas piezīmes par dizainu:

  • Lai novērstu kļūmes, izmantojot pareizu ESP32 UART moduli, esmu pievienojis trīs izvēles rezistorus gan TX, gan RX līnijām. (0 omi katram). Standarta konfigurācijai AT komandām tiek izmantots UART2 modulis (R4, R7 jāpielodē)
  • Ierīcei ir 4 līniju izeja - VCC, GND, TX, RX.
  • IO0 un EN tapas novērtē ierīces darbību, un tās jāprojektē tā, kā tas ir norādīts shēmās

Visas PCB funkcijas, kuras mēs apskatīsim nākamajā darbībā.

6. darbība: PCB izkārtojums

PCB izkārtojums
PCB izkārtojums
PCB izkārtojums
PCB izkārtojums
PCB izkārtojums
PCB izkārtojums

PCB projektēšanas mērķi

  1. Izveidojiet iegulto sistēmu visām integrētajām shēmām uz vienas plates
  2. Uzlabojiet ierīces veiktspēju, izstrādājot vienu galveno PCB
  3. Izmaksu samazināšana - ja vēlaties uzzināt cenas, zemo izmaksu modeļi patiešām ir zemas izmaksas
  4. Samaziniet elektroniskās plates izmēru
  5. Viegli novērst problēmu - mēs varam izmantot TP (testa punktus) katrai iespējamai nepareizas darbības līnijai.

Tehniskie parametri

Abām PCB: galvenajai un ESP32 plāksnei ir tādas pašas ražošanas procesa īpašības - zemas izmaksas un izmantojamas mūsu vajadzībām. Apskatīsim tos:

A - galvenā valde

  • Izmērs: 10 cm x 5,8 cm
  • Slāņu skaits: 2
  • PCB biezums: 1,6 mm
  • Minimālā atstarpe/platums: 6/6mil
  • Minimālais cauruma diametrs: 0,3 mm
  • Vara līdz PCB malai minimālais attālums: 20mil
  • Virsmas apdare: HASL (diezgan izskatīgs sudraba krāsas lēts veids)

B - galvenā valde

  • Izmērs: 3 cm x 4 cm
  • Slāņu skaits: 2
  • PCB biezums: 1,6 mm
  • Minimālā atstāšanas vieta/platums: 6/6mil
  • Minimālais cauruma diametrs: 0,3 mm
  • Vara līdz PCB malai minimālais attālums: 20mil
  • Virsmas apdare: HASL

7. solis: 3D korpuss

3D korpuss
3D korpuss

Es to neesmu izstrādājis pats, jo tajā laikā es pierunāju šo ierīci strādāt, tāpēc es vispār nezināju visus 3D drukas pamatus. Tādējādi esmu izmantojis Thadiverse SCAD projektu un pie robežām pievienojis dažādas atveres atbilstoši manas ierīces specifikācijām.

  1. Drukāšanas ierīce: Creality Ender-3
  2. Gultas tips: stikls, 5 mm biezs
  3. Kvēldiega diametrs: 1,75 mm
  4. Kvēldiega tips: PLA+
  5. Sprauslas diametrs: 0,4 mm
  6. Sākotnējais ātrums: 20 mm/sek
  7. Vidējais ātrums: 65 mm/sek
  8. Atbalsts: N/A
  9. Uzpilde: 25%
  10. Temperatūra:

    • Gulta: 60 (oC)
    • Sprausla: 215 (oC)
  11. Kvēldiega krāsa: melna
  12. Kopējais atvērumu skaits: 5
  13. Korpusa paneļu skaits: 4

    • TOP Shell
    • Apakšējā čaula
    • Priekšējais panelis
    • Aizmugurējais panelis

8. solis: programmatūras ieviešana - MCU

Programmatūras ieviešana - MCU
Programmatūras ieviešana - MCU
Programmatūras ieviešana - MCU
Programmatūras ieviešana - MCU
Programmatūras ieviešana - MCU
Programmatūras ieviešana - MCU

GitHub Saite uz Android un Atmega32 kodu

Programmatūras algoritms

Visas darbības, kuras veic MCU, ir aprakstītas pievienotajās blokshēmās. Papildus tam ir pievienots projekta kods. Apskatīsim programmatūras specifikācijas:

Ieslēgt

Šajā posmā MCU veic visas inicializācijas secības, kā arī nosaka saglabāto sakaru veidu ar Android ierīci: tieša WiFi vai WLAN tīkla komunikācija - šie dati tiek saglabāti EEPROM. Šajā posmā lietotājs var no jauna definēt Android ierīces savienošanas pārī veidu.

Tieša Android ierīču savienošana pārī

Šāda veida savienošana pārī ir balstīta uz WiFi tīkla izveidi, izmantojot ierīci FuncGen. Tas izveidos AP (piekļuves punktu) un TCP serveri vietējās ierīces IP ar noteiktu SSID (WiFi tīkla nosaukumu) un konkrētu porta numuru. Ierīcei jābūt stāvoklī - atvērta savienojumiem.

Kad Android ierīce ir pievienota FuncGen, MCU pāriet ACTIVE režīmā un reaģē saskaņā ar lietotāja norādījumiem no Android ierīces.

WLAN savienošana pārī

Lai sazinātos vietējā WiFi tīklā, MCU jāsniedz komandas ESP32, lai izveidotu AP, sazinātos ar Android ierīci un apmainītos ar būtiskajiem tīkla datiem:

  • Android ierīce no FuncGen saņem savu MAC adresi un saglabā to atmiņā.
  • FuncGen ierīce saņem no Android ierīces izvēlētos WLAN parametrus: SSID, drošības veidu un paroli un saglabā to EEPROM.

Ja ierīces patiešām ir savienotas ar to pašu WLAN, Android ierīce meklēs FuncGen, skenējot visas ar WLAN savienoto ierīču MAC adreses. Kad Android ierīce nosaka MAC atbilstību, tā mēģina sazināties.

Savienojums un stāvokļa apstrāde - MCU

Kad ierīces sazinās savā starpā, protokols (skat. Iepriekšējo posmu) paliek nemainīgs, un blokshēma ir vienāda.

Ierīces stāvokļa uzraudzība

Laika pārtraukums nodrošina MCU nepieciešamo informāciju stāvokļa apstrādei. Katrā taimera pārtraukuma ciklā tiek atjaunināts šāds parametru saraksts:

  • Ārējais barošanas avots - ieslēgts/izslēgts
  • Akumulatora sprieguma stāvoklis
  • UI atjauninājums katrai pielāgošanai
  • Spiedpoga: nospiesta/nav nospiesta

9. darbība. Programmatūras ieviešana - Android lietotne

Programmatūras ieviešana - Android lietotne
Programmatūras ieviešana - Android lietotne
Programmatūras ieviešana - Android lietotne
Programmatūras ieviešana - Android lietotne
Programmatūras ieviešana - Android lietotne
Programmatūras ieviešana - Android lietotne
Programmatūras ieviešana - Android lietotne
Programmatūras ieviešana - Android lietotne

Android lietotne ir rakstīta Java-Android stilā. Es mēģināšu to izskaidrot tāpat kā iepriekšējās darbības - sadalot algoritmu atsevišķos koda blokos.

Ieslēgšanas secība

Ierīces pirmā secība. Šeit tiek parādīts lietotnes logotips, kā arī Android ierīces GPS un WiFi moduļu iespējošana (neuztraucieties, GPS ir nepieciešams tikai pareizai WiFi skenēšanai).

Galvenā izvēlne

Pēc lietotnes palaišanas ekrānā parādīsies četras pogas. Pogas darbība:

  1. TIEŠAIS SAVIENOJUMS: tiek inicializēts savienojums ar FuncGen AP, izmantojot IOT_FUNCGEN SSID. Ja savienojums ir veiksmīgs, ierīce pāriet galvenajā lietotāja saskarnes režīmā.
  2. WIFI SAVIENOJUMS: ierīce pārbauda, vai atmiņā ir saglabāti datu parametri: wifi.txt, mac.txt. Ja dati netiek saglabāti, ierīce noraidīs lietotāja pieprasījumu un parādīs uznirstošo ziņojumu, ka vispirms ir jāizveido WLAN savienošana pārī.
  3. Pārošana: Sazinieties ar FuncGen tādā pašā veidā kā DIRECT CONNECTION, bet nepārtrauktas ziņojumu apmaiņas vietā ir viens rokasspiediens. Android ierīce pārbauda, vai tā jau ir pievienota WiFi tīklam, un pieprasa lietotājam ievadīt paroli. Ja atkārtots savienojums ir veiksmīgs, Android ierīce saglabā SSID un piekļuves atslēgu failā wifi.txt. Pēc veiksmīgas saziņas ar FuncGen tā saglabā MAC adresi mac.txt failā.
  4. Iziet: Pietiek teikts:)

WiFi skenēšanas pārvaldnieks

Es vēlējos, lai lietojumprogramma darbotos pilnībā un bez pielāgojumiem ārpus lietotnes. Tātad, esmu izstrādājis WiFi skeneri, kas veic visas nepieciešamās darbības, lai izveidotu savienojumu ar WiFi tīklu ar zināmu piekļuves atslēgu un SSID.

Datu pārraide un TCP komunikācija

Šis ir galvenais koda bloks lietotnē. Visām lietotāja saskarnes vienībām ir noteikts ziņojums noteiktā formātā (pirmsfināla solis), kas liek FuncGen nodrošināt vēlamo kanālu izvadi. Darbībā ir trīs veidu UI lauki:

  1. Meklēt joslas: šeit mēs definējam FuncGen izejas parametru reālo diapazonu

    1. Amplitūda
    2. Līdzstrāvas nobīde
    3. LCD spilgtums
    4. LCD kontrasts
  2. Teksta rediģēšana: lai saglabātu veselu skaitļu vērtības skaidri noteiktas un precīzas, frekvenču ievadīšana tiek veikta, izmantojot tikai tekstlodziņus
  3. Pogas: parametru izvēle no pieejamajiem sarakstiem:

    1. Viļņu formas tips

      1. Sinus
      2. Trīsstūris
      3. DC
      4. Kvadrāts
      5. IZSL
    2. Iegūt informāciju

      1. Akumulatora statuss (procentos)
      2. Maiņstrāvas statuss (ārējais barošanas avots)
    3. Sāknēšanas opcija (FuncGen MCU)

      1. Rūpnīcas iestatījums
      2. Restartēt
      3. Izslēgt
      4. Tiešais - restartējiet, izmantojot tiešās savienošanas pārī režīmu
      5. WLAN - restartējiet, izmantojot WLAN savienošanas pārī režīmu
    4. Izeja uz galveno izvēlni: pietiekami daudz:)

10. solis: pārbaude

Ieteicams: