上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--.--.-- -- l スポンサー広告 l top
PIC16F1705のオペアンプを使ってゲルマラジオの出力をADCでとりこみ、ちょっとした信号処理をしてDACで出力すれば低周波増幅段になるかな、と思いついて実験してみました。
 
まずは回路。普通のゲルマラジオを同調回路とダイオードをつけて、OPAMP2を入力段として非反転増幅回路で受けています。

 
ブレッドボードはこんな感じです。かなりごちゃついてきました。

「スポンサードリンク」

style="display:block"
data-ad-client="ca-pub-0620260288102702"
data-ad-slot="9773401572"
data-ad-format="auto">




動作波形です。下がADC入力、上がDAC出力です。ADC入力をそのまま出すのも面白くないのでソフトで4倍のゲインをつけています。

音は。。。AFNの音楽を聴いていて高音はいまいちのような気がしますが、まあ普通にAMラジオとして聞えています。




ソースは以下の通りです。
//*************************************************
// PIC16F1705 DAC/ADC RADIO test
// 2015/01/11
//*************************************************

// *** INCLUDEはファイル名を<>で囲んでください。
#include xc.h
#include stdio.h
#include stdlib.h
#include math.h

#define _XTAL_FREQ 32000000

#pragma config FOSC = INTOSC // use intosc , clkout = IO
#pragma config WDTE = OFF // WDT off
#pragma config PWRTE = ON // PWT on
#pragma config MCLRE = OFF // MCLR disabled
#pragma config CP = OFF // Memory code protection disabled
#pragma config BOREN = ON // BOR enabled
#pragma config CLKOUTEN = OFF // CLKOUT = IO
#pragma config IESO = OFF // IESO disabled
#pragma config FCMEN = OFF // FCMEN disabled
#pragma config WRT = OFF // FLASH write protection disabled
#pragma config PPS1WAY = OFF // PPSWAYdisabled
#pragma config ZCDDIS = ON // ZCD enabled
#pragma config PLLEN = ON // 4xPLL enabled
#pragma config STVREN = ON // Stack overflow reset enabled
#pragma config BORV = HI // BOR voltage = HI
#pragma config LPBOR = OFF // PLBOR disabled
#pragma config LVP = OFF // LOW voltage program disabled

unsigned int getadc(void);

void main()
{
unsigned int signal;

// IO initialization
OSCCON = 0b01110000 ; // internal osc 32MHz with 4xPLL
ANSELA = 0b00001000; // PORTA AN3 is analog
ANSELC = 0b00000000 ; // PORTC all digital
TRISA = 0b11111111 ; // PORTA all output
TRISC = 0b11111111 ; // PORTC all output

// DAC & OPAMP1,OPAMP2 initialization
DAC1CON0 = 0b10110000; // DAC enable ,OUT1/2 enable
OPA1CON = 0b11010010; // OPAMP1 Enable , DAC-> + , OUT-> -
OPA2CON = 0b11000000; // OPAMP1 Enable , IN+ -> + , IN- -> -

// ADC initialize
ADCON1 = 0b10010000 ; // Right justified , Fosc/2 , Vref = VDD
ADCON0 = 0b00001101 ; // Select AN3 and start ADC
__delay_us(10) ; // Wait after ititialize

while(1) {
signal = getadc();
DAC1CON1 = 128 + 4*((signal >> 2)-128); // *** GAIN x4 ***
__delay_us(10);
}
}

unsigned int getadc(void)
{
unsigned int wk;

GO_nDONE = 1 ; // Stasrt ADC
while(GO_nDONE) {}; // Wait for ADC complete
wk = ADRESH ; // Get ADC H
wk = ( wk << 8 ) | ADRESL ;
return wk ;

}


PIC16F1705は結構使えるのが分かりました。PIC12Fに比べてメモリが豊富でCで普通に書けるのも良いです。
(先週12Fで久しぶりにアセンブラいじりましたが、やっぱり辛い物が有りました。)

次は何をさせてみようか、ちょっと考え中です。

オルゴールは今まで作ったのとあまり変わり映えがしなさそうだし、シグナルジェネレータ昨日のソフトをちょっと直せばできるし、今回のようなラジオ化路線で検波とかチューニングもやらせてみてなんちゃってDSPラジオにするのも面白そうですね。


2015.01.11 Sun l PICマイコン l コメント (2) l top

コメント

No title
ezekiel1様。こんちには。

3年ほど前から練馬区に住んでいまして、ここで一番強力なAM放送がAFNです。私も越してきてからFENではなくて今はAFNだと初めて知りました。90年代にFENからAFNになったということですね。70~80年代位の聞き覚えのある曲もかかるので懐かしくて良く聞いています。

立ち木からというのはさすがにないみたいですが(^^)。
適当なゲルマラジオだとバリコン回しても全域で他の局にかぶさるくらい強力ではあります。


2015.01.18 Sun l 見習職人. URL l 編集
No title
AFNと聞いて、???
検索して、在日米軍向けの放送でしたか

私はFENしか知りません、当時独特の言い回しで放送していました。
それとVOAと言うUSAのも有りましたね、沖縄に極東の放送局が有って
メガワットの出力で、立ち木から声が出ているとかの噂話も有りました。

すみません、あまり関係ないことでしたね。
2015.01.13 Tue l ezekiel1. URL l 編集

コメントの投稿












上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。