Sari la conținut
ELFORUM - Forumul electronistilor

Cum generez un semnal FSK cu PIC ?


mircang9

Postări Recomandate

Ma gandeam la varianta fara PWM compare pentru ca trebuie un filtru trece josla iesire. As prefera varianta cu rezistente R/2R. Trebuie sa modulez adica in functie 1/0 la intrarea unui pin sa generez o sinusoidapentru 0 si alta pentru 1 logic si cand se face trecere intre sinusoide sa nu apara defazaj intre ele. Si problema de adaptare la o linie telefonica de 600 ohmi. Si amplificarea soft a sinusoidelor. Am PIC16F887 si PIC18F4455.

Link spre comentariu
  • Răspunsuri 1
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • mircang9

    1

  • 10vid

    1

Zile populare

Top autori în acest subiect

Pai e destul de simplu. Se ia un timer cu o rezolutie mare, am vazut ca PIC18F445 are 4 timere. Se ia unu de 16 biti. Apoi se ia un cristal de frecventa cat de mare. Astfel obtinem o granulatie destul de fina in alegerea frecventei.De ex. pentru un ceas de 16MHz a reiesit o granulatie de +/-8Hz la frecventa de 2.5kHz, avand 20 esantioane pe sinusoida (adica frecventa intreruperilor generate de timer e de 50kHz).Dar daca n-ai de respectat cine stie ce standarde de frecvente (adica construiesti si receptoarele) acesti parametrii se mai pot relaxa.La fiecare intrerupere generata, se va citi dintr-un tabel de 20 de elemente valoarea curenta a sinusoidei si se trimite pe cei 8 pini de iesire, pointerul in tabel se incrementeaza, iar dupa aceea se verifica pinul de intrare pentru a vedea care din cele doua valori prestabilite (perioadele corespunzatoare frecventelor F0 si F1) trebuie incarcate in registrul de numarare al timerului.Totusi, aceasta prima varianta nu serveste decat in singur canal FSK. Pentru multe canale costul MCU-urilor creste.Ma gandesc ca o a doua varianta, cu mai multe canale pe MCU, are sa zicem 8 biti de intrare pentru 8 canale, si la iesire, pe langa portul paralel de 8 biti, mai foloseste un port de selectie a 8 latchuri 74HC373, conectate toate la acel port paralel, care ies in propriile lor retele R-2R.Intern, se foloseste o frecventa fixa a intreruperilor, sa zicem 50kHz, si un tabel SIN foarte mare, sa zicem cu 1024 elemente sau mai mare (slava Domnului, memoria flash e mare la astea). 8 pointere "tin minte" valoare curenta a sinusoidei pentru cele 8 canale, iar in functie de ce vine la intrare, se modifica doar valoarea ce trebuie adaugata pointerului (care se tin in 16 constante: 8 pentru logic 1 si alte 8 pentru logic 0). Cand pointerul depaseste acei 1024, se scade din el 1024.

Link spre comentariu

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 cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări