MPSSE modunda (UART'ı unutma), MCP2515 ve MCP2551'de FT2232H kullanarak bir USB / CAN arayüzü yaptım. MCP2515 burada kaçırdığınız anahtar parça. Ne yaptığını iyi çalış. Çerçeveleme, ACK'lar, sağlama toplamı oluşturma ve doğrulama, mesaj filtreleme ve standart olarak bir CAN düğümünün yapması gereken daha az belirgin şeyler yapan gerçek CAN denetleyicisidir. Bir dinleyici istiyorsanız, MCP2515'in veri yolunda aktarımı garanti etmeyen bir dinleme modu vardır. MCP2551, RS-232 için MAX232 veya RS-485 için ADM485'e benzeyen basit bir fiziksel katman adaptörüdür.
FTDI MPSSE teknolojisinin kesintiler için hiçbir desteği olmadığı için bu mimari mükemmel olmaktan çok uzak (sadece sahnelerin arkasında toplu USB aktarımları kullandığına inanıyorum), bu yüzden denetleyiciyi yeni mesajlar için sık sık yoklamak zorundayım. Bu, USB ana bilgisayar denetleyicisine çok yük bindirir ancak yine de hiçbir iletinin kaybolmadığını garanti etmez (MCP2515, "taşma modunu" etkinleştirirseniz dahili olarak en fazla 2 alınan iletiyi saklayabilir, yalnızca seçmediyseniz bir tane). Çok daha iyi bir çözüm, yerleşik CAN ve STM32F105 gibi USB çevre birimleri ile uygun bir mikrodenetleyici olacaktır (103 aynı anda USB ve CAN kullanamaz). Tam olarak bu fikrin çalışan bir uygulaması için bu projeye bakın . Stevenh tarafından önerilen LPC18xx de işe yarayacaktır, ancak LPC17xx muhtemelen daha ucuz ve daha kolay bulunur.