


Prosty generator PWM (Pulse-Width Modulation) zbudowany na mikrokontrolerze ATtiny25/45/85, zasilany stabilizowanym napięciem Vcc=2.7-5.5V (2.4-5.5V jeśli użyjemy ATtiny25V/45V/85V). Na jego wyjściu uzyskuje się sygnał prostokątny o wybranej, stałej częstotliwości 1.25/2.5/5/10/20/40/80 kHz oraz wypełnieniu regulowanym w zakresie 0-100%, z krokiem co 1%. Program sterujący napisałem w asemblerze i jest on identyczny dla każdego z wymienionych mikrokontrolerów.
Po włączeniu zasilania na wyjściu generatora (złącze CON2), uzyskuje się sygnał prostokątny o częstotliwości 10 kHz, wypełnieniu 50% i poziomie zależnym od wartości napięcia zasilania Vcc. Aby zmniejszyć/zwiększyć wypełnienie sygnału o 1%, należy krótko (poniżej 250ms) nacisnąć przycisk (mikrostyk) S1 (-)/S2 (+). Naciśnięcie i dłuższe przytrzymanie wciśniętego przycisku S1/S2, spowoduje ciągłe zmniejszanie/zwiększanie wartości wypełnienia z szybkością ok. 4%/s, aż do osiągnięcia wartości granicznej, czyli odpowiednio 0%/100%. Ustawienie wypełnienia o wartości 0%/100%, wymusi ciągły niski/wysoki stan logiczny (GND/Vcc) na wyjściu generatora.
Aby zmienić częstotliwość sygnału, należy krótko (poniżej 1s) nacisnąć jednocześnie obydwa przyciski S1 i S2. Wtedy częstotliwość zmieni wartość na następną w kolejności: 10/20/40/80/1.25/2.5/5 kHz i tak w kółko. Naciśnięcie i dłuższe przytrzymanie wciśniętych jednocześnie przycisków S1 i S2, spowoduje ciągłe zmienianie wartości częstotliwości z szybkością ok. 1x/s, aż do puszczenia przycisków. Po każdej zmianie częstotliwości, początkowa wartość wypełnienia sygnału wynosi zawsze 50% (niezależnie od wcześniejszego ustawienia).
Tranzystor T1 (MOSFET-P) zabezpiecza układ przed odwrotnym podłączeniem polaryzacji napięcia zasilania. Specjalnie został wybrany model Si2305, który zaczyna przewodzić już przy napięciu bramki Vgs=1.8V - ma to znaczenie, jeśli układ będzie zasilany niskim napięciem (np. 2.7V). Jako zamienników T1 można użyć, m.in. następujących tranzystorów: DMP1045, FDN306, Si2315, IRLML6401. W przypadku braku odpowiedniego tranzystora można zrezygnować z tego zabezpieczenia - wtedy trzeba zewrzeć pola lutownicze "D" i "S" w miejscu obudowy SOT-23.
Rezonator kwarcowy X1 taktuje pracę mikrokontrolera, dzięki czemu na wyjściu uzyskuje się sygnał o dość dokładnej i stabilnej częstotliwości. Istnieje też możliwość taktowania mikrokontrolera jego wewnętrznym oscylatorem RC, o nominalnej częstotliwości 8 MHz. Zaletą tego rozwiązania jest to, że nie trzeba wtedy montować rezonatora X1 i kondensatorów C3/C4, ale dużą wadą jest niedokładna i bardzo niestabilna częstotliwość sygnału wyjściowego. Kondensatory C1 i C2 filtrują napięcie zasilania. Rezystor R2 ogranicza prąd pobierany bezpośrednio z pinu PB1 mikrokontrolera - zapobiega jego uszkodzeniu w przypadku zwarcia wyjścia CON2.
Przy programowaniu, należy pamiętać o odpowiednim ustawieniu fuse/lock bitów:
1. Gdy mikrokontroler będzie taktowany rezonatorem kwarcowym X1:
FL (Fuse Low): $FF, FH (Fuse High): $DF, FE (Fuse Extended): $FF, LB (Lock Bits): $FF.
2. Gdy mikrokontroler będzie taktowany wewnętrznym oscylatorem RC:
FL (Fuse Low): $E2, FH (Fuse High): $DF, FE (Fuse Extended): $FF, LB (Lock Bits): $FF.
Generator można zasilać napięciem stałym Vcc=2.7(2.4)-5.5V z zasilacza lub z baterii/akumulatorów (np. z jednego ogniwa typu 18650). Pobór prądu przy napięciu Vcc=2.7/5V wynosi maksymalnie 2.5/5 mA (sygnał 80kHz/99%, wyjście generatora nie obciążone). Generator zmontowałem na płytce jednostronnej o wymiarach 40x40 mm, wykonanej metodą transferu chemicznego.
Dołączone archiwum zawiera: schemat w Eagle, płytkę w DipTrace, źródło, wsad oraz dokumentację w PDF. Strona projektu: Link.
Cool! Ranking DIY