www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmel goes USB


Autor: Fred51 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe folgenden Link gefunden:

http://cesko.host.sk/

Mit Atmel emuliertes USB

Nun stellt sich mir die Frage, ob es so etwas auch PIC basierend gibt
(Software emuliert, nicht hardwarebasierend).
Google spuckt nichts aus

Im Dankeschön voraus

Autor: sparks (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie wäre es, den Quellcode runterzuladen und auf PIC zu portieren? Oder
suchst Du mehr die fertige Lösung? Wirst wohl in dem Fall nicht ums
selbermachen rumkommen.

Autor: Fred51 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
10MIPS schaffen die PIC18 aber auch.

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, dann wird es kein Problem sein.
Allerdings wird das Umschreiben nicht einfach, da die Befehle
warscheinlich Timing relevant sind und beim PIC die Befehle andere
Ausführungszeiten haben...

Autor: Fred51 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auf der Seite wird auch ein USB STICK beschriebn
Woher bekomme ich so einen Stecker????? Bei RS und CONRAD gibts ihn
nicht

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jörg (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Fred51

Wenn du die Stecker meinst, die an jedem gängigen USB Stick dran sind,
dann hat Reichelt die mittlerweile ins Programm aufgenommen:
http://www.reichelt.de/inhalt.html?SID=14QWrdG9S4A...
http://www.reichelt.de/inhalt.html?SID=14QWrdG9S4A...

Gruß und Frohe Weihnachten
Thorsten

Autor: Axos (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Markus:
Wer sagt denn, dass dein USB die vollen 1,5 Mbit/s ausnutzen muss ?
du kannst ihn auch mit 700kb betreiben. (denk ich mal)
wiso musses denn umbedingt softwaremässig sein ?
schau dir mal den chip an:  FT8U245BM
(http://www.myplace.nu/mp3/files/ds245b10.pdf)
Der hat nen kompletten USB Stack, und ist superleicht paralell
anzusteuern !

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein nur 6MIPS PIC hat wohl kaum eine Chance. Für den USB wird ja der
AT90S2313 schon mit 12MHz übertaktet (10MHz erlaubt), damits gerade so
klappt.

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.


Peter

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Bernd: Das dürfte Deine Frage beantworten:
http://www.zft.de/cygnal1.htm

Gruß
Andi

Autor: Johannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nö, nicht bei allen. Moderne Hersteller wie AD oder Cylabs haben
1-Takt-8051er im Programm mit bis zu 100 Mips. Da kommt kein AVR oder
PIC mit.

Autor: martin m. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :-)

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die "instruction cycle time" bei einem PIC16F84 ist 4/Fosc, somit
benötigt ein Befehl auf diesem z. B. mit 4 MHz getakteten PIC 1µs.

Autor: Matthes (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Andi,

das C8051F300 auf DIL-14 Teil ist ja echt geil.

Weißt Du, was sowas kostet ?


Peter

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ca. 5€ bei Digikey

Autor: Fred51 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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???

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Fred51:
Ein 16F84 mit 6MIPS ist dafür zu langsam. Da kann ich mir nicht
vorstellen, daß ein 16F628 mit 5MIPS schnell genug sein soll.

Markus

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
?? in welcher Prog Sprache ist das Prog. "AVR to USB Tester"
geschrieben ( PC- Programmiersprache )
kann das jemand aufgrund der Oberfläche erkennen ??

Michael

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.