Atmel goes USB

Gast #133645
Lesenswert?

Habe noch nie mit einem Atmel gearbeitet.
Nur auf PICS.

Gibt es ein Program, um den Code zu konvertieren?

Bin nur durch Zufall auf die Seite gelangt



Würde aber mehr die fertige Lösung bevorzugen
Gast #133646
Lesenswert?

Ich kenne mich mit PICs nicht aus, aber da ganze USB Timing ist sehr
kritisch. Ich denke nicht, dass PICs schnell genug sind. Wenn ich mich
recht erinnere, laufen die PICs mit 1/3 oder 1/4 des Quarztaktes. Der
Takt müsste dann etwa 20MHz aufwärts betragen
Gast #133650
Lesenswert?

USB Stecker und Buchsen sollte man problemlos bei Segor bekommen.

Notfalls muss man halt ein Kabel recyceln ...

Der "Igor Plug" ist kein "USB Stick", sondern ein
Infrarot-Empfänger.
Gast #133651
Lesenswert?

@Benedikt: Manche PICs gibts auch mit 40MHz, also 10MIPS. Die 10MIPS
müssen aber nicht einfach nur reichen, sondern auch ein Vielfaches von
1,5MHz sein (USB Lowspeed = 1,5MBit/s). Also entweder 9MIPS oder
10,5MHz (leicht übertakten). Ob man die PICs auch mit 48MHz übertakten
weiß ich nicht.

@Fred51: Was meinst Du mit "USB-Stick"? USB Buchsen und Stecker gibts
auch bei Conrad.

Markus
Gast #133652
Lesenswert?

Hallo, zusammen.

Das mit den MIPS ist eine werbeträchtige Sache.

Was bedeutet MIPS eigentlich?

Million Instructions Per Second. Also, wieviele Millionen INSTRUKTIONEN
pro Sekunde durch den Core durchgeschleust werden.

Nun, bei einer RISC-Architektur müssen um Einiges mehr an Instruktionen
durchgeschleust werden, um zu demselben Ergebnis zu gelangen, als bei
einer (z. B.) CISC-Architektur.

Somit ist die blosse Betrachtung der MIPS reine Augenwischerei.

Mittlerweile haben einige Hersteller das erkannt, und bieten uCs an,
welche auf einer Mischung aus RISC und CISC basieren. Die sind wirklich
schnell.

Nur so ein Gedanke.
Jörg.
Gast #133653
Lesenswert?

Gast #133655
Lesenswert?

@Axos:
Nein, man kann USB nicht mit weniger als 1,5MBit/s betreiben. Die
Nettodatenrate kann natürlich kleiner sein, aber die Bruttorate muß
1,5MBit/s (oder 12 oder 480MBit/s) betragen.

Markus
Gast #133656
Lesenswert?

@Jörg:
MIPS bedeutet bekanntlich Meaningless Indication of Processor Speed.

Aber es geht hier garnicht so wirklich um hohe Geschwindigkeit, sondern
darum, daß man a) die Befehlsdauer sehr genau vorhersagen kann und b)
genügend Zeit für die Ein-/Ausgabe der einzelnen Bits bleibt.

Ersteres ist bei einem AVR (und wahrscheinlich auch bei einem PIC)
relativ einfach, bei einer modernen CPU mit Cache und Branch Prediction
aber eher aussichtslos.

Natürlich sind MIPS-Werte mit Vorsicht zu genießen, aber ich denke
nicht, daß sich AVR und PIC hier so grundlegend unterscheiden sollten.
Igor schreibt selbst, daß ein PIC mit 6MIPS dafür zu langsam ist.

Markus
Gast #133658
Lesenswert?

Ein 2313 ist hier eigentlich auch nicht die CPU der Wahl, sondern eher
der Mega8. Der ist bei 12MHz auch nicht übertaktet.

Die Fragen hier wären aber eher:
- Gibt es eine CPU, die das mit 6MIPS (4 Takte pro Bit) schaffen kann?
CPUs mit eingebautem USB gelten dabei natürlich nicht.
- Kann man die 24MIPS des C8051F300 sinnvoll ausnutzen? Vermutlich
nicht, das Timing muß ja trotzdem noch stimmen und seinen eigenen Code
in den bestehenden Code "einzuweben" ist wohl nicht nur ein bischen
häßlich.

Markus
Gast #133659
Lesenswert?

@peter dannegger :
"Dagegen dürfte es ein 8051 mit Sicherheit schaffen, z.B. der
C8051F300. Mit einem 24MHz Quarz hat der dann 24MIPS und ist noch nicht
mal übertaktet."

Wird bei den xx51'ern nicht der Takt vorher heruntergeteilt?
Gast #133662
Lesenswert?

wegen den mistverständnissen,

ein pic läuft nicht mit 1/4 des quartztakts, unglückliche übersetzungen
der struktur haben dieses mysterium heraufbeschworen.
zwar ist es richtig das ein single instruction befehl bis zu 4 takte
dauern kann, aber es wird geschwindigkeitsfördernderweise trotzdem brav
mit jedem takt ein befehl abgearbeitet. d.h. in 4 taktzyklen auch 4
befehle.
auf der microchip seite hab ich mal ein superprima gemachtes animiertes
tutorial gesehn, das die vorteile der verschiedenen strukturen
hervorhebt.

und damits nicht ganz OT is, es kommt in den nächsten wochen eine
18Fxxxx generation, die USB hardwaremäßig unterstützt.(gabs bisher nur
bei den nonflash 18Cxxxx-typen)

grüße, &
ein schönes fest für alle die sich ein solches wünschen :-)
Gast #133664
Lesenswert?

also der PIC brauch für den ersten Befehl 4 cycle (bei den meisten
befehlen) aber für den nächsten brauch er noch einen cycle mehr. Dh
brauch der PIC 3+N cyclen für N Befehle, aber dabei ausgenommen sind
Sprungbefehle, bei diesen wird erst die Pipeline gelehrt dh gewartet
das alle befehle fertigabgearbeitet sind und beginnt dann nach dem
Sprung wieder neu.

mfg und schöne feiertage

Matthes
Gast #133667
Lesenswert?

Der PIC16F628-20a kann ja mit 20Mhz getaktet werden

Das ganze durch 4  sind dann etwa 5 MIPS also für lowspeed vollkommen
ausreichend. Also mit der Hardware müsste es funktionieren, bleibt nur
mehr die Software. Gibt es Programme um den AVR Quelltext in "PIC" zu
übersetzen???
Gast #133668
Lesenswert?

@Fred51
Liest du eigentlich auch was man dir schreibt ?
Das ganze ist Timing kritsch, der Takt muss ein Vielfaches der 1,5MBit
sein (1,5->5 ist nicht gerade ein Vielfaches....)
Außerdem kan man es nicht 1:1 übersetzen, denn die PIC Befehle haben
andere Ausführungszeiten als die AVR Befehle.
Und das mit dem Übersetzen haut deshalb nicht hin. Für sowas gibt es
deshalb C, das kann man mehr oder weniger gut für jeden Controller
kompliieren.
Gast #133670
Lesenswert?

Welchen Sinn soll es eigentlich machen, das USB-Protokol in SW
nachzubilden? Wenn die Komunikation dann den Prozessor zu 100%
beansprucht, läuft doch nicht mehr.

Bei kommerziellen Projekten mag die Ersparniss beim ein oder anderen
Projekt vernünfig erscheinen, aber im privaten bereicht kann man es
sich doch leichter machen. Zumal das notwendige Know-How nicht
vorhanden ist. Die Implementierung einer fertigen Lösung kostet nur ein
paar Euro, und spart Stunden, Tage, Wochen an Entwicklungszeit.
Gast #133671
Lesenswert?

Für viele Anwendungen (etwa Fernbedienungsempfänger) braucht man nicht
viel Rechenzeit. So ein AVR Mega8 kostet um die 3€, für einen extra
FT245 zahlt man 6€ - und den Microcontroller braucht man trotzdem. Die
Igor-Lösung kann man mal geschwind auf eine Lochrasterplatine aufbauen,
die meisten USB-Chips gibts dagegen nur im SMD-Gehäuse.

Natürlich ist das Igor-USB nicht die Lösung für alle USB-Probleme
dieser Welt, aber man kann damit schon einige typische Anwendungsfälle
lösen.

Markus
Gast #133673
Lesenswert?

Normaler weise verwenden Programme die mit 1,5MBit (Low-Speed) arbeiten
die HID (Human Interface Device) Treiber, die schon in Windows
enthalten sind. Soweit ich mal gelesen haben, kann man die in jeder
Programmiersprache ansprechen. Sogar von Visual Basic aus.
Gast #133674
Lesenswert?

@Michael:
Die Oberfläche ist wohl in Pascal geschrieben, der Treiber in C und das
AVR-Programm in Assembler.

Igor beschreibt aber, wie man auf die DLLs zugreift, also kann man das
praktisch in jeder Sprache ansprechen.

Markus

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren