SSブログ

[電子工作] ATxmega (E series)でSD Card WAVE Playerの実験(予告) - SPI Master with DMA - [電子工作]

実験成功したので記事化予告です。

すっかり影の薄いATxmegaの更に影の薄いEシリーズにChan氏のFatFsを組み込んでDMA化しました。Eシリーズは(E)DMAとDACを積んでいて、同等のAシリーズ(32A4)よりもちょいと安くてちょいと小さいのが魅力です(^_^;)
ペリフェラルについて微妙にAシリーズとは互換が無いものがあるので注意が必要です(^_^;)
(Timer4/5とかEDMAとか)

レシピ:
 マイコン : ATxmega32E5
  TQFP-32pinと小型でDACが載っているAVR XMEGAシリーズのマイコンです。
  RSコンポーネントやDigiKeyで450〜500円くらい。
  秋月にリクエストして取り扱ってもらいましょう!(切実)

 クロック : 12.8MHz
  特に理由は無し…
  たぶん8MHzでも間に合うんじゃないかな。

 SDカードからのRead
  Chan氏のFatFs(R0.12b)を最小構成,Read Onlyで組み込んでDMA化します。
  素のSPIはDMAでMaster動作できないので、USARTのMaster SPI modeを使います。
  EDMAを2 Standard Channel構成(CH0:Rx, CH2:Tx)で使用します。
  256バイト超のreadを256+残りに分ければPeripheral channelでもいいかも。

 DAC
  タイマでサンプリングレート毎に割込みを生成し、割込み処理でDACにデータを書き出します。
  アンプ(HT82V739)を通してスピーカーに出力しました。

結果:
 12.8MHzクロック (SPIクロック6.4MHz)で、読み出し約570kbyte/sec。
 44.1kHz/16bit/StereoのWAVファイルをリアルタイムで再生成功しました。
 写真はこの時のread の観測波形です。
  =>H期間がDMAのセットアップを含む1024バイトのread。
    パルスの周期は44.1kHz x 256サンプル = 約6ms。
sdread.jpg
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。