CS8416のソフトモード その2
前回うまく動作しなかったCS8416ソフトモードの再度挑戦してみましたが、結局CS8416のレジスターの読み取りがうまくいきませんでした。
ただ今回原因が大体分かってきました。
SPIフォーマットはコンパイラーのライブラリーを利用していますが、これがうまく使えないようなので、SPIフォーマットを自作すればうまくいくのではないかと思っています。I2Cでやり直そうかとも考えましたが、今回はSPIでなんとか動かすことにしました。
SPIフォーマットは電子ボリュームの時に一度作っているので、それほど手間がかからないと思います。
//-----------------------------------------------------------------
// CS8416ソフトモード用
// 使用PIC PIC16F886: 8.0MHz
//-------------------------------------------------------------------
#include "16F886.H"
#fuses INTRC_IO,NOWDT,NOPROTECT,PUT,BROWNOUT,MCLR,NOLVP
#use delay(clock=8000000)
// 関数
// 変数
static int addres;
static int reg_data;
static int read_data1;
void main(void)
{
setup_oscillator(OSC_8MHZ);
// MSSP初期設定 SPIモード
setup_spi(SPI_MASTER | SPI_H_TO_L|SPI_CLK_DIV_16 );
//ポート設定
setup_adc(NO_ANALOGS);
SET_TRIS_A(0x00);
SET_TRIS_B(0x00);
SET_TRIS_C(0x10);
output_high(PIN_a0); // rest
output_high(PIN_a1); // cs
delay_ms(400);
// CS8416 RESET
output_low(PIN_a0); // rest
delay_ms(2);
output_high(PIN_a0); // rest
// reg_set start
addres = 0x02;
reg_data = 0x40;
output_low(PIN_a1); // cs
spi_write(0x20);
spi_write(addres);
spi_write(reg_data);
output_high(PIN_a1);// cs
addres = 0x04;
reg_data = 0x80;
output_low(PIN_a1); // cs
spi_write(0x20);
spi_write(addres);
spi_write(reg_data);
output_high(PIN_a1); // cs
addres = 0x05;
reg_data = 0x88;
output_low(PIN_a1); // cs
spi_write(0x20);
spi_write(addres);
spi_write(reg_data);
output_high(PIN_a1); // cs
// spi read test
while(1)
{
output_low(PIN_a1); // cs
spi_write(0x20);
spi_write(0x05);
output_high(PIN_a1); // cs
delay_us(1);
output_low(PIN_a1); // cs
spi_write(0x21);
read_data1 = spi_read(0xff);
output_high(PIN_a1); // cs
write_eeprom(0x0a,read_data1);
}
}
レジスター読み取り時の波形です。
A0:クロック、A1:SDI(CS8416->PIC)、A2:SDO(PIC -> CS8416)、A3:/CS 、A4:RESET
次回はうまく出来上がりそうなので、ソフトモード対応DAIのプリント基板の試作を行う事にしました。
« ビス・スプリングワッシャ・ナット・スペーサーのセット | トップページ | PCM2706 でUSB->I2S »
「オーディオ機器の自作」カテゴリの記事
- LM317・LM337を使った可変電源基板の出品を開始しました。(2018.04.14)
- DAC用ケースのパネル(2018.04.07)
- ケースのフロント・リアパネルをプリント基板で。(2018.04.01)
- I2S信号 モノラル再生(2018.02.25)
- 電動ボリュームはほぼ完成(2018.02.03)
トラックバック
この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/511109/47896807
この記事へのトラックバック一覧です: CS8416のソフトモード その2:
コメント