ATmega328pを使用してキーボードとして表示されるV-USBプロジェクトに取り組んでいます。USB部分はうまく機能しています(最初のV-USBプロジェクトではありません)が、でV-USBスタックを開始した後usbInit()
、SDカードライブラリへのすべての呼び出しが失敗します。以前usbInit()
に同じ関数を呼び出した場合、すべてが完全に機能します。
Diavolinoと呼ばれるArduinoクローンを使用していますが、Arduino / wiringフレームワークは使用していません。USBをデジタルI / O 2および3に接続し、SDカードを10-13(内蔵SPIライン)に接続しています。
SDカードライブラリを調べたところ、以外の割り込みまたはレジスタを使用してその兆候は見つかりませんでしたSPxx
。私もgrep
V-USBコードを使いましたが、SPxx
レジスターにさえ触れません。
問題の最初の兆候は、SDカードにアクセスすることになっているときにデバイスが切断されたときでした。それから私は置きますusbPoll()
wdt_reset()
、すべてのSDカード処理ループて呼び出しますが、書き込みの場合、カードは最後の2バイト(CRC-16)を送信した後、カードからの確認応答を永久に待機します。
私が使用するSDカードライブラリはsd_raw
、Roland Riegelによるものです。