上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--.--.-- -- l スポンサー広告 l top
音が小さいのでハードの方を改良し、オーディオアンプを追加しました。
基板の部品配置も良くなかったので、新規作り直しにしています。


回路図は以下の通りです。低電圧1.2WオーディオアンプIC HT82V739を使っています。


単体での写真は以下の通りです。

裏側はこうです。



「スポンサードリンク」

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



ここで3.3V電流が不足することが分かりましたので、前回記事のようにichigojamの方をパワーアップしました。

ソフトも方も手直ししました。(※#include xc.hはxc.h を< >で囲んでください。)

どうもDAC->OP-AMP出力がichigojamからのSPK信号に引っ張られる動きをしていたのを直しました。

PIC16F1705のDAC出力は、ENABLEにしておくと双方向で機能するみたい(?)で、
最初は DAC1CON0 = 0b10110000; // DAC enable ,OUT1/2 enable としていたのを、
DAC1CON0 = 0b10000000; // DAC enable ,OUT1/2 disableとすることで安定しました。



#include xc.h
#include "math.h"

#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 = LO // BOR voltage = HI
#pragma config LPBOR = OFF // PLBOR disabled
#pragma config LVP = OFF // LOW voltage program disabled

unsigned int sin0[256];

unsigned int wave0[] = {
112,123,133,151,170,199,215,220,215,200,177,155,130,117,117,120,122,127,
125,123,120,110,105,86,60,43,52,63,83,109,140,166,160,114,
80,45,19,4,9,26,46,78,100,114
};


void main()
{
int i,t;

OSCCON = 0b01110000 ; // internal osc 32MHz with 4xPLL
ANSELA = 0b00000000 ; // PORTA all digital
ANSELC = 0b00000100 ; // PORTC all RC2 analog
TRISA = 0b00100000 ; // PORTA AN5 = INPUT
TRISC = 0b00111000 ; // PORTC 3-5 input

// DAC & OPAMP1 initialization
DAC1CON0 = 0b10000000; // DAC enable ,OUT1/2 disable
OPA1CON = 0b10010010; // OPAMP1 Enable , DAC-> + , OUT-> -

//while(1) {
// PORTCbits.RC2 = PORTAbits.RA5;

//}

for(i=0;i<256;i++) {
sin0[i] =(int)(128*sin(3.1415926*2*(float)i/254)+128);
// PORTCbits.RC1= 1-PORTCbits.RC1;
}

while(1) {
while (PORTAbits.RA5==0) {};

for (i=0;i<255;i++) {
DAC1CON1 =sin0[i];
}
while (PORTAbits.RA5==1) {};
}

}


このソフトで、ichigojamの矩形波が正弦波に変換されて出力されます。音は圧電ブザーそのままよりはかなり良いですが、まだ単調ですね。

後は波形テーブルを作ってやれば、色々な音色に変換できるはずです。さらにエンベロープをつければより楽器らしくなるはずですが、そのためには音符の切れ目をどう判断するか、が問題ですね。

ここまででハードは出来たと思いますので、この後ソフトで色々試したいと思います。


2015.09.22 Tue l 未分類 l コメント (0) l top

コメント

コメントの投稿












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