Mondan Postat Martie 9, 2014 Partajează Postat Martie 9, 2014 Este vorba de modulul de radio FM din majoritatea telefonelor cu radio, MP3 playr cu radio si altele.Daca nu e exact asta tot din seria asta este.Am vazut ca ar costa in jur de 1$ si ca mai este si stereo. Ce experienta aveti cu el ? Daca ati mai lucrat cu el impartasiti sugetii: merita/ nu merita lucrat cu el? Calitatea sunetului ? Eu am un telefon stricat care contine acest modul (avea radio). Evident comandat de PIC. Link spre comentariu
vasile eugen Postat Martie 9, 2014 Partajează Postat Martie 9, 2014 Am vazut scheme si sunt multe cu el.Aveam si eu curiozitatea de cum functioneaza.Niste linkuri la ca am vazut aplicatia: http://320volt.com/en/tea5767-pic16f628 ... i-sistemi/ http://tomeko.net/projects/TEA5767_radio/ http://elektro-shemi.ru/publ/chasy/radi ... 12-1-0-113 Link spre comentariu
Mircea Postat Martie 10, 2014 Partajează Postat Martie 10, 2014 Uite-l aici, facut de un coleg de forum: viewtopic.php?f=11&t=151357&p=1426315#p1426315 Link spre comentariu
Mondan Postat Martie 11, 2014 Autor Partajează Postat Martie 11, 2014 Multumesc pentru link.Nu stiu cum a scapat gresela asta. Ca am folosit search, dar nu am gasit. Link spre comentariu
Vizitator nikc10 Postat Iulie 10, 2014 Partajează Postat Iulie 10, 2014 Am facut si eu un proiect cu pic 16f876A, lcd 2x16 ce include un radio cu acest cip tea5767. Problema este ca sunt incepator in programare si nu inteleg din programele expuse cum sa fac un program de test cu o frecventa fixa ce o stiu ca merge la radio, sa pot verifica daca porneste acest chip. Partea de program pentru radio arata cam asa: #include <16F876A.h> #use delay(clock=20000000) //20000000 #fuses HS,NOWDT,PUT,NOBROWNOUT,NOPROTECT,NOLVP,NOCPD,NOWRT //************************************************************************************ //#use fast_io(A) //#use fast_io(B) #use fast_io© //************************************************************************************ #include <flex_LCD.c> #define CLOCK_SCL PIN_C0 #define DATA_SDA PIN_C1 #use i2c(master, sda=DATA_SDA, scl=CLOCK_SCL) //------------------------------------------variabile-------------------------------------------------// unsigned int frequencyH = 0; unsigned int frequencyL = 0; unsigned int16 frequencyB = 0; unsigned int32 frequency = 0; unsigned char byte1, byte2, byte3, byte4, byte5; //************************************************************************************ void pic_init(void) { //-- PORTS output_A(00000000); output_B(00000000); output_C(00000000); set_tris_A(0b00000000); port_B_pullups(true); set_tris_B(0b11001111); set_tris_C(0b00000000); } //-------------------------------------------Program--------------------------------------------------// void radio_init() { frecvency=103.4 //frecventa radio romania actualitati frequencyB=4*(frequency*1000000+225000)/32768; frequencyH=frequencyB>>8; frequencyL=frequencyB&0XFF; i2c_start(); i2c_write(0xC0); i2c_write(frequencyH); i2c_write(frequencyL); i2c_write(0xB0); i2c_write(0x10); i2c_write(0x00); i2c_stop(); } void radio_citire(unsigned char* byte1, unsigned char* byte2, unsigned char* byte3, unsigned char* byte4, unsigned char* byte5) { i2c_start(); i2c_write(0xC1); byte1 = i2c_read(1); byte2 = i2c_read(1); byte3 = i2c_read(1); byte4 = i2c_read(1); byte5 = i2c_read(0); i2c_stop(); stereo = (byte3&0x80); freq = ((((byte1&0x3F)<<8)+byte2)*32768/4-225000)/100000; signal_level = (byte4 >> 4) * 100 / 16; } void radio(){ void radio_citire(); lcd_gotoxy(1,1); printf(lcd_putc,"%2.0f %2.0f %2.0f ",stereo,signal_level,freq); lcd_gotoxy(1,1); printf(lcd_putc,"%3.1wMHz ",frequency); } void main() { pic_init(); display_init(); radio_init(); while(true){ radio(); } } Se compileaza programul cu ccs, il copiez in pic, pornesc proiectul , imi afiseaza pe display, dar la iesirea de radio data printr-un amplificator, nu se simte nimic... cateodata se aud ceva pacanituri si cam atat. La antena am un fir de 2m... As dori putin ajutor daca se poate, sa-mi spuneti unde gresesc. Va multumesc anticipat. linkul dat de thuenderer nu mai e valabil...! aici e tot acelasi program dar cu mici corecturi... #include <16F876A.h> #use delay(clock=20000000) //20000000 #fuses HS,NOWDT,PUT,NOBROWNOUT,NOPROTECT,NOLVP,NOCPD,NOWRT //************************************************************************************ //#use fast_io(A) //#use fast_io(B) #use fast_io© //************************************************************************************ #include <flex_LCD.c> #define CLOCK_SCL PIN_C0 #define DATA_SDA PIN_C1 #use i2c(master, sda=DATA_SDA, scl=CLOCK_SCL) //------------------------------------------variabile-------------------------------------------------// unsigned int frequencyH = 0; unsigned int frequencyL = 0; unsigned int16 frequencyB = 0; unsigned int32 frequency = 0; unsigned char byte1, byte2, byte3, byte4, byte5; float freq, stereo, signal_level; //************************************************************************************ void pic_init(void) { //-- PORTS output_A(00000000); output_B(00000000); output_C(00000000); set_tris_A(0b00000000); port_B_pullups(true); set_tris_B(0b11001111); set_tris_C(0b00000000); } //-------------------------------------------Program--------------------------------------------------// void radio_init() { frequency=103.4 //frecventa radio romania actualitati frequencyB=4*(frequency*1000000+225000)/32768; frequencyH=frequencyB>>8; frequencyL=frequencyB&0XFF; i2c_start(); i2c_write(0xC0); i2c_write(frequencyH); i2c_write(frequencyL); i2c_write(0xB0); i2c_write(0x10); i2c_write(0x00); i2c_stop(); } void radio_citire(unsigned char* byte1, unsigned char* byte2, unsigned char* byte3, unsigned char* byte4, unsigned char* byte5) { i2c_start(); i2c_write(0xC1); byte1 = i2c_read(1); byte2 = i2c_read(1); byte3 = i2c_read(1); byte4 = i2c_read(1); byte5 = i2c_read(0); i2c_stop(); stereo = (byte3&0x80); freq = ((((byte1&0x3F)<<8)+byte2)*32768/4-225000)/100000; signal_level = (byte4 >> 4) * 100 / 16; } void radio(){ void radio_citire(); lcd_gotoxy(1,1); printf(lcd_putc,"%2.0f %2.0f %2.0f ",stereo,signal_level,freq); lcd_gotoxy(1,1); printf(lcd_putc,"%3.1wMHz ",frequency); } void main() { pic_init(); display_init(); radio_init(); while(true){ radio(); } } daca ma poate ajuta cineva, as fi recunoscator...dau si eu o bere... Link spre comentariu
Liviu M Postat Iulie 10, 2014 Partajează Postat Iulie 10, 2014 //-------------------------------------------Program--------------------------------------------------// void radio_init() { frequency=103.4 //frecventa radio romania actualitati Aici ai incercat sa modifici? Link spre comentariu
Vizitator nikc10 Postat Iulie 11, 2014 Partajează Postat Iulie 11, 2014 Aici ai incercat sa modifici? Da. Am pus mai multe valori de frecvente pe care le stiu ca merg pe un radio. Nu merge nici una. Link spre comentariu
Liviu M Postat Iulie 11, 2014 Partajează Postat Iulie 11, 2014 Asta nu inseamna ca frecventele nu sunt corect setate, ci ca ai o problema in circuit/program.Ca tot ai afisorul LCD, afiseaza diverse chestii in diverse puncte din program, sa vezi pana unde ajunge si unde se blocheaza. Link spre comentariu
Kreator Postat Iulie 11, 2014 Partajează Postat Iulie 11, 2014 Auzi fasaitul specific FM? Daca nu, radioul nu-i initializat corect. Comunicatia I2C functioneaza? Link spre comentariu
Vizitator nikc10 Postat Iulie 13, 2014 Partajează Postat Iulie 13, 2014 Asta nu inseamna ca frecventele nu sunt corect setate, ci ca ai o problema in circuit/program.Ca tot ai afisorul LCD, afiseaza diverse chestii in diverse puncte din program, sa vezi pana unde ajunge si unde se blocheaza. buna idee... sa afisez fiecare byte de scriere/citire in ordine... Link spre comentariu
Vizitator nikc10 Postat Iulie 13, 2014 Partajează Postat Iulie 13, 2014 (editat) Auzi fasaitul specific FM? Daca nu, radioul nu-i initializat corect. Comunicatia I2C functioneaza? am verificat cu o casca pe o iesire...si se aude. Se pare ca partea de amplificare nu am facut-o bine... i-ti multumesc pentru idee. Asta nu inseamna ca frecventele nu sunt corect setate, ci ca ai o problema in circuit/program. Ca tot ai afisorul LCD, afiseaza diverse chestii in diverse puncte din program, sa vezi pana unde ajunge si unde se blocheaza. am verificat, programul este bun, ... doar ca nu am facut bine partea de amplificare... am folosit un tda2822m, desi cu alta sursa audio (de la combina...) a mers, se pare ca, cu tea5767 nu vrea. Mai sap, cred ca trebuie sa pun c-uri pe intrari si rezistente de pe intrari catre masa... Va multumesc pentru ajutor... Stiti cum se poate programa volumul pentru cipul tea5767, trebuie sa folosesc un port adc al pic-ului? Editat Iulie 13, 2014 de nikc10 Link spre comentariu
one Postat August 25, 2014 Partajează Postat August 25, 2014 Nu cred ca se poate modifica volumul. Vezi la pagina 41 aici: http://www.rockbox.org/wiki/pub/Main/DataSheets/application_note_tea5767-8.pdf Si eu am verificat acest circuit. Nu am aprofundat experimentele, am vazut ca merge si apoi a ramas aruncat prin cutii. Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum