Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Bascom ATmega16 AVR TUNER FM

LemuRR 11 25 Cze 2010 21:25 4294 11
  • #1 25 Cze 2010 21:25
    LemuRR 11
    Poziom 26  

    Witam, już prawie kończę mój przedwzmacniacz, pomyślałem sobie:
    Czemuż jeżeli już włożyłem w niego tyle pracy, nie mógłbym dorobić tunera?
    Więc , przegoglowałem już pół internetu i ... nic, tylko marny temat na elektrodzie w którym opisana jest głowica wymontowana z karty telewizyjnej, i przez to nie można jej nigdzie (poza tą kartą dostać..
    Mi nie potrzebne jest RDS , chciałbym aby głowica była sterowana przez i2c, i najważniejsze, żeby program nie musiał się rozrosnąć do kolosalnych rozmiarów.
    Co polecacie , co wybrać a może ktoś wie z własnego doświadczenia ?
    Ja niestety takowego nie posiadam ):
    dlatego liczę tylko i wyłącznie na waszą pomoc :spoko:

    0 11
  • Pomocny post
    #2 28 Cze 2010 10:56
    am248236
    Poziom 12  

    Myślę że jednym z prostszych i tańszych rozwiązań jest wydłubanie modułu tunera z odtwarzacza mp3. W tych najprostszych odtwarzaczach noname w kształcie pendrive'a jest to bardzo często oddzielna płytka, przylutowana 10 wyprowadzeniami do głównej płytki odtwarzacza, a na płytce jest cały tuner na tea5767 lub odpowiedniku. Dokumentacja do tego jest, wyprowadzenia to zasilanie, I2C, antena i wyjście analogowe stereo. Jakości to pewnie nie będzie miało takiej jak prawdziwy tuner, ale po podłączeniu normalnej anteny powinno być ok. Odtwarzacz np z rozbitym wyświetlaczem można dostać za grosze, ważne żeby był z radiem i był tego najbardziej rozpowszechnionego (tandetnego :)) typu, widziałem jeszcze jakiegoś philipsa z radiem gdzie tuner nie był na oddzielnej płytce i był na chipie do którego nie było dokumentacji. tu rozpiska wyprowadzeń takiego modułu

    0
  • #3 28 Cze 2010 20:31
    Dexter77
    Poziom 28  

    Philips kiedys robil takie fajne male tunerki. Sterowane podobnym protokolem co SPI. Mam taki jeden gdzies w szufladzie, nawet na C51 napisalem kiedys kawalek programu dzieki ktoremu zlapalem jakas stacje.
    Chyba to taki modulik:

    inventco.eu - link do allegro skasowałem - regulamin.

    Pytanie tylko czy to warto sie bawic w dobie przechodzenia na radio cyfrowe?

    0
  • #4 28 Cze 2010 23:14
    ugh123
    Poziom 13  

    Witam wszystkich :D
    Dzis zabralem sie za konstruowanie radyjka na atmega 32 i mini module wymontowanym z uszkodzonej mp4 modul zbudowany jest na srednio popularnym ukladzie SP3767N . W internecie znalazlem opis wyprowadzen tego malenkiego modulu podlaczylem i jak narazie slychac tylko szum i nie wiem jak zrobic zeby odbierac dana czestotliwosc np 99.8 Mhz Eska Lodz. Nizej wstawiam kod programu ktory znalazlem w sieci i na nim testowalem uklad

    Code:
    $regfile = "m32def.dat"
    
    $crystal = 16000000
    Config Scl = Portc.0
    Config Sda = Portd.7


    Dim Dane(10) As Byte

    Dane(1) = &B00011110
    Dane(2) = &B11010010                                        ' B11010010
    Dane(3) = &B01000000
    Dane(4) = &B00000000
    Dane(5) = &B00000000

    I2cstart
    I2cwbyte &B11000000                                         'adres (jak go zmieniam to nie dziala)
    I2cwbyte Dane(1)
    I2cwbyte Dane(2)
    I2cwbyte Dane(3)
    I2cwbyte Dane(4)
    I2cwbyte Dane(5)
    I2cstop

    Do
    Loop


    Prosze o pomoc w odpowiednim przeksztalceniu tego kodu , lub we wskazaniu co trzeba by zmienic bo narazie nie bardzo rozumiem co to sa te Dane od 1 do 5 ?

    Pozdrawiam Bartek

    0
  • #5 29 Cze 2010 12:38
    Dexter77
    Poziom 28  

    Odpowiedz po co sa te dane znajdziesz w datasheecie. Jak mozna sie domyslec sa do konfiguracji urzadzenia i ustawiania czestotliwosci. W moduliku Philipsa bylo zdaje sie 12 bitow do tego. Kazdy jeden bit to bylo chyba 12.5kHz. Jak jest tu zobacz w dokumentacji.

    0
  • #6 29 Cze 2010 23:33
    ugh123
    Poziom 13  

    Witajcie :D
    No domyslilem sie ze sa do konfiguracji przeczytalem datasheeta ale z moim angielskim bardzo kiepsko wiec srednio to rozumiem , wiem ze sa ranslatory i tlumacze ale jadnak zwracam sie z prosba o pomoc do was o wyjasnienie mi tych wysylanych danych co po co i dlaczego ? Ktora zmienna jest od czego , np ktora odpowiada za czestotliwosc odbieranej stacji , to by mnie interesowalo najbardziej . Z gory wszystkim dziekuje , serdecznie pozdrawiam Bartek :D

    0
  • #7 30 Cze 2010 23:11
    am248236
    Poziom 12  

    tu jest opis dość dokładny przykładowego radyjka na tym układzie, na stronie 58 jest opis znaczenia poszczególnych bitów (m.in strzelam, że jeśli jest to moduł z mp3 to ma kwarc zegarkowy, a ustawiasz mu, że ma 13MHz). Od strony 20 jest opis jak wyliczać przesyłane słowo PLL zależnie od oczekiwanej częstotliwości, trybu strojenia i kwarcu. Czyli najlepiej sobie obliczyć dla paru wariantów kwarcu, trybu strojenia i częstotliwości jakiejś stacji o silnym sygnale wartości słowa PLL i próbować. Jest też pewna szansa, że Twój układ nie jest zgodny z TEA5767, ale skoro zaczął szumieć to raczej powinno być ok.

    0
  • #8 30 Cze 2010 23:32
    ugh123
    Poziom 13  

    Dzieki za linka :D
    Tak ten modul to taki maly kwadracik 1x1 cm i ma kwarc taki jak zegarkowy ale nie wiem czy 13 Mhz czy 32.768 kHz ale chyba to drugie bo gdzies tak wyczytalem :D glównie chodzi mi o poprawne skonfigurowanie tego modulu zeby chcial odbierac to co potrzeba a nie sam szum i nic wiecej . Polaczenie i2c linie scl i sda podciagnalem do plusa przez 4.6 k czy moze byc taka wartosc czy moze za duzy ?
    Serdecznie pozdrawiam Bartek :D

    0
  • #9 01 Lip 2010 22:43
    am248236
    Poziom 12  

    Raczej jeśli masz szum to cośtam się włącza i komunikacja działa. Kwarc na takim module to jest raczej 32768Hz, więc musisz już odpowiedni bit w swoim kodzie zmienić - zobacz te tabelki z końca pdfa. Potem podstawiasz częstotliwość, na którą chcesz się nastroić do odpowiedniego wzorka z okolic strony 20 (wzorek zależny od ustawionego trybu pracy heterodyny (low-side/high-side, to też się ustawia jednym z bitów, nie wiem który lepiej)), potem odpowiednie bity zapisu binarnego tego, co wyliczysz wpisujesz w pola PLL13..PLL0. Jak znajdę to wrzucę jakiś przykładowy kod, bo bawiłem się takim modułem

    1
  • #10 02 Lip 2010 00:19
    ugh123
    Poziom 13  

    Ok wiec czekam na przykladowy kod poniewaz bardzo mi zalezy na uruchomieniu tego modulu , a co do danych wysylanych jako informacja o odbieranej czestotliwosci to liczylem to przynajmniej probowalem ale wychodza mi jakie kosmiczne liczby :D poprosze o jakis przyklad bo srednio wiem jak sie za to zabrac . Pozdrawiam Bartek :D

    0
  • #11 02 Lip 2010 19:30
    am248236
    Poziom 12  

    Znalazłem. Jest to kod pochodzący najprawdopodobniej z pakietu Video4Linux z wplecioną brzydko niskopoziomowo obsługą I2C. W pliku .h są definicje wszystkich parametrów (jak w tabelce z końca pdfa), a w pliku .c w funkcji tuner_setfreq ustawienie kombinacji tych parametrów działającej z moim modułem, wyliczenie parametru PLL na podstawie częstotliwości (dokładniej częstotliwości w MHz pomnożonej przez 10, czyli dla 99.8MHz parametr frq powinien być równy 998) i zapisanie wszystkiego w kolejnych bajtach tablicy buffer (to co u Ciebie dane). Powodzenia!

    0
  • #12 21 Wrz 2010 17:32
    LemuRR 11
    Poziom 26  

    Witam ,odświeżam temat, znalazłem właśnie cały moduł z tea 5767 , jedna rzecz jest dla mnie nie zrozumiała jedna rzecz , częstotliwość (podzielnik ) wpisuje się w bity pll (0-13) znajdują się w bajcie 1 , 2 . przy czym pll(0) znajduje się w ostatnim bicie drugiego bajtu a pll 13 w drugim bicie pierwszego bajtu , czy podzielnik mam zacząć wpisywać od pll(13) do pll(0) [bo tak wychodzi na to , że pierwsza cyfra podzielnika jest wpisywana na początku] czy zacząć wpisywać od pll(0) do pll(13)
    ale wtedy wychodzi na to że cały podzielnik piszę od tyłu , i czemu w tabelce w datasheet (s 58) najpierw jest bit 8 a potem dochodzi do bit 0 ?
    niech mi ktoś pomoże to wpisać np. dla przykładowego podzielnika 10111001110111 (cz 97,7 MHz)
    lLink do datasheet, czy w tym przykładowym programie kilka postów wyżej (jako dane 1 i dane 2) bity pisane są od 0-7 czy 7-0 ?

    0