Mikrokontroller şəkilində impuls generatoru. ATmega8-də impuls generatoru

Yaxşı gün!

Rəqəmlərin onaltılıq təsvirləri mötərizədə yazılır.

Nəhayət ki, növbəti yazımı yazmağa hazıram.
Bu gün nəbz generatoru yazmağa çalışacağam. Bəli, hər ayağın vəziyyətinin banal keçidi ilə yalnız alında deyil müəyyən vaxt, və "gözəl", yəni. fasilələr vasitəsilə. Biz kəsilmə mənbəyi kimi TMR0 taymerinin daşmasından istifadə edəcəyik.

Debrifinqə başlayırıq

İndi bu sirli taymerin nə olduğunu anlamağa çalışaq TMR0.

Və bu taymer sadəcə daxil olan impulsların sayını hesablayır. Üstəlik, impulsun mənbəyi ya hansısa xarici cihaz, ya da daxili generator ola bilər. Nəbz mənbəyinin seçilməsi registrdən bir bit tərəfindən həyata keçirilir OPTION_REG. Yəni beşinci bit, T0CS.


Onun sözünün kəsilməsi də anlaşılan görünür. Bir impuls gəldi, registrdəki dəyər artırıldı (bir artdı). Və s. taymer daşana qədər. Daşma nəzarətçinin tutumu ilə bağlıdır. Bizim kontroller artıq 8 bitdir. Və 8 bitdə nömrələri 0..255 daxil olmaqla (cəmi 256) diapazonunda saxlaya bilərsiniz. Bu o deməkdir ki, sayğac/taymer artıq 255 nömrəsini ehtiva etdikdə, nəzarətçi başqasını əlavə etməyə çalışacaq. Və burada hər cür möcüzələr başlayır. Sayğac registrindəki dəyər 0-a (0x00) bərabər olacaq və nəzarətçi bu kəsilmənin baş verməsi üçün bayrağı qaldırarkən fasilələri emal etməyə başlayacaq.

Deyəsən, bunu həll etmişik. İndi ondan impuls generatorunu necə düzəldə bilərik? Bəli, buxarda hazırlanmış şalgamdan daha asandır. Məsələ ondadır ki, siz TMR0 registrinə nömrə yaza bilərsiniz. Və sıfırdan deyil, bu nömrədən artırılacaq. Beləliklə, tələb olunan impuls müddətini etmək üçün TMR0 registrinə hansı nömrəni yerləşdirməli olduğumuzu seçmək (və ya hesablamaq) kifayətdir.

Burada bir blok diaqrama bənzər bir şey çəkməyə çalışdım, amma çox mürəkkəb bir proqramı yüklədim və onunla məşğul olmağa çox vaxtım olmadı. Baxmayaraq ki, mənim üçün olduqca başa düşüləndir. Baxaq:

Bloklar arasında oxların göstərilmədiyi yerdə, onlar bir-birinin ardınca gedirlər.
Kodun olduqca kiçik olduğu ortaya çıxdı, gəlin nəzər salaq. Mümkün qədər şərh edildi:

SİYAHI P=16F84A ; MK növünü təyin edin
#daxil edin p16F84A.inc ; başlığı birləşdirin
__CONFIG _CP_OFF ​​& _PWRTE_ON & _WDT_OFF & _HS_OSC ; MK konfiqurasiyası
;----
; Ümumi təyinatlı registrlər
;---
; Ancaq bizdə bunlar olmayacaq, deyəsən, batareya ilə kifayətlənəcəyik
;---
;Proqram
;---

ORG 0x00 ; əsas proqramın ünvanını göstərin
GOTO Əsas
;---
; Fasilələr və alt proqramlar
;---

ORG 0x04 ; kəsmə vektorunu təyin edin
XEYR ; kalibrləmə NOP
COMF PORTA ; bütün A portunun pinlərinin çevrilməsi
XEYR ; yenidən kalibrləmə NOP
MOVLW.152 ; 255-152=103 gecikməsini W ilə qoyuruq
MOVWF TMR0 ; TMR0-da biz gecikmə dəyərini qoyuruq
BCF INTCON,2 ; kəsmə bayrağını sıfırlayın
RETFIE ; əsasa qayıdırıq. proqram

;---
;Əsas döngə
;---
Əsas BSF STATUS,5 ; Gəlin birinci banka gedək
MOVLW.0 ; Batareyaya yerləşdirin 0
MOVWF TRISA ; Bütün A portunu çıxış kimi qeyd edirik
BCF OPTION_REG,5 ; TMR0 üçün daxili saat siqnalı
BCF STATUS,5 ; Gəlin sıfır banka gedək
BSF INTCON, GIE ; Fasilələri aktivləşdirin
BSF INTCON,5 ; TMR0 daşma kəsmələrini aktiv edin
CLRF PORTA ; Bütün A portunda məntiqi sıfır
MOVLW.152 ; Nömrəni akkumulyatora göndərin
MOVWF TMR0 ; 256-1-148=Daşmadan əvvəl 107 mt qalıb
Döngə ; Fasilə gözləyir
GOTO Döngüsü
SON


Əslində hamısı budur 🙂 və bu belə işləyir.

Klaviaturadan istifadə edərək tələb olunan tezlik dəyərinin təyin olunduğu ölçmə generatorları jurnalın oxucularına məlumdur (məsələn, Piskaev A. "Radio", 2002-ci il "Tezlik sayğac-generator-saat" məqaləsinə baxın. 7, səh. 31, 32). Bir qayda olaraq, bu qurğular mikrokontroller üzərində hazırlanır, yaradılan tezliklərin diapazonu bir neçə megahertzlə məhdudlaşır və dəqiq tezlik dəyərini əldə etmək mümkün deyil. Məqalədə təsvir edilən generatorda mikrokontroller də var, lakin o, yalnız xüsusi mikrosxemi idarə etmək üçün istifadə olunur - AD9850 tezlik sintezatoru. Bu mikrosxemin istifadəsi yaradılan tezliklərin diapazonunu herts fraksiyalarından 60 MHz-ə qədər genişləndirməyə imkan verdi, bunun çərçivəsində 1 Hz dəqiqliklə istənilən tezlik dəyərini əldə etmək mümkündür.

Təklif olunan generator, quraşdırılmış komparatoru olan tam DDS (Birbaşa Rəqəmsal Sintez) tezlik sintezatoru olan Analog Devices şirkətinin AD9850 çipinə əsaslanır. Belə sintezatorlar öz dəqiqliyinə görə unikaldır və praktiki olaraq temperatur sürüşməsinə və qocalmağa məruz qalmır (analoq qurğular üçün qeyri-sabitlik xarakteristikasına malik olan yeganə element rəqəmsal-analoq çeviricidir). Yüksək təşəkkürlər texniki spesifikasiyalar DDS sintezatorları Son vaxtlar adi analoq tezlik sintezatorlarını əvəz edir. Onların əsas üstünlüyü çox böyükdür yüksək qətnamə nəzarət olunan tezlik və faza ilə rəqəmsal forma. Rəqəmsal interfeys mikro-nəzarətçi nəzarətinin asan həyata keçirilməsinə imkan verir. Daha çoxu ilə Ətraflı Təsviri Birbaşa rəqəmsal tezlik sintezinin prinsipləri, məsələn, burada tapıla bilər.

Şəkil 1

AD9850 sintezatorunun blok diaqramı Şəkildə göstərilmişdir. 1. Onun əsasını çıxış siqnalının ani faza kodunu təşkil edən faza akkumulyatoru təşkil edir. Bu kod rəqəmsal dəyərə çevrilir sinus dalğası, bir DAC köməyi ilə analoqa çevrilir və süzülür. Komparator düzbucaqlı çıxış siqnalını əldə etməyə imkan verir. Onun tezliyi fut (herslə) f out = A fin /232 düsturu ilə müəyyən edilir, burada f m takt tezliyidir, Hz; A 32 bitlik tezlik kodu dəyəridir. f ^ maksimum dəyəri yarıdan çox ola bilməz saat tezliyi.

Əsas texniki xüsusiyyətlər AD 9850 (5V təchizatı gərginliyində)

Saat generator tezliyi 1…125

Maksimum cərəyan istehlakı (at f =125 MHz), mA 95

DAC bitlərinin sayı 10

Maksimum DAC çıxış cərəyanı (at R dəsti =3,9 kOhm), mA 10,24

DAC-nin maksimum inteqral qeyri-xəttiliyi, MZR 1

Müqayisəli çıxış gərginliyi, V:

minimum yüksək səviyyə 4,8

maksimum aşağı səviyyə 0.4

Məlumatları yükləmək üçün AD9850 çipi paralel və serial interfeysləri təmin edir. Sonuncu halda, məlumat (40 bitlik söz) onun D7 girişi vasitəsilə daxil edilir. Hər bir məlumat biti W_CLK saat girişində müsbət polarite impulsu ilə müşayiət olunur. FQJJD girişində müsbət polarite impulsu ilə nəzarət sözünü yüklədikdən sonra generasiya parametrləri yeniləri ilə əvəz olunur. Nəzarət sözünün bitlərinin təyini Cədvəldə verilmişdir. 1.

Sxematik diaqram generator Şəkildə göstərilmişdir. 2. Sintezatoru idarə edirDD2 mikro nəzarətçi DD1.



Şəkil 2

O, SB1—SB16 klaviaturasını yoxlayır, HG1 LCD indikatorunda məlumatları göstərir, tezlik kodunun dəyərini hesablayır və onu vasitəsilə ötürür. serial interfeys DD2 sintezatoruna daxil edin. Səs emitenti HA1 klaviatura düymələrinin basılmasını təsdiq etməyə xidmət edir. AD9850 (DD2) çipi istifadə olunur standart daxiletmə. Z1 filtri DAC çıxışında işə salınır. Süzgəcdən sonra XW2 yuvasına və DD2 çipinin müqayisəedicisinin girişinə (pin 16) sinusoidal siqnal verilir. Sonuncunun çıxışından XW1 rozetkasına düzbucaqlı siqnal verilir. G1 kvars osilatoru DDS üçün saat generatoru kimi istifadə olunur. Trimmer rezistoru R7 HG1 indikatorunda təsvirin kontrastını tənzimləyir.

Mikrokontrolleri sıfırladıqdan sonra HG1 LCD göstəricisi 4 bitlik avtobus mübadiləsi rejimi üçün konfiqurasiya edilir ki, bu da məlumatların yazılması üçün tələb olunan giriş/çıxış xətlərinin sayını azaltmaq üçün lazımdır.

Generator SB1-SB16 düymələrindən ibarət klaviatura vasitəsilə idarə olunur. Bütün B portunun giriş xətləri rezistorlar vasitəsilə enerji təchizatına qoşulduğundan, RB4 - RB7 portlarını elektrik xəttinə çəkmək üçün xarici rezistorlara ehtiyac yoxdur. R3-R6 rezistorları eyni anda bir neçə düyməni təsadüfən basdıqda mikrokontrolörün çıxışlarını həddindən artıq yüklənmədən qoruyur.
Tələb olunan tezlik klaviaturadan təyin edilir. Bunu etmək üçün müvafiq nömrələri olan düymələri vurun, istədiyiniz dəyəri daxil edin (herts ilə) və "*" düyməsini basın. Tezlik icazə verilən maksimum həddi keçmirsə, qısa müddət ərzində göstəricidə “OK” mesajı görünür və generator iş rejiminə keçir, onu keçdikdə isə “Xəta” mesajı görünür. Bu halda, "C" ("Sıfırla") düyməsini basmalı və düzgün dəyəri yenidən daxil etməlisiniz. Tezliyin daxil edilməsi prosesində xəta olarsa, onlar eyni şeyi edirlər. Bu düyməni iki dəfə basmaq cihazı əvvəlcədən təyin olunmuş tezlik dəyəri ilə iş rejiminə keçir.

Bit sayı

Məqsəd

Bit 0 tezlik kodu

Bit 1 tezlik kodu

……..

…………

Bit 31 tezlik kodu

Nəzarət biti (0 olmalıdır)

Güc idarəetmə biti (0-da aktiv, 1-də sönür)

Bit 0 faza kodu

Bit 1 faza kodu

……….

…………….

Bit 4 faza kodu

İş rejimində ulduz işarəsi göstəricinin ən sağ hissəsində yanıb-sönür. Cari tezlik dəyəri xarici idarəetmə blokundan (məsələn, kompüterdən) daxil edilirsə, göstəricidə göstərilən tezliyə qayıtmaq üçün sadəcə "*" düyməsini sıxmaq kifayətdir.
"U" (Yuxarı - yuxarı) və "D" (Aşağı - aşağı) düymələri addım-addım dəyişməyə imkan verir. çıxış tezliyi generator, müvafiq olaraq ondalık yerini bir artıran və ya azaltan. Tələb olunan onluq yer kursoru "L" (Sol - sol) və "R" (Sağ - sağ) düymələri ilə hərəkət etdirməklə seçilir.
"*" düyməsini basdığınız zaman tezlik dəyəri və kursorun mövqeyi mikrokontrolörün qeyri-sabit yaddaşında saxlanılır, beləliklə növbəti dəfə enerji yandırıldıqda kəsilmiş iş rejimi avtomatik bərpa olunur.

Mikrokontrolörün hesablama imkanları məhdud olduğundan, çıxış tezliyi təxminən 1 Hz dəqiqliklə təyin olunur ki, bu da əksər hallarda kifayətdir. Sintezatorun imkanlarını tam şəkildə həyata keçirmək üçün onu PC vasitəsilə idarə etmək olar. Bunu etmək üçün, diaqramı Şəkildə göstərilən bir vahid əlavə edərək generator dəyişdirilməlidir. 3. PC (və ya digər idarəetmə cihazı) çıxışa qoşulub
XS1. A ünvan girişlərində məntiqi səviyyə aşağı olduqda, DD3 çipinin multipleksorları sintezatorun idarəetmə girişlərini DD1 mikrokontrollerinə, məntiq səviyyəsi yüksək olduqda isə xarici cihaz. Nəzarət siqnalları XS1 rozetkasının "ENABLE" kontaktı vasitəsilə verilir. Rezistor R19 idarəetmə cihazı qoşulmadıqda DD3 ünvan girişlərində aşağı məntiq səviyyəsini təmin edir.
Generator yığılır və çörək lövhəsində sınaqdan keçirilir. DD2 çipi üçün SSOP korpusu üçün lövhə ala bilmirsinizsə, onun sancaqlarını müvafiq çipə qoşmaq üçün istifadə edə bilərsiniz. əlaqə yastıqları qısa (10-15 mm uzunluğunda) diametri 0,2 mm olan konservləşdirilmiş tel parçaları. 1,2,5,10,19, 24, 26, 27, 28 sancaqlar daha uzun bir seqmentlə ümumi naqillə birləşdirilir.
LCD göstərici HG1 - 1TM1601 (quraşdırılmış nəzarətçi ilə 16 simvollu tək xətt). HA1, 5 V gərginlik üçün nəzərdə tutulmuş daxili generatoru olan hər hansı bir piezoelektrik səs emitentidir. Saat generatoru (G1) olaraq, 125 MHz-ə qədər tezliyə malik bir kvars osilatorunun mikro montajından istifadə edə bilərsiniz; kvars stabilizasiyası ilə və diskret elementlərdə oxşar vahiddən istifadə etmək.
Mikrokontrolörün idarəetmə proqramı saat generatorunun tezliyindən asılıdır.
Mikrokontrolleri proqramlaşdırarkən, konfiqurasiya sözündə aşağıdakı bit dəyərləri təyin olunur: generator növü (OSC) - RC. Gözətçi taymeri (WDT) - söndürüldü, işə salınma gecikməsi (PWRTE) - aktivdir.

ƏDƏBİYYAT
1. Ridico L. DDS: birbaşa rəqəmsal tezlik sintezi - Komponentlər və texnologiyalar. 2001.№ 7. səh. 50-54.
2. AD9650, Tam DDS Sintezatoru - http://www-analog.com

Bir zamanlar [L.1]-də ATTiny2313 mikrokontrollerində idarə olunan TTL səviyyəli kvadrat dalğa generatoru təsvir edilmişdir. O, 31 sabit tezlik yarada bilirdi (0,1 Hz-dən 4 MHz-ə qədər), çox güclü idi. sadə diaqram və idarəetmə girişlərinə ikili kodun verilməsi ilə idarə olunurdu. Beş nəzarət bitində məntiqi səviyyədən asılı olaraq, generator öz proqramında əvvəlcədən təyin edilmiş tezliklərdən birini yaratdı, onların sayı bu idarəetmə girişlərini yerə və ya güc avtobusuna birləşdirərək təyin edildi. Böyük ehtimalla, bu sxem kimi yaradılmamışdır müstəqil cihaz, lakin ayrılmaz bir hissəsi kimi, digər inkişaflarda istifadə üçün bir modul (məsələn, tezlik sayğaclarında, saatlarda master osilator kimi, Milad ağacı çələngləri s.) - deməli, zahirən, tamamilə yox rahat yol nəzarət - sxemin müəllifi tezliyin dizayn mərhələsində bir dəfə təyin ediləcəyini güman etməlidir bitmiş cihaz, onun dövrəsini əhatə edəcək.

Sadə bir laboratoriya generatoru kimi bu sxemlə maraqlandım. Əlbəttə ki, bu, ciddi sənaye cihazlarına alternativ deyil, lakin bəzi yerlərdə belə bir "mikronəzarətçi multivibrator" faydalı ola bilər (xüsusilə onun sadəliyi, dəqiqliyi və aşağı qiyməti nəzərə alınmaqla) - məsələn, tezlik sayğaclarının kalibrlənməsi üçün mükəmməldir. müəyyən miqyasda tənzimləmə zəruri olduqda oxşar hallar; rəqəmsal sxemlər və ya kommutasiya enerji təchizatının çıxış mərhələləri ilə təcrübələr zamanı istifadə edilə bilər; transformatorların və alovlanma bobinlərinin sınaqdan keçirilməsi üçün (müvafiq tranzistor açarı vasitəsilə güclü cərəyan mənbəyinə qoşmaqla), müxtəlif filtrlər və s. Bəli və quraşdırma səhvləri halında, sevimli MP-3 pleyerindən və ya "planşetdən" deyil, belə bir evdə hazırlanmış generatordan daxil olan bir siqnal tətbiq etməklə yeni yığılmış ULF-nin düzgün işlədiyinə əmin olmaq daha təhlükəsizdir. məsələn, təchizatı gərginliyi ULF girişinə sızarsa ), V Ən pis halda bahalı "oyuncaq" deyil, ucuz çıxış tranzistoru məhv ediləcək.

Ancaq təsvir edilən sxemin laboratoriya cihazı kimi istifadəsini çətinləşdirən bir sıra çatışmazlıqları var idi: birincisi, nəzarətin artıq qeyd olunan narahatlığı (bu vəziyyətdə düymələr daha uyğun olardı); ikincisi, seçilmiş rejimin heç bir göstəricisinin olmaması; üçüncüsü, transformatorlar və ya şəbəkə filtrləri ilə işləyərkən bəzən lazım olan çıxış tezlikləri arasında şəbəkə tezliyinin (50 Hz) olmaması; və dördüncü - tənzimlənməmiş çıxış gərginliyi səviyyəsi (bəzən eyni ULF-ni sınaqdan keçirərkən zəruridir). Buna görə də, [L.1]-də verilmiş diaqramdan “texniki spesifikasiya” kimi istifadə edərək, yuxarıda göstərilən tələblərə cavab verən yeni cihaz və onun üçün “proshivka” hazırladım. Nəticə diaqramda göstərilir Şəkil 1 .

Orijinalda olduğu kimi, bu, 1:1 dövrü ilə sabit tezlikli kvadrat dalğalar yaradan generatordur (yəni, 50% doldurulma ilə kvadrat dalğa), lakin yaradılan tezliklərin sayı 42-ə qədər artırılıb. yaradılan tezliklərin əksəriyyəti [L.1]-də olanlardan fərqlənir; əlavə olaraq, ehtiyac olduqca nadir hallarda yaranan 1 Hz-dən az tezliklərin sayı azaldıldı. Cihaz tərəfindən yaradılan bütün tezliklərin siyahısı verilmişdir cədvəl 1 (məqalənin sonunda).

Dövrənin əsasını geniş yayılmış ATTiny2313 mikrokontrolleri təşkil edir, onun takt tezliyi kvarsla 10 MHz-də sabitləşir və bu, minimum çıxış siqnalı xətasını təmin edir. Çıxış impulsları "təsadüfdə sıfırlama" rejimində işləyən 16 bitlik daxili sayğac T1 istifadə edərək MC saat tezliyini bölmək yolu ilə yaradılır, onlar mikrosxemin 15-ci pininə verilir. Daxili 8 bitlik taymer sayğacı T0, eyni zamanda "təsadüfdə sıfırlama" rejimində işləyir, HG1 indikatorunun rəqəmlərini dəyişdirmək üçün intervallar təşkil edir və bununla da dinamik göstəricini həyata keçirir. Dinamik göstərici çıxışları MK-nin PB0 və PB1 xətləridir, onlar VT1 və VT2-də tranzistor açarları ilə gücləndirilir.

15 MK pinindən yaranan çıxış siqnalı emitter izləyicisi dövrəsinə uyğun olaraq qoşulmuş VT3 tranzistorunda yığılmış cərəyan gücləndiricisinə verilir. Gücləndirmə mərhələsinin istifadəsi MC çıxışını yükdən ayırmağa və onu gözlənilməz hadisələrdən (məsələn, qısaqapanmadan və ya cihazın çıxışına gərginlik tətbiq etməkdən) qorumağa imkan verdi. Dəyişən rezistor R12 istifadə edərək, çıxış siqnalının səviyyəsini tənzimləyə bilərsiniz - sıfırdan demək olar ki, təchizatı gərginliyinə qədər. Rezistor R13 tranzistordan keçən cərəyanı məhdudlaşdırır təhlükəsiz səviyyə(təxminən 125 mA), yükün qısa qapanması zamanı sonuncunu uğursuzluqdan qoruyur. Rezistor R14 çıxışı torpaq potensialına "çəkir" - bu, ilk növbədə, rəqəmsal məntiqlə işləmək üçün lazımdır: məlumdur ki, onun girişində hər hansı bir gərginliyin olmaması (və 15 MK pinində log.0 ilə, tranzistor ilə) VT3 bağlıdır və emitentində gərginlik yoxdur) əksər rəqəmsal mikrosxemlər onu məntiq 1 kimi şərh edir. Rezistor R14, VT3 bağlandığı anlarda cihazın çıxışını yerə "çəkir", bu çıxışa qoşulanlar tərəfindən inamla tanınır. rəqəmsal çiplər log kimi.0. Cihaz S1 düyməsi ilə çıxış siqnalını söndürmək imkanına malikdir. Bu vəziyyətdə, pin 15-də heç bir impuls yoxdur, tranzistor VT3 bağlıdır və log 0 həmişə cihazın çıxışında mövcuddur. S1 düyməsini yenidən basmaq çıxış siqnalını işə salır. LED HL1 çıxış impulslarının mövcudluğunun göstəricisidir.

Cihaz 3,5-5 V gərginlikli stabilləşdirilmiş enerji mənbəyindən qidalanır. Cihazı gərginliyi 5 V-dan çox olan mənbədən (məsələn, Krona və ya elektrik təchizatından) qidalandırmaq lazımdırsa. Oyun konsolu), sonra dövrəyə müvafiq çıxış gərginliyi olan bir stabilizator daxil etmək lazımdır - məsələn, 7805 tipli mikrosxemdə inteqrasiya olunmuş və ya parametrik bir zener diodunda və tranzistorda. Diode VD1 dövrəni enerji təchizatının təsadüfən dəyişdirilməsindən qoruyur - bu, ən azı 150 mA cərəyanla hər hansı bir şey ola bilər (şəxsən bunun üçün köhnə ehtiyatlardan "nadir" D226 və ya D7 istifadə edirəm - onları bir yerə qoymalısan : )). Güc konnektorunun dizaynı polaritenin dəyişməsinin qarşısını alırsa (və ya enerjini birləşdirərkən səhv etməyəcəyinə əminsinizsə) diod quraşdırmaq lazım deyil. İsterseniz, güc açarı da əlavə edə bilərsiniz.

Cihazla işləmə alqoritmi aşağıdakı kimidir: güc açıldıqda, MK-nin 15-ci pinində impulslar yoxdur, HL1 LED-i yanmır və HG1 ekranında seçilmiş rejimin nömrəsi göstərilir. . Cihazın çıxışında impulsların görünməsi üçün S1 düyməsini basmalısınız, bundan sonra MK-nin 15-ci pinində impulsların görünüşünü bildirən HL1 yanacaq. S1-ə yenidən basmaq çıxış siqnalını yenidən söndürəcək (yəni S1 tetikleyici kimi işləyir). S1 düyməsi ilə həm çıxış siqnalı yandırıldıqda, həm də söndürüldükdə cihazın iş rejimlərini dəyişə bilərsiniz. Düymə S2 artır və S3 rejim nömrəsini azaldır. Rejimlər bir dairədə dəyişdirilir - 42 nömrəli rejimdən sonra (5 MHz) OF rejimi gəlir (çıxış siqnalı yoxdur); S2-yə başqa bir basma №1 rejimi (0,5 Hz) işə salacaq. Düymə S3 eyni şəkildə davranır, yalnız əks istiqamətə keçir (No 1-OF-No. 42). Seçilmiş rejimin dəyəri qeyri-uçucu yaddaşda (EEPROM) saxlanılır, ona görə də cihazı növbəti dəfə yandırdığınız zaman enerjini söndürməzdən əvvəl cihazın işlədiyi rejim aktiv olacaq. Çıxış vəziyyəti xatırlanmır - hər dəfə güc açıldıqda çıxış siqnalı həmişə yoxdur - bu, generatora qoşulacaq dövrəni hər cür qəzalardan qorumaq üçün edilir: əvvəlcə tələb olunan rejimi təyin etməlisiniz. və minimum çıxış gərginliyi, və yalnız bundan sonra S1 düyməsi ilə çıxış siqnalını yandırın.

MK üçün proqram təminatı təmiz assemblerdə yazılmışdır (sərbəst paylanmış proqramdan istifadə etməklə AVR mühiti Bu çipin istehsalçısından Studio-4), bunun sayəsində fləş yaddaşında cəmi 602 bayt yer tutur. PonyProg proqramında qoruyucu hüceyrələrin quraşdırılması göstərilir Şəkil 2 . (Diqqət! Serial proqramlaşdırma istifadə olunursa, bitlərə toxunmayınSPIENRSTDISBL - onlar yenisi ilə eyni olmalıdırMK - əks halda, MK-nın sonrakı yenidən proqramlaşdırılması mümkün olmayacaq! Sadəcə proqramlaşdırmadan əvvəl düşününqoruyucu- "təzə" MK hüceyrələri (Təhlükəsizlik Konfiqurasiya Bitlər -> Oxuyun) və yeni dəyərlər yazarkən bitləri buraxınSPIENRSTDISBLoxuduqları kimi.)


Cihazda istifadə olunan rezistorlar kiçik ölçülüdür, gücü 0,125 Vt (R13 istisna olmaqla - 0,25 Vt); onların müqaviməti kifayət qədər geniş diapazonda göstəriləndən fərqlənə bilər. Cihazın bütün tranzistorları kommutasiya rejimində işləyir, buna görə də istənilən aşağı güclü NPN strukturunda ola bilər - həm yerli, həm də xarici. Yalnız VT3-ün cihazın maksimum çıxış tezliyində (5 MHz) inamla işləyə bilməsi vacibdir. İstənilən əkiz HG1 kimi istifadə edilə bilər yeddi seqment göstəricisiümumi anodlarla dinamik göstərici üçün. İkili yoxdursa, HG1 "qədim" ALSxxx-ə qədər iki tək göstərici üzərində yığıla bilər - əsas odur ki, bütün seqmentlər üçün ümumi terminal anoddur. LED HL1 - zəhmət olmasa hər hansı :). Bütün düymələr yaylı, fiksasiya olmadan. Çıxış birləşdiricisi "Asiya" tiplidir.

Osiloskopa qoşulmuş generatorun görünüşü göstərilir Şəkil 3 (solda enerji təchizatı var, 9V (Dendy tipli pristavkadan), lakin onun vəziyyətində 7805 tipli inteqrasiya olunmuş stabilizator quraşdırılmışdır - nəticədə çıxış 5V-dir), həmçinin Şəkil 4 , S1-19B osiloskopundan istifadə edərək qəbul edilmiş çıxış siqnalının oscilloqramı - açıq Şəkil 5 . Mən cihazın “içini” çəkməmişəm, çünki... Mən onu kifayət qədər uzun müddət əvvəl yığdım və qapağı yapışqanla bağladım, amma korpusu sökmək (yəni sındırmaq) istəmirəm ... Bu generator üçün korpus kimi açıq elektrik naqilləri üçün qovşaq qutusu istifadə edilmişdir, lakin başqa variantlar mümkündür. İstismar rahatlığı üçün rejimlər cədvəlini çap edib cihazın gövdəsinə ikitərəfli lentlə yapışdırmaq məsləhətdir (mənim arxa tərəfdə var, fotoda görünmür). Mikrokontroller rozetkaya quraşdırılmalıdır ki, o, "mikroproqram" yazmaq üçün proqramçıya asanlıqla ötürülə bilsin (mən adətən dövrədə ISP proqramlaşdırması üçün bağlayıcılar etmirəm - mikrosxemi proqramçı yuvasına köçürmək şəxsən mənə səbəb olmur. hər hansı bir narahatlıq). Quraşdırma növü istənilən ola bilər (SMD-ə qədər); Klassikdən istifadə etdim - çap, amma lövhənin rəsmini vermirəm, çünki... olduqca "əyri" olduğu ortaya çıxdı (praktik olaraq dövrə diaqramını təkrarlayır); yaxşı bir seçim, hər şeyi deşikli (ölçüsü ~ 80x80 mm) "çörək taxtasına" yığmaqdır.

Ədəbiyyat:

1. Qorçuk N.V.- Rəqəmsal idarəetmə ilə generator, zh "Radiokonstruktor", 12-2009, s.

Cədvəl 1:

GENERATÖR REJİMLƏRİNİN SİYAHISI

tezlik Hz

tezlik Hz

tezlik Hz

tezlik Hz

Təklif olunan cihaz kompüterdən ardıcıl port vasitəsilə idarə olunan düzbucaqlı impuls generatorudur. Konkret bir problemi sözün əsl mənasında bir gündə həll etmək üçün hazırlanmışdır və səhvlər və ya çatışmazlıqlar ola bilər, onu satmaqla çox pul qazanacağınıza zəmanət verə bilmərəm. Lakin bütün əsas funksiyalar sınaqdan keçirilib.
Generator tərəfindən istehsal olunan maksimum tezlik 13 kHz-dən bir qədər çoxdur, minimum 0,01 Hz-dən azdır (4 MHz kvars osilator tezliyi üçün).

Sxem.

Sxem olduqca sadədir. O, PIC16C63A mikrokontrolleri əsasında yığılır, siqnal onun iki pinindən alınır, onların vəziyyəti həmişə fərqli olur. Yük olmadan, bir səviyyə təchizatı gərginliyindən 0,1 voltdan az fərqlənir, sıfır səviyyəsi də çox aşağıdır. Sancaqlar 30 mA-a qədər cərəyanlar üçün nəzərdə tutulmuşdur. MAX232 çipi RS232 interfeys səviyyələrini TTL səviyyələrinə çevirmək üçün istifadə olunur. Cihazı gücləndirmək üçün 5 volt enerji təchizatı lazımdır, bu şəkildə göstərilmir.

Proqram.

Mikrokontroller tərəfindən verilən siqnalın parametrlərini təyin etmək üçün istifadə etməlisiniz xüsusi proqram. Proqram Windows OS üçün yazılmışdır, aşağıda onun pəncərəsinin görünüşü verilmişdir.

İdarəetmə vasitələri çıxış siqnalının tezliyini, müsbət və mənfi yarım dövrlərin uzunluqlarının nisbətini təyin etmək üçün nəzərdə tutulmuşdur. Buraxılan impulsların sayını məhdudlaşdırmaq mümkündür (1...2 23 -1). Mikrokontrollerdəki proqram heç bir tezliyi çıxarmağa imkan vermədiyi üçün “Göndər” düyməsini basdıqdan sonra mümkün olan ən yaxın tezlik dəyəri hesablanacaq və klaviaturadan daxil edilənin əvəzinə tezlik sahəsinə yazılacaq. "Duration 1" və "Duration 0" sahələri proqramın PIC-də işlədiyi ixtiyari vahidlərdə siqnalın müddətini ehtiva edir, bunlar sıfırdan böyük və 2 24-dən kiçik tam ədədlərdir. İstifadə olunan kvars rezonatorunun seriya port nömrəsini və tezliyini seçmək üçün parametrlər verilir.

Mənbə: sv.on.ufanet.ru


Bu diaqrama da tez-tez baxılır:

Bu layihə, dövrənin bəzi mürəkkəbliyinə baxmayaraq, ən azı daha sadələri ilə müqayisədə çox geniş funksionallığa malik olan yüksək keyfiyyətli və universal bir funksiya generatorudur ki, bu da onun yığılmasının dəyərini əsaslandırır. 9 müxtəlif dalğa forması istehsal etmək qabiliyyətinə malikdir və həmçinin nəbz sinxronizasiyası ilə işləyir.

MK-da generatorun sxematik diaqramı

Cihaz parametrləri

  • Tezlik diapazonu: 10 Hz - 60 kHz
  • 3 müxtəlif addımda rəqəmsal tezlik tənzimlənməsi
  • Dalğa formaları: Sinus, Üçbucaq, Kvadrat, Saw, H-nəbz, L-nəbz, Partlayış, Süpürmə, Səs-küy
  • Çıxış diapazonu: sinus və üçbucaq üçün 15V, digər rejimlər üçün 0-5V
  • Pulse sinxronizasiyası üçün çıxış var

Cihaz kifayət qədər yüksək (18 V-dan çox) gərginlik təmin edən 12 volt AC ilə təchiz edilmişdir. birbaşa cərəyan, bipolyar 15 V təşkil edən 78L15 və 79L15-in normal işləməsi üçün zəruridir. Bu, LF353 çipinin 1 kOhm yükə bütün siqnal diapazonunu çıxara bilməsi üçün edilir.

Səviyyə nəzarətçisi ALPS SRBM1L0800 istifadə etdi. Dövrə ±1% dözümlülük və ya daha yaxşı olan rezistorlardan istifadə etməlidir. LED cərəyan məhdudlaşdırıcıları - 4306R seriyalı rezistorlar. İfaçının seçimindən asılı olaraq parlaqlıq artırıla bilər. Generator 178x154x36 mm ölçüdə, alüminium ön və arxa panelləri olan plastik qutuda yığılmışdır.

Bir çox əlaqə komponentləri ön və üzərində quraşdırılmışdır arxa panellər(düymələr, düymələr, RCA konnektorları, LED birləşmələri, güc konnektoru). Çap dövrə lövhələri korpusa plastik aralayıcılarla boltlar ilə bərkidilir. Generatorun bütün digər elementləri quraşdırılmışdır çap dövrə lövhələri- ayrı-ayrılıqda enerji təchizatı. Sol düymə rejimi dəyişdirmək üçün ortada, sağda - rejim tezliyini seçmək üçün.

Generator müxtəlif siqnallar istehsal edir və "Seç" düyməsini istifadə edərək seçilən və üç yuxarı (diaqramda) LED ilə göstərilən üç rejimdə işləyir. Fırlanan idarəetmə siqnal parametrlərini aşağıdakı cədvələ uyğun olaraq dəyişir:

1 rejimində qurulduqdan dərhal sonra sinus generasiyası baş verir. Bununla belə, başlanğıc tezliyi olduqca aşağıdır və onu artırmaq üçün kodlayıcıya ən azı bir klik lazımdır. Lövhədə cihazı proqramlaşdırma üçün birləşdirmək üçün kontakt var ki, bu da lazım olduqda siqnal generatorunun funksionallığını tez bir zamanda dəyişdirməyə imkan verir. Bütün layihə faylları - PIC16F870 proqram təminatı, lövhənin təsvirləri yerləşir


Kateqoriyalar