Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 18 gru 2024, o 23:00


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 14 lip 2022, o 00:27 
Offline
Nowy

Dołączył(a): 12 lut 2017
Posty: 24
Lokalizacja: Warszawa
Pomógł: 0

Tym razem projekt który robiłem dla jednego z małych forów dla elektroników skupionych wokół pewnego youtubera, celowo piszę takimi ogólnikami bo nasze drogi się rozeszły w dość nieprzyjemny sposób.

Opis projektu
Więc projekt polegał na opracowaniu radia krótkofalarskiego lampowego, ale z powiewem nowoczesności tzn. generatorami dla pierwszej i drugiej przemiany częstotliwości miał być układ SI5351 (potrójny generator sterowany I2C). Na początku padł pomysł sterowania tego generatora z gotowego programu napisanego na Arduino, szybko jednak okazało się, że nie spełnia on za bardzo oczekiwań i należy go trochę przerobić, do głównych wad należało m.in. to, że większość parametrów pracy generatora była ustawiana jako stałe w kodzie programu i niezmienna w czasie, program też niczego nie zapamiętywał.
Do rywalizacji w szranki stanęliśmy we dwóch, ja w C, drugi z kolegów w BASCOMie, założenia początkowe były proste, możliwość ustawienia i zapamiętania dowolnej częstotliwości pośredniej pierwszej przemiany VFO, odpowiedni zakres odstrojenia drugiej przemiany BFO, sterowanie opóźnionym załączeniem napięcia anodowego lamp, zapamiętanie ostatnio nastawionej częstotliwości odbioru. Z czasem projekt się rozrastał i została dodany układ automatycznego przełączania filtrów wejściowych, wskaźnik wysterowania/poziomu sygnału, sterowanie z pilota RC5, a ostatnią funkcją było dodanie nadawania.
W sumie projekt mimo wykonania 10 szt. płytek sterownika został zmontowany tylko przeze mnie jako egzemplarz testowy bez całego radia oraz przez jednego z kolegów, reszta forumowiczów z czasem jakoś straciła zainteresowanie projektem po początkowej euforii - tzw. słomiany zapał.

Sterowanie układu odbywało się z gotowego kupnego modułu KEY & LED zawierającego 8 diod świecących, 8 klawiszy oraz wyświetlacz led 8 segmentowy zbudowany na bazie układu TM1638, klawisze zawarte w tym układzie służyły do wyboru odpowiednich funkcji systemu, dodatkowo jako element regulacyjny do zmiany parametrów służył encoder pełno-okresowy 24 krokowy, a dodatkowo w systemie na czas strojenia (dokładniejsze opisy na wyświetlaczu) można było podłączyć wyświetlacz 2x16 sterowany w trybie 4bitowy, wskaźnik wysterowania zrobiony był na wyświetlaczu OLED 0.96" I2C, a selektorem wyjść przełącznika filtrów był multiplekser. Nie ustrzegłem się od małego błędu na płytce więc w zestawie trzeba było ciąć ścieżki i robić zworki ale nie były widoczne i schowane pod wyświetlaczem OLED, a zamienione były sygnały SDA i SCL do tegoż wyświetlacza. Układ proacował z ATmega328P lub ATmega328PB

Schemat układu wyglądał następująco
Obrazek

A układ po zmontowaniu prototypu tak bez i z założonymi wyświetlaczami
Obrazek
Obrazek
Obrazek
Obrazek

Opis programu
Program został napisany nie wiem czy z lenistwa, czy z pośpiechu w jednym pliku .c i do kompletu jednym pliku .h z ustawieniami i do tego oczywiście z bibliotekami wymaganymi do działania komponentów.

Użyte w programie zatem są następujące biblioteki
SI5351 -> https://github.com/NT7S/Si5351
TM1638 -> https://github.com/lpodkalicki/attiny-tm1638-library/
MK_OLED -> http://atnel.pl
IR_DECODE -> http://atnel.pl
LCD -> http://atnel.pl
przy czym biblioteki Atnelowskie zostały zapożyczone z pendrive do bluebooka, a ta do OLED chyba nawet zakupiona.

Biblioteka do sterowania SI w komplecie posiadała swoją własną implementację i2c, a biblioteka OLED swoją, więc musiałem nieco przerobić kod, wydaje mi się, że biblioteki OLED aby pracowały na jednej bibliotece i2c

Dokładne opisy zmiennych oraz klawiszy i ich znaczenia czy klawiszy z pilota rc-5 znajdują się w komentarzach więc nie będę tego przepisywał, jak kogoś zainteresuje zapraszam do kodu, w skrócie jedynie podam, że przy starcie systemu wszystkie nastawy i odbierana częstotliwość były odczytywane z pamięci EEPROM, następnie jeśli projekt był skompilowany z obsługą opóźnionego startu dla lamp to było wykonywane to opóźnienie, na jednym z pinów poprzez tranzystor sterujący załączany był stan do sterowania przekaźnikiem załączającym napięcie anodowe ok. 150V, zapis do EEPROMu następował za każdym razem gdy system wychodził z którejkolwiek procedury strojenia lub gdy w trybie normalnej pracy przez określony czas nie było zmienianej częstotliwości odbiorczej. Regulację częstotliwości można było dokonywać dokładnie co 1Hz lub zgrubnie wybierając dowolną z dekad. Trochę na kolanie została napisana procedura przełączania filtrów, gdyż była ona dodawana na końcu i tak właściwie tylko dla jednego z kolegów który całkowicie ukończył projekt, dla tego częstotliwości filtrów nie były ustawiane programowo, a wpisane w pliku .h na stałe i był to chyba jedyne odstępstwo w programie od zasady, że wszystko da się ustawić w pełni działającym systemie bez konieczności programowania ponownego wsadu. Program miał jedną ułomność, która wynikała z dostępnej biblioteki dla układu SI5351, otóż jej oryginał na arduino mógł sterować generatorami praktycznie od zera, a jedyna jaką wtedy znalazłem biblioteka w czystym c z powodu jakiś specyficznych obliczeń, a była pisana pod ATTiny potrafiła pracować dopiero od 1MHz więc projektu nie można było użyć na falach średnich lub długich a jedynie na falach krótkich.

Kod w załączeniu



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lip 2022, o 00:54 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27319
Lokalizacja: Szczecin
Pomógł: 1041

Z projektu na projekt - widać duży progress i to w każdym aspekcie i projektowania PCB i samego kodu ;) Przepięknie się na to patrzy. A kolejny projekt jak zwykle bardzo mocno rozbudowany sprzętowo ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 lip 2022, o 01:04 
Offline
Nowy

Dołączył(a): 12 lut 2017
Posty: 24
Lokalizacja: Warszawa
Pomógł: 0

z kodu źródłowego usunąłem biblioteki chronione prawami autorskimi, kod ponownie załączam


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 4 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO