Mündəricat:

Esp8266 Saat və Nəbz generatoru: 3 addım
Esp8266 Saat və Nəbz generatoru: 3 addım

Video: Esp8266 Saat və Nəbz generatoru: 3 addım

Video: Esp8266 Saat və Nəbz generatoru: 3 addım
Video: #3 Таймеры FLProg | ESP32 NodeMCU | Визуальное программирование для Arduino 2024, Noyabr
Anonim
Esp8266 Saat və Nəbz generatoru
Esp8266 Saat və Nəbz generatoru

Bu təlimat sadə bir sınaq avadanlığı üçündür; saat və nəbz generatoru.

Bir test saatı və ya nəbz ardıcıllığı yaratmaq üçün esp8266 -da i2S hardware interfeysindən istifadə edir. Əsas sistem üçün heç bir xüsusi aparata ehtiyac olmadığı üçün bir araya gəlməyi asanlaşdırır.

  • 2Hz -dən 20MHz -ə qədər saat istehsalı
  • İstənilən tezlik istifadə edilə bilər
  • 160MHz əsas saatdan ən yaxşı saat bölücüləri və bit uzunluğunu axtarır
  • Tipik olaraq, 100 kHz -dən az olan tezliklər üçün 0.1% -dən daha yaxşıdır
  • Boşluq nisbəti seçimini işarələyin
  • Məkanı daha yaxşı işlətmək üçün tezliyə uyğun gələn tolerantlıq rahatlaşdırıla bilər
  • Fayllardakı təriflərə əsaslanan nəbz qatarı istehsalı
  • PC, telefon, planşetdən idarə etməyə imkan verən veb əsaslı GUI
  • Wi -Fi İdarəçiliyi, marşrutlaşdırıcının asan qurulmasına imkan verir
  • OTA proqram yeniləməsi
  • Çevik nəzarət verən xüsusi bir I2s kitabxanasından (i2sTXcircular) istifadə edir

Addım 1: Avadanlıq

Avadanlıq
Avadanlıq
Avadanlıq
Avadanlıq

Mina qurğusunu, USB şarj cihazı, açma/söndürmə açarı, çıxış siqnalı üçün 3 pinli başlıq fişli 18650 batareyası olan 3d çaplı bir korpusda qurdum.

Korpusda elektronikanı batareyanın yanında saxlamaq üçün dar bir yuva var.

Siqnal GPIO3 pinindən (RX) çıxır. Bu birbaşa istifadə edilə bilər, lakin daha yüksək sürücü qabiliyyəti üçün 74LVC2G34 istifadə edərək kiçik bir tampon daxil etməyi seçdim. Daha çox sürücü qabiliyyəti təmin etmək üçün bu cihazdakı iki tamponu paralel etdim.

Hər şey yalnız cihazdakı proqramda aparılır və nəzarət bir veb server təmin etməklə həyata keçirilir ki, kompüterdə, telefonda və ya tabletdə bir brauzer tam nəzarəti təmin etsin.

Addım 2: Proqram təminatı

Proqramı qurmaq və qurmaq üçün https://github.com/roberttidey/espI2sClockGen ünvanındakı kodu istifadə edin.

  • İ2sTXcircular kitabxanasını quraşdırın (daxil edilir)
  • BaseSupport kitabxanasını quraşdırın (https://github.com/roberttidey/BaseSupport)
  • WifiManager kitabxanasını əlavə edin
  • BaseConfig.h -də parolları redaktə edin
  • Arduino mühitində tərtib edin və yükləyin
  • AP -ə qoşularaq 192.168.4.1 -ə göz ataraq wifi şəbəkə idarəçiliyini qurun
  • əsas qovluq fayllarını STA ip/upload istifadə edərək məlumat qovluğundan yükləyin
  • sonrakı yükləmələr ip/edit istifadə edərək edilə bilər - normal interfeys ip/

Bu necə işləyir

İ2sTXcircular kitabxanası, DMA istifadə edərək esp8266 -da i2S aparatı tərəfindən avtomatik olaraq çıxarılan dairəvi bir tampon zənciri qurmağa imkan verir ki, gedəndən sonra heç bir proqram yükü istifadə olunmasın.

Cihazdakı əsas saat 160 MHz -dir və bir cüt bölücü ilə bölünür. Çıxış siqnalı, bölünmüş aşağı saat tərəfindən çıxarılan tamponlara hansı məlumatların qoyulduğu ilə müəyyən edilir. Hər bir nəbzi təmsil etmək üçün iki bölücünü seçərək və potensial olaraq birdən çox məlumat bitindən istifadə edərək, bir tezliyi olduqca yaxından yaxınlaşdırmaq olar. Həm də vəzifə dövrünün (saat impulslarının işarəsi/boşluq nisbəti) dəyişməsinə imkan verir.

Brauzer javascript kodu, seçilmiş hər hansı bir tezliyə yaxın uyğunluq vermək üçün parametr seçimini optimallaşdırmağa çalışır.

Əsas məqsəd saatlar yaratmaq olsa da, daha sonra yaradılacaq və dairəvi tamponda yerləşdiriləcək məlumatları idarə edən bir pulse faylına bir tərif qoyaraq daha mürəkkəb pulse qatarlarını istehsal etmək mümkündür. Təfərrüatlar nümunə nəbz sənədlərindədir.

Addım 3: Əməliyyat

Əməliyyat əsas görüntüdə göstərilən brauzer interfeysi ilə idarə olunur.

Normal saat istehsalı üçün yalnız hədəf saatı və boşluq % nisbətini seçin. Əldə edilən həqiqi saat və səhv göstərilir. Saat Yarat düyməsinə basıldıqda parametrlər cihaza göndərilir və bu parametrlərdən istifadə edərək saat istehsalı başlayır.

Ətraflı çubuğa basaraq daha çox məlumat görə bilərsiniz.

Bit saatı, istifadə olunan 160MHz alt çoxluğunu göstərir.

İşarə və boşluq bitləri işarələri və boşluqları təmsil etmək üçün neçə bitin istifadə edildiyini göstərir.

Div1 və Div2, ən yaxın bit saatını yaratmaq üçün seçilmiş iki bölücünü göstərir.

Adətən iki bölücü, seçilmiş tezliyə ən yaxın uyğunluğu vermək və istifadə olunan məlumat bitlərinin sayını artırmaq üçün seçilir ki, bu da müxtəlif vəzifə dövrlərinə icazə verməkdə daha çox rahatlıq təmin edir. Bununla birlikdə, bəzən ən yaxşı uyğunluq, iş dövrünün dəyişdirilməsi üçün çox az yer buraxaraq az miqdarda nəticələnir. Dözümlülük % dəyərini dəyişdirərək bölücülər bu tolerantlıq daxilində bir tezlik vermək üçün seçiləcək, lakin potensial olaraq daha çox məlumat biti istifadə ediləcək. Məsələn, tolerantlığı 0,5 və ya 1 olaraq təyin edin.

Parametr seçiminə nəzarət etmək üçün söz sayına bitləri də təyin edə bilərsiniz. 0 (standart) hər söz üçün hər hansı bir bit seçmək deməkdir. Tək bir rəqəm (məsələn, 24) yalnız buna uyğun olan parametrləri seçmək deməkdir. Bir sıra da qoya bilərsiniz (məsələn, 24, 31). Bu, yalnız 10 KHz -dən yuxarı olan Hz hədəfi üçün işləyir, bu ölçünün altında qüvvəyə minəcək ki, say çoxalsın.

Tampon ölçüsü, 32 bit sözlə istifadə olunan ümumi tamponu göstərir. Bu, saat nəbzinin tampona mükəmməl bir dairəvi uyğunlaşmasını təmin etmək üçün seçilmişdir. Daxili olaraq bu tampon, zəncirlənmiş DMA -nın işləməsinə icazə vermək üçün bir neçə kiçik rbufferə bölünür.

Nəbzlərin işləməsi üçün TAB nəbzini seçin. Bu, mövcud nəbz fayllarını və hər birinin yanındakı bir düyməni göstərir ki, onun tərifinə əsasən nəbz qatarı istehsal edəcək. Faylın məzmununu linkini tıklayaraq görə bilərsiniz. Daha çox nəbz faylları ip/redaktə fayl tarayıcısı istifadə edərək yüklənə bilər. Nəbz adı ilə başlamalıdırlar.

Tövsiyə: