Nur Software USB-Implementierung für ARM-M0 / M0 +?

7

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.

Funkyguy
quelle
1
Bitte hören Sie auf, mit Links zu kommentieren, die bestimmte Produkte empfehlen. Diese Frage ist nicht darüber und es ist nicht Thema für diesen
Stapelaustausch
1
@pipe sie sind nicht ARM. Lesen Sie die Frage
Funkyguy
3
@Funkyguy Ich habe deine Frage gelesen. Alles in der Tat. Nicht nur der Titel. Sie haben ein Problem, das Sie auf eine Weise lösen möchten, die nicht die rationalste ist. Erwarten Sie Kommentare und Antworten, um das Grundproblem zu lösen.
Pipe
1
Sie suchen so etwas wie LemcUSB . GNU GPL 3.0 ist in Ordnung? Ich kann nächste Frage über die Portierung von Micronucleus nach ARM erwarten :)
Kimstik

Antworten:

6

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 +.

INL
quelle
-2

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.

Jairo Andres Velasco Romero
quelle
2
Für V-USB musste die MCU mit 3,3 V betrieben werden, oder es musste ein Level-Shifter auf Basis einer Zenerdiode verwendet werden, wenn sie mit 5 V betrieben wurde.
Tom Carpenter
Ja, Sie haben Recht, und ich habe bestätigt, dass Cortex M0 mit 3,3 V betrieben wird. Für diese Modelle ist das also noch durchaus machbar. Jemand kann V-USB an ARM anschließen.
Jairo Andres Velasco Romero