Dodano: 2016.03.02

Radio z modułem TEA5767 - wersja II

radio z modułem TEA5767

W poprzednim poście przedstawiłem radio z układem TEA5767 sterowane przez mikrokontroler Atmega328 z wyświetlaczem LCD od nokii5110, zasilane napięciem 3,3V.

Teraz ten sam moduł TEA5767 ze wzmacniaczem TDA1308 (tylko 4 piny - 2 na zasilanie i 2 na I2C oraz 2 gniazda Jack - antena i słuchawki). Układem steruje Atmega8. Interfejs stanowią 3 przyciski (podobnie jak poprzednio) i wyświetlacz LCD 2x16 znaków. Zasilanie 5V.

Początkowo miałem obawy, czy zasilanie 5V nie uszkodzi modułu, którego schematu rozszyfrować nie sposób, a z dokumentacji układu TEA5767 wynika, że powinien być zasilany napięciem 3,3V. Ale przeprowadzone próby wypadły pomyślnie. Schemat połączeń przedstawia rysunek poniżej.

TEA5767 + Atmega8 - schemat

Różnice w stosunku do poprzedniego projektu to: zastosowanie wyświetlacza LCD 2x16 znaków ze sterownikiem HD44780 podłączonego do portu D, przyciski S1 ... S3 podłączone  do portu B oraz zasilanie napięciem 5V (zmiany w module zasilacza - stabilizator 7805). 

radio TEA5767 - informacje na LCDZasilanie napięciem 5V spowodowało wzrost siły sygnału i w związku z tym automatyczne przełączanie się układu w tryb stereo (siła sygnału powyżej 12). Sposób wyświetlania informacji na LCD przedstawia ilustracja obok.


Działanie

Po włączeniu zasilania odtwarzana jest jedna z zapisanych w pamięci eeprom stacji (częstotliwości) ustalona w części inicjalizacyjnej programu. Przyciski S2 (-) i S3 (+) umożliwiają zmianę stacji odpowiednio w dół lub w górę. Przyjąłem możliwość zaprogramowania 10 stacji - zapisania w pamięci eeprom 10 częstotliwości co zajmuje 40 bajtów (każda częstotliwość to 4 bajty pamięci). Liczbę tę można zmienić w zależności od potrzeb. Nazwy stacji zapisane są w pamięci danych, ale możliwe jest utworzenie tablicy nazw stacji w pamięci eeprom i ich modyfikowanie w trakcie działania urządzenia.

Przycisk S1 służy do otwarcia prostego MENU zawierającego opcje:

  • przeglądu stacji (częstotliwości) zapisanych w pamięci eeprom
  • strojenia
  • zapisu nastrojonej częstotliwości na wybranej pozycji (1 .. 10)
  • przełączania podświetlenia LCD
  • wyjścia z menu
Poruszanie się po menu umożliwiają przyciski S2 i S3, a wyboru opcji przycisk S1. Wewnątrz wybranej opcji działanie przycisków jest analogiczne - S2 i S3 służą do zmiany parametrów a S1 do zatwierdzania zmian.

Program napisałem w C i skompilowałem w środowisku WinAvr. Zajmuje nieco ponad 50% zasobów mikrokontrolera. Atmega8 pracuje z częstotliwością 1MHz (bez zmiany fusebitów). Poniżej krótki filmik przedstawiający działanie prototypu.



Projekt dostępny w dziale Do pobrania (schemat, kody źródłowe w C, plik wsadowy HEX).


Komentarze mile widziane

Liczba komentarzy: 0    Czytaj | Dodaj komentarz

Dodano: 2016.01.30

Radio FM na TEA5767

Radio FM z modułem TEA5767

Już parę ładnych lat minęło od czasu kiedy to zmajstrowałem radyjko na układzie TDA7000 Philipsa, które gra do dzisiaj. Przeglądając internet co i rusz napotykałem oferowany do sprzedaży moduł z układem TEA5767, aż w końcu się skusiłem. Przy okazji poznałem też różne opinie, opisy problemów z uruchomieniem układu, oraz rady jak sobie z nimi radzić.

moduł TEA5767W ślad za sugestiami, że najlepiej kupić ze trzy, to może któryś odpali - kupiłem dwa. Moduł (a nie układ) w zasadzie nie posiada dokumentacji, a dostępne w sieci opisy wyprowadzeń i sposobu ich podłączania są rozbieżne. Pozostało studiowanie noty katalogowej układu.

Problemem dla mnie okazało się polutowanie wyprowadzeń do tego modułu - już nie te oczy, nie te ręce. Nie mam pewności, czy lutując wyprowadzenia nie uszkodziłem tych modułów, bo jak się potem okazało żaden nie ruszył. Nie mam jednak lutownicy hot air aby potraktować te moduły gorącym powietrzem jak sugerował ktoś w sieci.

Aby nie poprzestać na takim niepowodzeniu kupiłem gotowca - urządzenie zawierające wspomniany wyżej moduł oraz wzmacniacz TDA1308. Urządzenie posiada 4 piny (2 zasilanie, 2 na I2C) oraz dwa gniazda jack 3,5mm - jedno do wpięcia anteny (były dwie w zestawie), drugie wyjście słuchawkowe.

moduł TEA5767 na I2C

Skoro miałem już gotowca, to zestawienie prototypu było banalnie proste. Zresztą układ nie jest skomplikowany, co widać na zamieszczonych poniżej schematach (schemat z modułami uproszczony - oznaczone tylko piny i gniazda).



radio TEA5767 schemat
radio TEA5767 moduły

Budowa i działanie

Układem steruje mikrokontroler Atmega328. Moduł TEA5767 podłączony do magistrali I2C, której szyny SDA i SCL są podciągnięte do zasilania przez rezystory 3k3. Magistralą I2C następuje zapis i odczyt rejestrów układu TEA5767. Interfejs użytkownika stanowią 3 przyciski oraz wyświetlacz LCD od nokii 5110 (wykorzystałem moduł). Podświetleniem wyświetlacza steruje Atmega poprzez tranzystor T1. Do sterowania wyświetlaczem wykorzystano sprzętowy SPI.Cały układ zasilany jest napięciem 3,3V.

 

Układ zaprojektowałem tak, że po uruchomieniu odtwarzana jest jedna ze stacji (częstotliwości stacji zapisano w pamięci procesora). Przycisk S1 służy do wybierania kolejnych stacji.

Przyciski S2 i S3 umożliwiają strojenie - S2 zmniejsza częstotliwość, a S3 zwiększa o 50kHz. W takiej, jak na razie mało rozbudowanej wersji, urządzenie może działać nawet bez wyświetlacza LCD, co uprościłoby jego konstrukcję i program.

Urządzenie zmontowałem i testowałem na płytce stykowej. Opracowałem także płytki PCB, które czekają sobie na wykonanie. Rozważam różne warianty urządzenia finalnego, ale o tym napiszę, gdy któryś z pomysłów zrealizuję.

Program

Program napisałem w C w środowisku WinAvr. Na razie jest to rozwiązanie dość proste. Sporo czasu zajęło mi tworzenie bibliotek dla modułu TEA5767 - korzystałem z wielu źródeł wykorzystując i modyfikując ich fragmenty, które odpowiadały potrzebom tego projektu. Musiałem także zmodyfikować biblioteki dla wyświetlacza LCD.Urządzenie wystartowało, ale... działanie tego nie powala. Nie udało mi się zrealizować automatycznego strojenia. Odbierane są tylko stacje o silnym sygnale (ale to może dla tego, że u mnie w domu telefony komórkowe też mają kiepski zasięg).

radio TEA5767 lcd nokia 5110

Myślę nad wprowadzeniem zmian w taki sposób, aby możliwe było zapisywanie w pamięci EEPROM procesora ustawionej przez użytkownika stacji (częstotliwości), a potem jej wybieranie, wybieranie kroku strojenia, ustalanie sposobu wyświetlania i podświetlania. Zamierzam także dodać moduł RTC.
Program zajmuje około 18% zasobów procesora.


Projekt dostępny w dziale Do pobrania (schematy, kody źródłowe w C, plik wsadowy HEX, rysunki płytek w formacie pdf.


Komentarze mile widziane

Liczba komentarzy: 1    Czytaj | Dodaj komentarz

Dodano: 2015.09.17

Nietypowy zegar

nietypowy zegar Atmega

Przeglądając swoje zasoby elementów elektronicznych, jakie pozostały z dawnych lat (z epoki tranzystorów i układów TTL) natknąłem się na demultiplekser 74154. Postanowiłem go wykorzystać do sterowania matrycami LED (8x8)  w układzie z mikrokontrolerem Atmega. Aby się przekonać, czy mi się to uda, poczytałem notę katalogową tego układu. Demultiplekser 74154 dekoduje 4 linie wejściowe (kod BCD) na 16 linii wyjściowych, co pozwoli na sterowanie anodami 2 matryc LED. Tabelę stanów układu 74154 przedstawia rysunek.

W taki oto sposób powstał projekt zegara z wyświetlaczem matrycowym, do budowy którego wykorzystałem wspomniany układ 74154, mikrokontroler Atmega328, moduł RTC z układem DS1307,dwie matryce LED oraz termometr DS18b20. Schemat zegara oraz modułów przedstawiają rysunki.

nietypowy zegar atmega - schemat nietypowy zegar atmega - moduły

Mikrokontroler Atmega przyjmuje dane z modułu RTC poprzez magistralę TWI (I2C) - piny PC4, PC5, z termometru DS18b20 poprzez magistralę 1-wire (pin PD7) i  z klawiatury (pin PB0...PB2). Przetwarza te dane a wyniki pokazuje na wyświetlaczu matrycowym w sposób określony w programie. Do sterowania wyświetlaczem wykorzystano port C (piny PC0...PC3) i port D (piny PD0...PD6). Sygnały z portu C podawane są na wejścia ABCD układu 74154, którego wyjścia sterują kolumnami 0...15 wyświetlacza (anody matryc LED). Sygnały z portu D sterują wierszami matryc. Aby ograniczyć prąd wyjść Atmegi i układu 74154 matryce są sterowane za pomocą tranzystorów BC327 - kolumny i BC337 - wiersze. Rezystory R1...R23 mają wartość 4k7, a rezystory R24...R30 ograniczające prąd diod w matrycach mają wartość 470 ohm.

Prototyp urządzenia wykonałem na płytce stykowej. Aby ułatwić sobie łączenie wykonałem moduł wyświetlacza, który zmontowałem na dwóch płytkach PCB (na jednostronnym laminacie). Na jednej znajdują się matryca (montowane w jednorzędowych podstawkach) i 8 rezystorów ograniczających prąd diod. Na drugiej 24 tranzystory i 24 rezystory. Obie płytki połączyłem "na kanapkę" za pomocą śrub i dystansów łącząc odpowiednie punkty odcinkami srebrzanki. Połączenie modułu z układem zapewniają 24 przewody (8 dla wierszy, 16 dla kolumn).

nietypowy zegar atmega - prototyp

Program napisałem w C i skompilowałem w środowisku WinAvr. Po zainicjowaniu urządzenia, w pętli głównej odczytywane są dane z modułu RTC, aktualizowany jest tekst do wyświetlenia i przekształcany na ciąg bajtów. Następnie dane są wyświetlane, a napis jest przewijany. W danej chwili zapalane są diody tyko jednej kolumny (prezentowana jest wartość bajtu przesłanego do wierszy). Sprawdzany jest też stan klawiszy - w przypadku naciśnięcia S2 uruchamiane jest proste MENU. Menu umożliwia ustawianie daty i czasu.

Aby możliwe było wyświetlanie liter i cyfr potrzebny  jest odpowiednio zdefiniowany zestaw znaków i zapisany w pamięci flash mikrokontrolera. W tym celu napisałem prosty programik w PHP, który ułatwił mi to zadanie. Program koduje znaki z matrycy o wymiarach 5x7 punktów (5 kolumn) tworząc ciągi bajtów zapisywane w pliku tekstowym. Każdy znak opisany jest pięcioma bajtami. Programik można przetestować TUTAJ.

Działanie urządzenia przedstawia krótki filmik. Jego jakość, podobnie jak jakość zdjęć, jest kiepska z powodu złych warunków oświetleniowych.

Projekt (schematy, rysunki płytek PCB, kod źródłowy programu w C, plik wsadowy .hex, programik do kodowania znaków) można pobrać w dziale Do pobrania (plik matryca.zip).

 

Liczba komentarzy: 0    Czytaj | Dodaj komentarz

Strona główna Starsze posty >>


czerwiec 2016
NiPnWtŚrCzPtSo
1234
567891011
12131415161718
19202122232425
2627282930