Mündəricat:

WiFi və Android -də Portativ Function Generator: 10 Addım
WiFi və Android -də Portativ Function Generator: 10 Addım

Video: WiFi və Android -də Portativ Function Generator: 10 Addım

Video: WiFi və Android -də Portativ Function Generator: 10 Addım
Video: 🔥 Kali Nethunter wifi hacking 🔥 #technical_krrish #trending #viral #nethunter #root 2024, Iyul
Anonim
WiFi və Android -də portativ funksiya generatoru
WiFi və Android -də portativ funksiya generatoru
WiFi və Android -də portativ funksiya generatoru
WiFi və Android -də portativ funksiya generatoru
WiFi və Android -də portativ funksiya generatoru
WiFi və Android -də portativ funksiya generatoru
WiFi və Android -də portativ funksiya generatoru
WiFi və Android -də portativ funksiya generatoru

20 -ci əsrin sonlarına yaxın, xüsusən rabitə sahəsində müxtəlif texnoloji yeniliklər ortaya çıxdı; ancaq nəinki. Bizim üçün, istifadəçilər, istehlakçılar və mühəndislər, həyatımızı çox asanlaşdıran elektron cihazların sürətli inkişafına gəldilər: Ağıllı saatlar, ağıllı evlər, smartfonlar və s.

İndiki vaxtda hər şey "ağıllı" ola biləcəyi üçün, əsas elektron laboratoriya avadanlığının bir hissəsi olmaq üçün çox faydalı bir cihaz - WiFi birbaşa və ya WiFi Yerli Şəbəkə (WLAN) vasitəsilə Android OS əsaslı bir smartfon tərəfindən idarə olunan Portativ Function Generator dizayn etmək qərarına gəldim.).

Niyə bu cihazı qurmalıyıq?

Test cihazlarının böyük əksəriyyəti bu gün olduqca bahalıdır. Və bəzən bu cihazlar portativ olmur. Yüksək qiymətlər, daşınmazlığın olmaması və cihaz şəbəkəsinə girişin olmaması üçün bir cihaz, həqiqətən də portativ olan və şəbəkəyə məhdudiyyətsiz girişi olan iki kanallı dalğa forması generatoru təqdim edir - istər internet, istərsə də yerli.

Əlbəttə ki, cihaz DIY prinsiplərinə riayət etməklə həvəslə qurulmalıdır - Bəzən özümüzü düzgün hiss etmək üçün özümüz etməliyik:)

Əsas Xüsusiyyətlər

Enerji təchizatı

  • USB Type-A konnektoru, həm enerji təchizatı sistemləri, həm də proqramlaşdırma üçün
  • Tam Li -Ion batareya idarəetmə sistemi - Şarj və sabit rejimlər
  • Smart Switch tətbiqi - güc dəyişdirmə açarına ehtiyac yoxdur
  • İkiqat enerji təchizatı: +3.3V və -3.3V simmetrik gərginlik dalğa forması yaratmaq üçün

Dalğa Forması Nəsli

  • Çıxış kaskadında DC səviyyəsinin tətbiqi - gərginlik sərhədləri arasında qərəzli dalğa forması
  • DDS əsaslı 4 tip dalğa forması nəsli - Sinus, üçbucaq, kvadrat və DC
  • 10 MHz -ə qədər tezlik dəstəyi
  • 500mW maksimum güc mövcudluğu ilə 80mA -a qədər çıxış cərəyanı
  • Dalğa forması yaratmaq üçün ayrılmış kanallar - bölünmüş AD9834 sxemləri

Ünsiyyət

  • ESP32 - Tətbiq olunan WiFi imkanları
  • Generator cihazı və Android smartfonu ilə tam TCP/IP dəstəyi
  • İstənilən cihaz dövrü üçün istifadəçi parametrlərini saxlamaq imkanı
  • Dövlət monitorinqi - hər iki sistem bir -birindən xəbərdardır: FuncGen (bundan sonra buna belə ad verək) və smartfon.

İstifadəçi interfeysi

  • Sadə 4 bit məlumat interfeysi olan 20 x 4 Karakterli LCD
  • Android tətbiqi - FuncGen cihazı üzərində tam istifadəçi nəzarəti
  • Buzzer dövrəsi - istifadəçiyə səsli rəy

Addım 1: Blok Şeması - Avadanlıq

Blok Şeması - Avadanlıq
Blok Şeması - Avadanlıq
Blok Şeması - Avadanlıq
Blok Şeması - Avadanlıq

Mikro nəzarətçi vahidi - ATMEGA32L

Mikrokontroller, tək bir elektron çipdə olan bütün kompüter funksiyalarından ibarət proqramlaşdırıla bilən bir çipdir. Bizim vəziyyətimizdə, "beyin" və sistemin mərkəzi bir hissəsidir. MCU -nun məqsədi bütün periferik sistemləri idarə etmək, bu sistemlər arasındakı əlaqəni idarə etmək, aparatın işini idarə etmək və istifadəçi interfeysi və faktiki istifadəçi ilə qarşılıqlı əlaqəsi üçün tam dəstək verməkdir. Bu layihə 3.3V və 8MHz tezlikdə işləyə bilən ATMEGA32L MCU -ya əsaslanır.

Rabitə SoC - ESP32

Bu SoC (Çipdəki Sistem), FuncGen üçün tam ünsiyyət dəstəyi təmin edir - birbaşa, yerli və ya internet əlaqəsi daxil olmaqla WiFi imkanlarına giriş. Cihazın məqsədləri bunlardır:

  • Android tətbiqi ilə FuncGen cihazı arasında məlumat ötürülməsi
  • Nəzarət/məlumat mesajlarının idarə edilməsi
  • Davamlı TCP/IP Müştəri-Server konfiqurasiyasına dəstək

Layihəmizdə SoC espressif ESP32 -dir, onu daha da genişləndirmək üçün çox populyardır:)

Li-Ion Batareya İdarəetmə Sistemi

Cihazımızı portativ bir cihaza çevirmək üçün cihazda dizayn edilmiş Li-Ion batareya şarj dövrəsi var. Dövrə, bir proqramlaşdırma müqavimətinin dəyərini tənzimləməklə idarə olunan şarj cərəyanı olan MC73831 IC -ə əsaslanır (Bu mövzunu Şematik addımında əhatə edəcəyik). Cihazın enerji təchizatı girişi USB Type-A bağlayıcıdır.

Ağıllı keçid dövrəsi

Ağıllı keçid cihazının güc idarəetmə dövrəsi, cihazın bağlanma ardıcıllığı üzərində tam proqram nəzarəti və cihaz batareyasının gərginliyinin kəsilməsi üçün xarici keçid açarına ehtiyac olmamasıdır. Bütün güc əməliyyatları düyməyə və MCU proqramına basaraq aparılır. Bəzi hallarda sistemi bağlamaq lazım gələ bilər: aşağı batareya gərginliyi, yüksək giriş gərginliyi, əlaqə xətası və s. Ağıllı keçid, STM6601 ağıllı keçid IC -ə əsaslanır, ucuz və ətrafında oynamaq çox dostdur.

Əsas enerji təchizatı bölməsi

Bu qurğu iki batareyadan idarə olunan enerji təchizatı sxemlərindən ibarətdir -bütün rəqəmsal / analoq təchizat dövrələri üçün +3.3V və 0V potensialına nisbətən FunGen simmetrik çıxışı üçün -3.3V (yəni yaranan dalğa forması [-3.3V: 3.3V] bölgəsi.

  • Əsas təchizat dövrəsi LP3875-3.3 LDO (aşağı düşmə) 1A xətti gərginlik tənzimləyicisinə əsaslanır.
  • İkincil təchizat dövrəsi, IC-nin əsaslandığı kondansatör-doldurma nasosu vasitəsilə DC-DC mənfi gərginlik çevrilməsini həyata keçirən LM2262MX IC-ə əsaslanır.

Dalğa forması generatorları sistemi

Sistem ayrı bir DDS (birbaşa rəqəmsal sintez) inteqral sxemlərinə diqqət yetirməklə hazırlanmışdır ki, bu da MCU -nun SPI (serial periferik interfeysi) tərəfindən tam dalğa forması yaratmağa imkan verir. Dizaynda istifadə olunan sxemlər, müxtəlif növ dalğa formaları təmin edə bilən AD9834 Analog Cihazlardır. AD9834 ilə işləyərkən qarşılaşmalı olduğumuz çətinliklər:

  • Sabit dalğa amplitudası: Dalğa formasının amplitudu xarici DAC modulu ilə idarə olunur
  • Ofset DC səviyyəsinə əhəmiyyət verilmir: İstənilən DC ofset dəyərləri ilə toplama sxemlərinin tətbiqi
  • Kvadrat dalğa və üçbucaq/sinüs dalğası üçün ayrı -ayrı çıxışlar: Yüksək tezlikli keçid dövrəsinin tətbiqi, beləliklə hər bir kanalın tək çıxışı istənilən dalğa formasını təmin edə bilər: sinus, üçbucaq, kvadrat və DC.

Maye Kristal Ekran

LCD, istifadəçi interfeysinin (istifadəçi interfeysi) bir hissəsidir və məqsədi istifadəçiyə cihazın real vaxt rejimində nə etdiyini anlamasını təmin etməkdir. İstənilən cihaz vəziyyətində istifadəçi ilə əlaqə qurur.

Buzzer

Cihazdan istifadəçiyə əlavə rəy üçün sadə ton generatoru dövrəsi.

İnteqrasiya edilmiş ISP Proqramçısı

Proqramlaşdırma prosesinə gəldikdə, hər bir mühəndis üçün davamlı bir problem var: Məhsulu yeni bir proqram təminatı ilə yenidən proqramlaşdırmaq üçün onu sökməyə həmişə ehtiyac var. Bu narahatlığı aradan qaldırmaq üçün AVR İSS proqramçısı cihaza içəridən bağlanmışdı, halbuki USB məlumatları və elektrik xətləri cihazın USB Type-A konnektoruna bağlanmışdır. Bu konfiqurasiyada, sadəcə proqramlaşdırma və ya şarj etmək üçün FuncGen -i USB kabel vasitəsilə bağlamalıyıq!

Addım 2: Blok Şeması - Şəbəkə qurmaq

Blok diaqramı - Şəbəkə qurmaq
Blok diaqramı - Şəbəkə qurmaq

İkiqat kanallı funksiya generatoru

Əsas cihaz. Əvvəlki addımda nəzərdən keçirdiyimiz

ESP-WOM-32

WiFi və BLE imkanları ilə inteqrasiya edilmiş sistem çipi. SoC, UART modulu vasitəsi ilə ana lövhəyə əlavə olunur (bunu sxematik şəkildə izah edəcəyik) və əsas cihazla Android smartfonu arasında mesaj ötürücü rolunu oynayır.

WiFi Yerli Şəbəkə

Smartfon və cihaz, TCP server/müştəri konfiqurasiyasına əsaslanaraq WiFi birbaşa və ya lokal şəbəkə vasitəsi ilə əlaqə quracaq. Cihazlar WiFi -də bir -birini tanıdıqda, əsas cihaz uyğun parametrlərə malik TCP serveri yaradır və mesaj göndərə/qəbul edə bilir. Cihaz smartfon üçün ikincil rol oynayır. Digər tərəfdən, Android cihazı, müştəri şəbəkə cihazı olaraq TCP serverinə bağlanır, lakin əsas mesaj ötürücü hesab olunur - tam ünsiyyət dövrünü başlatan smartfon: Mesaj göndərmək - cavab almaq.

Android smartfonu

FuncGen tətbiqi ilə işləyən Android OS əsaslı bir smartfon cihazı

Addım 3: hissələr, alətlər, IDE və materiallar siyahısı

Parçalar, Alətlər, IDE və Materiallar Bill
Parçalar, Alətlər, IDE və Materiallar Bill
Parçalar, Alətlər, IDE və Materiallar Bill
Parçalar, Alətlər, IDE və Materiallar Bill
Parçalar, Alətlər, IDE və Materiallar Bill
Parçalar, Alətlər, IDE və Materiallar Bill

Materiallar (Əlavə edilmiş XLS cədvəlinə baxın)

UI və Sistem Əlaqələri

  • 1 x 2004A Char-LCD 20x4 Mavi
  • 1 x USB Tip B Konnektoru
  • 1 x 10 Set Mini Micro JST XH 2.54mm 4 Pin
  • 1 x 6 ədəd Ani SW

PCB sifarişi (Seeed Studioya görə)

Əsas material FR-4

Layer sayı 2 qat

PCB miqdarı 10

Fərqli Dizaynların sayı 1

PCB qalınlığı 1.6 mm

PCB Rəngi Mavi

Səthi Finiş HASL

Minimum Lehim Maska Barajı 0.4mm ↑

Mis Çəkisi 1 oz

Minimum Delik Ölçüsü 0.3mm

İz Genişliyi / Aralıq 6/6 mil

Plitələr Yarım deşiklər / Castellated Deliklər No

Empedansa Nəzarət No.

Alətlər

  • İsti yapışqan silahı
  • Cımbız
  • Kəsici
  • ~ 22AWG teli, nasazlığı aradan qaldırmaq üçün
  • Lehimləmə dəmir/stansiya
  • Lehimləmə qalay
  • SMD yenidən işləmə stansiyası (isteğe bağlı)
  • 3D printer (İsteğe bağlı)
  • Fayl çıxarılır
  • AVR ISP Proqramçısı
  • USB -dən Serial Dönüştürücü (İsteğe bağlı, ayıklama məqsədləri üçün)

İnteqrasiya edilmiş İnkişaf Mühiti (IDE) və Proqram təminatı

  • Autodesk EAGLE və ya Cadence Şematik Redaktoru / Allegro PCB Redaktoru
  • OpenSCAD (İsteğe bağlı)
  • Ultimaker Cura (İsteğe bağlı)
  • Saleae Məntiqi (problemlərin həlli üçün)
  • Atmel Studio 6.3 və ya daha yuxarı
  • Android Studio və ya Eclipse IDE
  • Docklight Serial Monitor / Digər COM port monitorinq proqramı
  • AVR ATMEGA32L flash proqramlaşdırma üçün ProgISP

Addım 4: Avadanlıq Dizaynı - Ana Kart

Avadanlıq Dizaynı - Əsas lövhə
Avadanlıq Dizaynı - Əsas lövhə
Avadanlıq Dizaynı - Əsas lövhə
Avadanlıq Dizaynı - Əsas lövhə
Avadanlıq Dizaynı - Əsas lövhə
Avadanlıq Dizaynı - Əsas lövhə

Batareya İdarəetmə Dövrü

Batareya şarj dövrəsi, Li -Ion batareyası üçün 850mAh tutumlu 3.7V şarj istədiyiniz şarj cərəyanını seçməyə imkan verən MCP7383 IC -ə əsaslanır. Şarj cərəyanı, vəziyyətimizdə müqavimət müqavimətinin dəyəri (R1) tərəfindən təyin edilir

R1 = 3KOhm, I (şarj) = 400mA

USB gərginliyi VBUS filter filtrlə (C1, L3, C3) süzülür və şarj dövrəsi üçün enerji mənbəyi rolunu oynayır.

Gərginlik bölücü dövrə (R2, R3) MCU A/D kanalına aşağıdakı gərginliyi təmin etməklə MCU -ya xarici USB enerji təchizatının bağlı olub olmadığını göstərməyə imkan verir:

V (göstəriş) ~ (2/3) V (BUS)

ATMEGA32L A/D 12 bit olduğundan, rəqəmsal aralığı hesablaya bilərik:

A / D (diapazon) = 4095V (göstərici) / V (REF).

A/D ∈ [14AH: FFFH]

Smart Switch Güc Bölməsi

Dövrə, sistemə həm MCU üzərindəki düymələrdən, həm də proqramlardan hər bir blokun enerji təchizatını idarə etməyə imkan verir və RESET yerinə POWER seçimi olan STM6601 Smart-Switch-ə əsaslanır. Düşünmək istədiyimiz terminallar bunlardır:

  • PSHOLD - Cihazın vəziyyətini təyin edən giriş xətti: LOW aşağı çəkilərsə, cihaz bütün ikincil enerji təchizatı bloklarını (+3.3V və -3.3V) söndürür. YÜKSƏK saxlanılırsa - cihaz ON vəziyyətini saxlayır.
  • nSR və nPB - Giriş xətləri. Düymə terminalları. Bu pinlərdə düşən kənar aşkar edildikdə, cihaz güc açma / söndürmə rejiminə keçməyə çalışır
  • nINT - Çıxış xətti. Düymə hər dəfə basıldıqda LOW aşağı çəkilir
  • EN - Çıxış xətti, ikincil enerji təchizatı vahidləri üçün güc təminatı olaraq istifadə olunur. LOW tutulduqda, hər iki ikincil enerji təchizatı deaktiv edilir

Son dizayna keçməzdən əvvəl bəzi vacib qeydlər var:

  • PSHOLD 3.3V-ə qədər çəkilməlidir, çünki MCU-ların bütün G/Ç-ləri HIGH-Z vəziyyətində olmağa məcbur etdiyi hallar var. Bu vəziyyətdə, MCU -dan PSHOLD vəziyyəti bilinmir və cihazın proqramlaşdırma prosesini kəskin şəkildə təsir edə bilər.
  • STM6601, RESET seçimi əvəzinə uzun basdıqda bir EN tənzimləmə seçimi ilə sifariş edilməlidir (mən buna düşmüşəm).

Enerji təchizatı vahidi: +3.3V

Layihəmizdəki bütün sistemlər üçün əsas enerji təchizatı. +3.3V xətti GND səviyyəsində tutulduqda (yəni gərginlik yoxdur), ağıllı keçid istisna olmaqla bütün IC -lər deaktiv edilir. Dövrə, LDO LP-3875-3.3 IC-ə əsaslanır, EN terminalı vasitəsilə idarə oluna bilər və 1A-a qədər cərəyan verir.

Bu dövrə üçün enerji mənbəyi, VBUS algılama sxeminə bənzər konfiqurasiyada VBAT -ı hiss etmək üçün əlavə edilmiş A/D göstəricisi olan batareya gərginliyidir. Bu vəziyyətdə hesablamalar bir qədər fərqlidir;

V (Batareyadan A/D-ə) = 0.59V (Batareya); A/D (diapazon) ∈ [000H: C03H]

Enerji təchizatı vahidi: -3.3V

Mənfi gərginlik təchizatı dövrəsi, DC faktoru 0V olan simmetrik dalğa formaları yaratmağa imkan verir (yəni dalğa formasının orta dəyəri 0V ola bilər). Bu dövrə "şarj nasosu" üsulu ilə işləyən LM2662MX IC - DC/DC çeviricisinə əsaslanır. Dövrənin maksimum çıxış cərəyanı dizayn tələblərimiz üçün kifayət edən 200mA -dır - hər cihazın kanalından 80mA çıxış cərəyanı ilə məhdudlaşırıq.

IC bütün lazımi işləri yerinə yetirir, buna görə bağlamağımız lazım olan yalnız iki hissə elektrolitik kondansatördür: keçid üçün C33 və -3.3V xətti baypası üçün C34 (səs -küyün azaldılması mülahizələri). Dövrəni dalğa forması istehsal hissələrindən kifayət qədər uzaqda yerləşdirsək keçid tezliyi dizaynda əhəmiyyətsizdir (PCB Layout addımında müzakirə edəcəyik).

Mikrokontrolör vahidi - MCU

Bu, sistemimizin idarəçisi və baş direktorudur - nəzarət, şəbəkə işlənməsi, mesaj ötürülməsi və UI dəstəyi - hər şey MCU tərəfindəndir.

Seçilmiş MCU, Atmel ATMEGA32L -dir, burada L voltage [2.7V: 5.5V] gərginlik əməliyyatını ifadə edir. Bizim vəziyyətimizdə işləmə gərginliyi +3.3V -dir.

Dizaynımızda MCU ilə işləyərkən başa düşmək lazım olan əsas əməliyyat bloklarını nəzərdən keçirək:

  • Xarici Osilatör - İsteğe bağlı bir komponentdir, çünki 8MHz iş tezliyi ilə maraqlanırıq
  • Periferik Nəzarət, SPI Şəbəkəsi - Bütün ətraf qurğular (ESP32 istisna olmaqla) SPI vasitəsilə MCU ilə əlaqə qurur. Bütün cihazlar (SCK, MOSI, MISO) üçün üç paylaşılan xətt var və hər bir periferik dövrənin xüsusi CS (Chip Select) xətti var. Cihazın bir hissəsi olan SPI cihazları:

    1. Amplituda nəzarət üçün D/A - Kanal A
    2. Amplituda nəzarət üçün D/A - Kanal B
    3. AD9834 cihazı - Kanal A
    4. AD9834 cihazı - Kanal B
    5. Yanlış gərginlik nəzarəti üçün D/A - Kanal A
    6. Yanlış gərginlik nəzarəti üçün D/A - Kanal B
    7. LCD parlaqlıq/kontrast parametrləri üçün rəqəmsal potensiometr
  • LCD Dəstəyi - LCD ümumi 20 x 4 xarakterli bir ekran olduğundan 4 bitlik interfeysdən (D7 xətləri: D4), idarəetmə pinlərindən (RS, E xətləri) və parlaqlıq/kontrast nəzarətindən (V0 və Anod xətləri) istifadə edirik.
  • RGB LED dəstəyi - Bu modul isteğe bağlıdır, lakin MCU -ya qoşulmuş müvafiq müqavimətlərə malik ümumi katotlu RGB LED konnektoru var.
  • Güc Nəzarəti - MCU, real vaxt rejimində enerji sistemi monitorinqini həyata keçirir və bütün lazım olan güc hadisələrini idarə edir:

    1. VBAT_ADC - Batareya gərginliyinin monitorinqi və vəziyyətinin təyin edilməsi (ADC0 kanalı)
    2. PWR_IND - Xarici enerji təchizatı bağlantısının göstəricisi (ADC1 Kanalı)
    3. PS_HOLD - Bütün təyin edilmiş sistemlər üçün əsas güc imkan xətti. MCU tərəfindən aşağı çəkildikdə cihaz söndürülür
    4. Ağıllı keçidin kəsmə terminalı - Düymə vəziyyətinin monitorinqi
  • WiFi Şəbəkə İdarəçiliyi - ESP32: MCU, UART interfeysi vasitəsi ilə ESP32 ilə əlaqə qurur. 8MHz, nisbətən kiçik bir səhvlə 115200 baud sürətini tətbiq etməyimizə imkan verdiyindən, baud dərəcəsi dəyişikliklərinin əvvəlcədən təyin edilmədən dövrədə ESP32 istifadə edə bilərik.

AVR ISP Proqramçısı

MCU, SPI vasitəsilə proqramlaşdırılır və sıfırlama xətti (/RST) düzgün işləməsi üçün YÜKSƏ çəkilməlidir (əgər belə deyilsə - MCU özünü sıfırlama vəziyyətində əbədi olaraq tapacaq).

Cihazın həm USB vasitəsilə proqramlaşdırılmasına, həm də yüklənməsinə icazə vermək üçün AVR ISP proqramçısını (eBay-dan alınan kiçik ölçülü məhsul) əlavə etdim. Cihazın tam USB dəstəyini təmin etmək üçün USB Type-A (D+, D-, VBUS və GND) terminallarını AVR ISP cihazı ilə bağlamaq lazımdır.

Dalğa Forması Nəsil Devresi

Cihazın əsasını bu sxemlər təşkil edir. AD9834, sistemdən əldə etmək istədiyimiz bütün dalğa formalarını təmin edən aşağı güclü DDS cihazıdır. Dövrlərdə ayrılmış xarici 50MHz osilatörlü iki müstəqil AD9834 IC var (sxemlərdə göründüyü kimi). Ayrılan osilatörün səbəbi rəqəmsal dövrələrin səs -küyün azaldılmasıdır, buna görə qərar, AD9834 -ə bitişik osilatorlarla uyğun 50MHz xətləri idarə etmək idi.

İndi bir az riyaziyyata baxaq:

DDS cihazı, 28 bitlik bir reyestrdə tutulan çıxış dəyəri ilə Faz Təkər texnologiyasında işlədiyi üçün dalğa forması nəslini riyazi olaraq təsvir edə bilərik:

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

Və AD9834 məlumat cədvəlinə əsasən, maksimum tezliyi nəzərə alaraq çıxış tezliyi qətnaməsi əldə edilə bilər:

Δf = k * f (osilatör) / f (maksimum) = 0.28 * 50M / 28M = 0.187 [Hz]

AD9834 IC -ləri üçbucaq/sinus dalğası (IOUT terminalı) üçün analog cərəyan çıxışı və kvadrat dalğa üçün rəqəmsal çıxış (SIGN_OUT terminal) təmin edir. İşarə bitinin istifadəsi bir az çətindir, amma biz onu idarə edə bilirik - DDS hər dəfə müqayisə dəyərinin həddini keçəndə SIGN_OUT buna uyğun davranır. Hər bir kanalın çıxışına 200 Ohm rezistor əlavə olunur, buna görə çıxış gərginliyi mənalı dəyərlərə malik olacaq:

I (tək kanal) = V (çıxış) / R (gərginlik seçimi); V (çıxış) = R (VS)*I (SS) = 200I (SS) [A]

Genlik Nəzarəti (D/A) sxemləri

AD9834 məlumat cədvəlinə görə, amplitudası DDS tam miqyaslı sistemə cərəyan verməklə tənzimlənə bilər, buna görə ikili D/A IC -nin köməyi ilə bu cərəyanı tənzimləyərək çıxış siqnalının amplitüdünü idarə edə bilərik. Yenə də bir az riyaziyyat:

I (tam miqyaslı) = 18 * (V_REF - V_DAC) / R_SET [A]

Sxemlərə görə və bəzi ədədləri tənliyə qoyaraq:

I (tam miqyaslı) = 3.86 - 1.17 * V_DAC [A]

Dizaynda istifadə olunan D/A modulu 12-bit MCP4922-dir, cərəyan [0mA: 3.86mA] aralığında olduqda və xətti amplituda funksiyası:

V (amplituda seçimi) = 1 - [V (D / A) / (2^12-1)]

Dalğa Forması Çoxlayıcı Dövrə

Kvadrat dalğa və sinus/üçbucaq dalğa nəsil çıxışları AD9834 -də ayrılır, buna görə də bütün ayrılmış kanallardan istənilən dalğa formalarının alınmasını təmin etmək üçün hər iki çıxış üçün yüksək sürətli multipleksləşdirmə sxemindən istifadə etməliyik. Multiplexer IC, çox aşağı müqavimət (~ 0.5Ohm) olan bir ADG836L analoq açarıdır.

MCU -nun çıxışlar üçün istifadə etdiyi seçim cədvəli:

Rejim Seçimi [D2: D1] | Çıxış Kanalı A | Çıxış kanalı B.

00 | Sinus/Üçbucaq | Sinus/Üçbucaq 01 | Sinus/Üçbucaq | Meydan 10 | Meydan | Sinus/Üçbucaq 11 | Meydan | Meydan

Yanlış Gərginlik İdarəetmə (D/A) sxemləri

Dalğa forması generatorunun əsas xüsusiyyətlərindən biri DC dəyərini idarə etməkdir. Bu dizaynda hər bir kanal üçün istədiyiniz D/A gərginliyi təyin edilərək edilir və bu qərəzli gərginliklər bir az əvvəl müzakirə etdiyimiz çoxsaylı çıxışlarla yekunlaşdırılır.

D/A-dan alınan gərginlik [0V: +3.3V] aralığındadır, buna görə cihazın tam diapazonunu təmin etməsinə imkan verən D/A aralığını [-3.3V: +3.3V] ilə xəritələndirən op-amp əsaslı bir dövrə var. istədiyiniz DC komponenti. Zəhlətökən analitik riyazi atlayacağıq və yalnız son nəticələrə diqqət yetirəcəyik:

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

İndi DC komponentləri [-3.3V: +3.3V] aralığında yerləşir.

Toplama sxemləri - DC komponentləri və dalğa formalı çıxışlar

Bu nöqtədə, cihazın düzgün çıxışı üçün lazım olan hər şeyə sahibik - tam gərginlik aralığında Bias Voltajı (DC komponenti) və çoxqatlı AD9834 çıxışları. Bunu toplayıcı gücləndirici - op -amp konfiqurasiyasından istifadə edərək həyata keçirəcəyik

Bir daha riyaziyyatı atlayaq (artıq bir çox riyazi yanaşmanı əhatə etmişik) və yekun gücləndiricinin çıxışının son nəticəsini yazaq:

V (cihaz çıxışı) = V (müsbət qərəz) - V (mənfi qərəz) - V (çoxqatlı çıxış) [V]

Beləliklə:

V_OUT = ΔV_BIAS - V_AD9834 [V]

BNC tipli çıxış konnektorları bir seçim rezistoru ilə bağlanır (R54, R55; R56, R57). Bunun səbəbi, dizaynın işləməməsi halında, yenə də toplama gücləndiricisindən istifadə etmək istədiyimizi seçə bilərik.

Mühüm Qeyd: Son toplama gücləndiricilərinin rezistor şəbəkələri, cihazdan əldə edilə bilən maksimum amplitudu dəyişdirmək üçün dizayner tərəfindən tənzimlənə bilər. Mənim vəziyyətimdə, bütün amperlər eyni qazancı bölüşürlər = 1, beləliklə maksimum tamponlanmış amplitüd üçbucaq/sinus dalğa üçün 0.7Vpp və kvadrat dalğa üçün 3.3Vpp təşkil edir. Xüsusi riyazi yanaşma addımın əlavə edilmiş şəkilləri arasında tapıla bilər.

Xarici modul olaraq ESP32

MCU, ESP32 ilə UART interfeysi vasitəsilə əlaqə qurur. ESP32 üçün öz PCB istədiyim üçün qoşulmaq üçün 4 terminal var: VCC, RX, TX, GND. J7, PCB -lər arasında bir interfeys bağlayıcısıdır və ESP32 cihazın içərisində xarici modul olaraq ayrılacaq.

İstifadəçi interfeysi - LCD və Dinamik

İstifadə olunan LCD, 4 bitlik interfeysi olan ümumi 20 x 4 xarakterli bir ekrandır, dizayndan da göründüyü kimi "A" və "V0" LCD terminallarına qoşulmuş bir SPI rəqəmsal potensiometr var - məqsədi tənzimləməkdir. LCD modulunun parlaqlığı və kontrastı proqram olaraq.

Dinamik, MCU -dan sadə kvadrat dalğa istehsalı ilə istifadəçi üçün səs çıxışı təmin edir. BJT T1, cərəyanı yalnız iki vəziyyətdə ola bilən dinamikdən idarə edir - ON / OFF.

Addım 5: Avadanlıq Dizaynı - ESP32 Modulu

Avadanlıq Dizaynı - ESP32 Modulu
Avadanlıq Dizaynı - ESP32 Modulu

ESP32 əsas PCB üçün xarici modul kimi istifadə olunur. Cihaz ünsiyyəti, ümumi bir cihazın proqram təminatında olan AT əmrlərinə əsaslanır.

Bu dizaynı genişləndirmək üçün çox şey yoxdur, ancaq dizayn üçün bəzi qeydlər var:

  • ESP32 -nin düzgün UART modulundan istifadə edilməməsi üçün həm TX, həm də RX xətləri üçün üç seçim rezistoru əlavə etdim. (Hər biri üçün 0 Ohm). Standart konfiqurasiya üçün AT əmrləri üçün UART2 modulu istifadə olunur (R4, R7 lehimli olmalıdır)
  • Cihazın 4 xəttli çıxışı var - VCC, GND, TX, RX.
  • IO0 və EN pinləri cihazın işini qiymətləndirir və sxemlərdə göstərildiyi kimi dizayn edilməlidir

Aşağıdakı addımda əhatə edəcəyimiz bütün PCB xüsusiyyətləri.

Addım 6: PCB Layout

PCB Layout
PCB Layout
PCB Layout
PCB Layout
PCB Layout
PCB Layout

Bir PCB dizaynının məqsədləri

  1. Eyni lövhədə bütün inteqral sxemlər üçün quraşdırılmış sistem yaradın
  2. Bir əsas PCB dizayn edərək cihaz performansını artırın
  3. Xərclərin azaldılması - qiymətlərə baxmaq istəyirsinizsə, aşağı qiymətli dizaynlar Həqiqətən aşağı qiymətdir
  4. Elektron lövhənin ölçüsünü minimuma endirin
  5. Problemi həll etmək asandır - Hər bir nasazlıq xətti üçün TP -lərdən (Test nöqtələri) istifadə edə bilərik.

Texniki parametrlər

Hər iki PCB: əsas və ESP32 lövhəsi istehsal prosesi üçün eyni xüsusiyyətlərə malikdir - aşağı qiymət və məqsədlərimiz üçün işləkdir. Onları görək:

A - Əsas lövhə

  • Ölçü: 10 sm x 5.8 sm
  • Qatların sayı: 2
  • PCB qalınlığı: 1.6 mm
  • Minimum iz sahəsi/eni: 6/6 mil
  • Minimum çuxur diametri: 0.3 mm
  • PCB minimum məsafənin kənarına qədər olan mis: 20 mil
  • Səthi bitirmə: HASL (olduqca yaxşı görünən gümüş rəng ucuz tip)

B - Ana lövhə

  • Ölçü: 3 x 4 sm
  • Qatların sayı: 2
  • PCB qalınlığı: 1.6 mm
  • Minimum iz sahəsi/eni: 6/6 mil
  • Minimum çuxur diametri: 0.3 mm
  • PCB minimum məsafənin kənarına qədər olan mis: 20 mil
  • Səth işlənməsi: HASL

Addım 7: 3D Qoşma

3D Mühafizə
3D Mühafizə

Mən bunu özüm tərtib etməmişəm, çünki o vaxt bu cihazı işləməyə inandırırdım, buna görə də 3D çapın bütün əsaslarından heç xəbərim yox idi. Beləliklə, Thingiverse -dən bir SCAD layihəsi istifadə etdim və cihazımın spesifikasiyalarına uyğun olaraq sərhədlərə fərqli deşiklər bağladım.

  1. Çap Cihazı: Creality Ender-3
  2. Yataq Tipi: Şüşə, qalınlığı 5 mm
  3. Filament diametri: 1.75 mm
  4. Filament növü: PLA+
  5. Burun diametri: 0.4 mm
  6. İlkin Sürət: 20 mm/san
  7. Orta sürət: 65 mm/san
  8. Dəstək: Yox
  9. Doldurma: 25%
  10. Temperatur:

    • Yataq: 60 (oC)
    • Burun: 215 (oC)
  11. Filament Rəngi: Qara
  12. Diyaframların ümumi sayı: 5
  13. Qapı Panellərinin sayı: 4

    • TOP Shell
    • Alt Qabıq
    • Ön Panel
    • Arxa Panel

Addım 8: Proqram Tətbiqi - MCU

Proqram Tətbiqi - MCU
Proqram Tətbiqi - MCU
Proqram Tətbiqi - MCU
Proqram Tətbiqi - MCU
Proqram Tətbiqi - MCU
Proqram Tətbiqi - MCU

Android və Atmega32 Koduna GitHub Bağlantısı

Proqram Alqoritmi

MCU tərəfindən həyata keçirilən bütün əməliyyatlar əlavə edilmiş sxemlərdə təsvir edilmişdir. Bundan əlavə, layihə üçün əlavə edilmiş bir kod var. Proqram xüsusiyyətlərini nəzərdən keçirək:

Gücləndirmə

Bu mərhələdə, MCU, Android cihazı ilə saxlanan ünsiyyət növünün təyin edilməsi ilə birlikdə bütün başlanğıc ardıcıllığını yerinə yetirir: Birbaşa WiFi və ya WLAN şəbəkə əlaqəsi - bu məlumatlar EEPROM -da saxlanılır. İstifadəçi bu mərhələdə Android cihaz eşleme tipini yenidən təyin edə bilər.

Birbaşa Android Cihaz Cütləşməsi

Bu tip cütləşmə, FuncGen cihazı tərəfindən WiFi şəbəkəsinin yaradılmasına əsaslanır. Xüsusi bir SSID (WiFi şəbəkə adı) və müəyyən bir port nömrəsi olan yerli bir cihaz IP -də AP (Giriş nöqtəsi) və TCP serveri yaradacaq. Cihaz vəziyyəti saxlamalıdır - əlaqələr üçün açıqdır.

Android cihazı FuncGen -ə qoşulduqda, MCU ACTIVE rejiminə daxil olur və Android cihazından istifadəçi təlimatlarına uyğun olaraq cavab verir.

WLAN cütləşməsi

Yerli bir WiFi şəbəkəsində ünsiyyət qurmaq üçün MCU, ESP32 üçün AP yaratmaq, Android cihazı ilə əlaqə qurmaq və vacib şəbəkə məlumatlarını mübadilə etmək üçün əmrlər verməlidir:

  • Android cihazı FuncGen -dən MAC ünvanını alır, yaddaşda saxlayır.
  • FuncGen cihazı, Android cihazından seçilmiş WLAN parametrlərini alır: SSID, təhlükəsizlik növü və Şifrə və EEPROM -da saxlayır.

Cihazlar həqiqətən eyni WLAN -a qoşulduqda, Android cihazı WLAN -a qoşulmuş cihazların bütün MAC ünvanlarını skan edərək FuncGen -i axtaracaq. Android cihazı MAC uyğunluğunu təyin edərkən ünsiyyət qurmağa çalışır.

Bağlantı və Dövlət İdarəçiliyi - MCU

Cihazlar bir-biri ilə ünsiyyət quranda protokol (Baxın final mərhələsinə) eyni qalır və axın qrafiki eynidir.

Cihaz vəziyyəti monitorinqi

Zamanlı kəsmə, MCU -ya vəziyyətin idarə edilməsi üçün lazımi detalları təqdim edir. Taymerin kəsilməsinin hər dövrü, aşağıdakı parametrlərin siyahısı yenilənir:

  • Xarici enerji təchizatı - On/Off
  • Batareya gərginliyinin vəziyyəti
  • Hər bir fərdiləşdirmə üçün UI yeniləməsi
  • Düymə: Basıldı/Basılmadı

Addım 9: Proqram Tətbiqi - Android Tətbiqi

Proqram Tətbiqi - Android Tətbiqi
Proqram Tətbiqi - Android Tətbiqi
Proqram Tətbiqi - Android Tətbiqi
Proqram Tətbiqi - Android Tətbiqi
Proqram Tətbiqi - Android Tətbiqi
Proqram Tətbiqi - Android Tətbiqi
Proqram Tətbiqi - Android Tətbiqi
Proqram Tətbiqi - Android Tətbiqi

Android tətbiqi Java-Android üslubunda yazılmışdır. Alqoritmi ayrı kod bloklarına bölməklə əvvəlki addımlarla eyni şəkildə izah etməyə çalışacağam.

Güc Artırma Sırası

Cihazın ilk ardıcıllığı. Burada Android cihazının GPS və WiFi modullarını işə salmaqla birlikdə tətbiq loqotipi təqdim olunur (narahat olmayın, GPS yalnız WiFi şəbəkələrinin düzgün taranması üçün lazımdır).

Əsas menyu

Tətbiq açıldıqdan sonra ekranda dörd düymə görünəcək. Düymələrin hərəkəti:

  1. DOĞRU BAĞLANTI: IOT_FUNCGEN -in SSID -si ilə FuncGen -in AP -yə qoşulması başlanır. Bağlantı uğurlu olarsa, cihaz əsas UI rejiminə daxil olur.
  2. WIFI BAĞLANTISI: Cihaz yaddaşda saxlanılan məlumat parametrlərinin olub olmadığını yoxlayır: wifi.txt, mac.txt. Saxlanılan heç bir məlumat yoxdursa, cihaz istifadəçi istəyini rədd edəcək və əvvəlcə WLAN eşleşmesinin edilməli olduğu bir pop-up mesajı verəcəkdir.
  3. PARING: FuncGen ilə DIRECT CONNECTION ilə eyni şəkildə ünsiyyət qurmaq, ancaq davamlı mesaj mübadiləsi əvəzinə tək bir əl sıxışma var. Android cihazı artıq WiFi şəbəkəsinə qoşulduğunu yoxlayır və istifadəçidən parol daxil etməsini tələb edir. Yenidən bağlanma uğurlu olarsa, Android cihazı SSID və şifrəni wifi.txt faylında saxlayır. FuncGen ilə uğurlu ünsiyyətdən sonra alınan MAC ünvanını mac.txt faylında saxlayır.
  4. Çıx: kifayət qədər dedi:)

WiFi Tarama Meneceri

Tətbiqin tam işlək olmasını və tətbiqdənkənar düzəlişlər edilməməsini istədim. Beləliklə, məlum bir parol və SSID ilə WiFi şəbəkəsinə qoşulmaq üçün lazım olan bütün əməliyyatları yerinə yetirən WiFi Skanerini hazırladım.

Məlumat ötürülməsi və TCP Rabitəsi

Bu tətbiqdəki əsas kod blokudur. Bütün UI vahidləri üçün FuncGen-i kanallar üçün istədiyiniz çıxışı təmin etməyə məcbur edən müəyyən bir formatda müəyyən edilmiş bir mesaj var (Final mərhələsi). Fəaliyyətdə üç növ UI sahəsi var:

  1. Barları Arayın: Burada FuncGen çıxış parametrlərinin real aralığını təyin edirik

    1. Amplituda
    2. DC Ofset
    3. LCD Parlaqlığı
    4. LCD Kontrast
  2. Mətn Düzəlişi: Tam ədədləri yaxşı təyin etmək və dəqiq saxlamaq üçün tezlik girişi yalnız nömrələr vasitəsilə aparılır
  3. Düymələr: Mövcud siyahılardan parametrlərin seçilməsi:

    1. Dalğa forması növü

      1. Sinus
      2. Üçbucaq
      3. DC
      4. Meydan
      5. QAPALI
    2. Məlumat əldə etmək

      1. Batareya Vəziyyəti (Yüzdə)
      2. AC Vəziyyəti (Xarici Güc Təchizatı)
    3. Önyükləmə Seçimi (FuncGen MCU üçün)

      1. Zavod Ayarı
      2. Yenidən başlamaq
      3. Söndür
      4. Birbaşa - birbaşa qoşma rejimi ilə yenidən başladın
      5. WLAN - WLAN qoşma rejimi ilə yenidən başladın
    4. Əsas Menyudan Çıx: Yetər Dedim:)

Addım 10: Test

Tövsiyə: