Da ich mir Sorgen um die Zukunft von AVR mache, habe ich mich mit Software USB für ARM cortex-M0 / M0 + befasst, die V-USB ähnelt. Ich habe nur einen LUFA-Port gefunden, der für MCUs mit interner USB-Hardware vorgesehen ist.
Jetzt weiß ich, dass es Cortex-M0 / M0 + -Controller mit USB-Hardware gibt, obwohl ich die kleinste Pin-Anzahl verwenden möchte, die ich möglicherweise kann und die normalerweise keine USB-Hardware hat. Ich weiß, dass einige dieser winzigen Controller über USB-Hardware verfügen, aber sie befinden sich normalerweise in einem WLCSP-Paket, das einen kleinen Abstand zwischen den Pads aufweist, mit denen ich nicht arbeiten kann. Deshalb suche ich eine Software-Implementierung.
Gibt es eine Software-Implementierung von USB für ARM-M0 / M0 +?
Hinweis: Mit Software meine ich Firmware, aber es scheint, dass nur Code-Implementierungen von Hardware-Peripheriegeräten normalerweise von Software bezeichnet werden.
Hinweis 2: Bitte schlagen Sie keine spezifischen Produkte vor. Die Frage betrifft nicht die Unfähigkeit, kleine Controller mit USB zu finden, sondern das Fehlen einer Software-Implementierung von USB für ARM, ähnlich wie bei V-USB.
quelle
Antworten:
Hier ist eine neue M0 + -Implementierung, die mit V-USB https://github.com/xobs/grainuum vergleichbar ist
Interessantes 33c3-Video, das auch erklärt: https://www.youtube.com/watch?v=G_tdJ9Lu7Zk
Immer noch ziemlich frisch und wahrscheinlich nicht so stabil wie V-USB, klingt aber vielversprechend. Neugierig, wie wichtig die 2-stufige Pipeline des M0 + wirklich ist, wäre schön, dies auf M0 zu implementieren.
Klingt nicht so, als wäre er so eng, dass er sich mit der dreistufigen Pipeline keinen weiteren Zyklus mehr leisten kann. Ich denke, das größte Problem wird das Fehlen von Single-Cycle-E / A-Ports für M0 sein, was eine optionale Funktion des M0 + ist. Aber er lässt es so klingen, als wäre die Pipeline der wahre Vorteil von M0 +.
quelle
Es ist nicht wirklich machbar. Denn heute werden viele Mikrocontroller für Betriebsbereiche von 2,5 V bis 1,8 V hergestellt. Die Software-Implementierung durch einfaches Umschalten der E / A wird den Hochgeschwindigkeits-Differenzialbetrieb ohne eine dedizierte PHY auf Silizium (mit speziellen Tranceivern) nicht bewältigen. V-USB funktionierte mit AVR, da es mit Mikrocontrollern mit 5 V verwendet wurde. Es gibt nicht viele von ihnen auf modernen Designs.
quelle