Kiel Fari Ciferecan Radion kun DSP
Cifereca radio fariĝis ĉiam pli populara pro sia kapablo liveri pli bonan sonkvaliton, pli efikan uzon de la frekvenca spektro, kaj pliajn funkciojn kiel ekzemple metadatenoj pri kantoj. Unu el la ŝlosilaj komponantoj en la disvolviĝo de cifereca radio estas la uzo de Cifereca Signalprocesoro (DSP). Ĉi tiu artikolo diskutos la paŝojn implikitajn en la disvolviĝo de cifereca radio uzante DSP.
Pendahuluan
DSP, aŭ Cifereca Signalprocesoro, estas mikroprocesoro speciale desegnita por realtempa cifereca signalprilaborado. En la kunteksto de cifereca radio, DSP konvertas analogajn signalojn al ciferecaj, prilaboras tiujn signalojn, kaj fine konvertas la ciferecajn signalojn reen en aŭdeblajn analogajn signalojn.
Por fari ciferecan radion, necesas pluraj ĉefaj komponantoj, nome:
1. Anteno: Por ricevi radiosignalojn.
2. Agordilo: Por elekti la deziratan radiofrekvencon.
3. DSP: Por cifereca signalprilaborado.
4. DAC (Cifereca-Analoga Konvertilo): Por konverti ciferecajn signalojn reen en analogajn signalojn.
5. Laŭtparolilo aŭ aŭdiloj: Por soneligo.
Paŝo Unu: Selektado de Komponantoj
1. Anteno
La uzata anteno devas esti taŭga por la frekvenco, kiun vi volas ricevi. Por FM-radio, oni tipe uzas teleskopan antenon aŭ simplan monopolan antenon.
2. Agordilo
La agordilo povas esti preta por uzo modulo aŭ komponanto kiel la ĉipo Si4703 aŭ TEA5767. Ĉi tiuj moduloj tipe venas kun I2C aŭ SPI-interfaco, faciligante la kontrolon de la frekvenco per mikroregilo.
3. DSP
La elekto de DSP estas la plej grava parto. Jen kelkaj komunaj DSP-oj uzataj en radiaj aplikoj:
– Texas Instruments (TI) TMS320-serio
– Analogaj Aparatoj (ADI) SHARC-serio
– Serio STM32 kun DSP-flankaparatoj
4. DAC
DAC kiel ekzemple la PCM5102 aŭ ES9018, kiuj estas DAC-oj kun bona aŭdiokvalito, povas esti uzataj por konverti la ciferecan signalon reen al analoga signalo.
5. Laŭtparolilo
Vi povas uzi aktivajn laŭtparolilojn aŭ uzi malgrandan amplifilmodulon kiel ekzemple la PAM8403 por produkti pli klaran kaj laŭtan sonon.
Aparata Dezajno
Bloka Skemo
1. Anteno -> 2. Agordilo -> 3. DSP -> 4. DAC -> 5. Laŭtparolilo
La kerna prilaborado de ĉi tiu sistemo estas sur la DSP, kie la signalo estas ricevita per la anteno kaj selektita per la agordilo, poste eniras la DSP por cifereca prilaborado, kaj fine konvertita al analoga signalo per la DAC kaj eligita tra la laŭtparolilo.
Cirkvita Skemo
1. Anteno
– Simpla diagramo de anteno konektita al radioricevilo-enigo.
2. Agordilo-Modulo
– Interfaca diagramo inter la agordilo kaj la mikroregilo uzata por frekvencregado.
3. DSP
– DSP-konektila diagramo konektita al la agordilo por ricevi enirsignalojn kaj ankaŭ konektita al la mikroregilo por programalŝuto.
4. DAC
– Diagramo de cifereca signalkonverto de DSP al analoga signalo konektita al laŭtparolilo.
5. Laŭtparolilo
– Simpla diagramo pri konekto de la laŭtparolilo al la amplifilo se necese.
Firmvara Efektivigo
Post kiam la aparataro estas kompleta, la sekva paŝo estas evoluigi la firmvaron, kiu funkcios sur la mikroregilo kaj DSP.
Kontrolante la Agordilon
Unue, certigu, ke via mikroregilo povas komuniki kun la agordilo. Por moduloj, kiuj uzas I2C aŭ SPI-komunikadon, vi devos integri la I2C/SPI-bibliotekon en vian mikroregilon.
Ekzempla kodo por regi la agordilon TEA5767 per Arduino:
“`cpp
inkluzivi
malplena agordo () {
Wire.begin(); // I2C-inicialigo
Seria.begin (9600);
setFrequency(101.1); // Agordu la frekvencon al 101.1MHz
}
malplena buklo () {
// ne necesas
}
void agordiOftecon(flosanta frekvenco) {
uint16_t frekvencoB = 4 (frekvenco 1000000 + 225000) / 32768;
bajta bufro[5];
bufro[0] = frekvencoB >> 8;
bufro[1] = frekvencoB & 0XFF;
bufro[2] = 0xB0;
bufro[3] = 0x10;
bufro[4] = 0x00;
Drato.komencu Transdonon(0x60);
Drato.skribi(bufro, 5);
Drato.finoTransdono();
}
“
Signal-prilaborado per DSP
DSP-programado povas esti pli kompleksa depende de la tipo kaj kapabloj de la DSP. Ekzemple, kun Texas Instruments DSP, vi verŝajne uzos Code Composer Studio (CCS) por disvolvi kaj alŝuti kodon al la DSP.
Ekzempla pseŭdokodo por DSP kiu demodulas FM-signalon:
“`cpp
malplena ĉefa() {
initDSP(); // Inicialigi DSP-on
dum (1) {
// Legu signalon de la agordilo
signaloAnaloga = leguAnalogaEnigo();
// Cifereca signal-prilaborado
signaloCifereca = analogaAlCifereca(signaloAnaloga);
demodulitaSignalo = FM_Demodulu(signaloCifereca);
// Konverti reen al analoga signalo
eligoSignalo = ciferecaAlAnaloga(demodulitaSignalo);
// Sendu al DAC
senduAlDAC(eligaSignalo);
}
}
“
Agordante la DAC-on
Post kiam la prilaborado finiĝas en la DSP, la cifereca signalo devas esti konvertita reen al analoga per DAC. Ĉi tiu agordo tipe okazas per I2C aŭ SPI. Certigu, ke la DAC, kiun vi uzas, kongruas kun la cifereca signalo eligita de la DSP.
Simpla kodekzemplo por regi PCM5102 DAC per Raspberry Pi:
“`pitono
importi smbus
buso = smbus.SMBus(1)
adreso = 0x4C
def agordi_volumenon(volumenon):
buso.skribi_bajtajn_datumojn(adreso, 0x00, volumo)
Agordu la laŭtecon je certa nivelo ekzemple 0x7F
agordi_volumenon(127)
“
Testado kaj Sencimigado
Post kiam la tuta cirkvito estas konektita kaj la firmvaro estas alŝutita, la sekva paŝo estas testi por certigi, ke ĉiuj komponantoj funkcias ĝuste.
Testaj Konsiletoj
1. Plenumu Pliigan Testadon: Testu ĉiun komponenton aparte antaŭ ol kombini ilin.
2. Uzu osciloskopon: Por observi la signalan ondformon ĉe diversaj punktoj en la cirkvito.
3. Pliiga Sencimigado: Se estas problemo, izolu la problemon de la HF-komponanto antaŭ ol eniri la DSP-on.
4. Atentu interferojn: La pozicio kaj ŝirmado de la anteno povas influi la signalkvaliton.
Fine, se ĉiuj komponantoj funkcias ĝuste, vi povas aŭskulti ciferecan radion kun klara sonkvalito de la sistemo, kiun vi konstruis.
Konkludo
Konstrui ciferecan radion kun DSP postulas solidan komprenon pri cifereca signala aparataro kaj programado. Kun zorgema planado kaj ĝusta komponanta elekto, vi povas krei altkvalitan ciferecan radion. DSP provizas flekseblecon en signalprilaborado kaj ebligas kelkajn pliajn funkciojn ne eblajn per tradiciaj analogaj metodoj. Amuzu vin konstruante vian propran ciferecan radion kaj ĝuu la fruktojn de via laboro!