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 grepV-USB kodunu da kullandım, ancak SPxxkayı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_rawRoland Riegel.