[電子工作] 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。
すっかり影の薄い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。
コメント 0