ATmega328p kullanarak Klavye olarak görünen bir V-USB projesi üzerinde çalışıyorum. USB kısmı harika çalışıyor (bu benim ilk V-USB projem değil), ancak V-USB yığınını ile başlattıktan sonra usbInit()
SD kart kütüphanesine yapılan tüm çağrılar başarısız oluyor. Daha önce aynı işlevleri çağırırsam usbInit()
, her şey mükemmel çalışır.
Diavolino adlı bir Arduino klonu kullanıyorum, ancak Arduino / kablolama çerçevesi yok. USB'yi dijital I / O 2 ve 3'e ve SD kartı 10-13'e (dahili SPI hatları) bağlıyorum.
SD kart kütüphanesine baktım ve başka herhangi bir kesinti veya kayıt kullanarak hiçbir iz bulamadım SPxx
. Ayrıca grep
V-USB kodunu da kullandım, ancak SPxx
kayıtlara bile dokunmuyor .
Sorunun ilk işareti, SD karta erişmesi gerektiğinde cihazın bağlantısının kesilmesiydi. Daha sonra tüm SD kart kullanma döngülerini koydum usbPoll()
ve wdt_reset()
çağırdım ve yazı olması durumunda, kartın son iki baytı (CRC-16) gönderdikten sonra karttan onay beklediğini buldum.
Kullandığım SD kart kütüphanesi sd_raw
Roland Riegel.