einen schönen freitag morgen, ich möchte die usb schnittstelle des at91sam7x als verbindung zu meinem pc verwenden. fullspeed wäre mein ziel, ein virtueller com port tuts aber auch (muss aber usb sein). leider tue ich mich sehr schwer damit auch nur einen einstieg zu finden. die dokumentationen (usb in a nutshell, atmel doku, div. foren & pages) hab ich durch, weis aber immer noch nicht wie ich die usb/ udp register zu beschreiben habe. auch habe ich versuch mich in das usb framework von atmel ein zulesen aber auch hiermit komme ich nicht klar. gibt es einen beispiel code oder ein usb programm das die grundlegenden eigenschaften hat & funktioniert? danke
hallo constantin, du findest unter folgendem link ein beispiel-programm für einen seriell-usb umsetzer: http://www.at91.com/package_patch_driver/at91sam7s256_iar/at91sam7s256_iar.zip und daraus das beispiel AT91SAM7S-USART_USB_SAM7S gruss gerhard
leider kann ich iar compalierte programme nicht lesen bzw in keil umsetzen; mir fehlt dazu die programmiererfahrung. trozdem danke für die antwort und den link.
hallo constantin, dann würde ich vorschlagen du siehst dir mal das beispeil-projekt von www.freertos.org an: FreeRTOS\Demo\lwIP_Demo_Rowley_ARM7 Dieses examples setzt gcc voraus (wird meines wissens auch bei keil verwendet). bei diesem example ist im gegensatz zum atmel code die usb-schnittstelle interrupt basierend. desweiteren hast du gleich ein einfaches betriebssystem zur verfügung. gruss gerhard
hi gerhard, da fehlen mir drei header files: /* Scheduler includes. */ #include "FreeRTOS.h" #include "task.h" #include "queue.h" die find ich grad in dem zipfile (FreeRTOSV4.1.3.exe) nicht.
hallo, in der .zip datei sind sie enthelnte und zwar im verzeichnis: FreeRTOS\Source\include\ gruss gerhard
jupp, hab ich gefunden. habs übersehen. das programm läuft aber nicht wegen jeder menge fehlern( zB C25, C42 usw) bzw warnungen.
also mit dem beispiel von iar mach ich nicht weiter; ist mir zu undurchsichtig. habe auf der atmel seite nach langem suchen nach dem passenden endlich etwas vielversprechendes gefunden... http://www.atmel.com/dyn/products/product_card.asp?family_id=605&family_name=AT91SAM+Smart+ARM%2Dbased+Microcontrollers&part_id=3940 ist der link zur usb programmierung des SAM7SE. Das beispiel muss natürlich noch auf meinen sam7X abgeändert werden aber das compaliert (nach der änderung) schon fehlerfrei im KEIL. muss jetzt nur noch den richtigen treiber für meinen pc finden... hoffe ich =)
hab das programm soweit auf keil fehlerfrei laufen, mein pc erkennt aber leider nicht das "neue" usb device. laut programm sollte es als virtueller com port am pc sofort nach start des programms erscheinen und auch so genutzt werden können. die usb-treiber dafür sollten ab win98 schon aufgespielt sein. sicherheitshalber hatte ich aber noch die aktuellsten treiber (atmusb6124.inf und -.sys) zusätzlich ein kopiert. im gerätemanager wird es aber weiterhin als fehlerhaft installiertes usb device amarkiert (mit und ohne (mit dem programm laufendem) eval.-board). ist noch ein wenig seltsam, habt ihr noch tipps für mich? mein pc: win2000 mit SP4, P4 (3,2GHz)
hallo constantin, wenn du das framework verwendest solltest du vielleicht mal die richtige.inf datei verwenden (6119.inf). gruss gerhard
da zu diesem beispiel die dokumentation fehlt bin ich von basicUSB-programm ausgegangen und dabei ist die 6124.inf/-.sys nötig. wusste nicht das dies beispiel auf dem framework basiert bzw. basieren soll; so weit gut, ich hatte in meinem inf verzeichnis auch noch die 6119.inf die du meinst aber auch mit dieser kann ich das device nicht installieren.
hallo, ich kann das framework nicht erzeugen da ich nicht über die entspr. tools verfüge. dem beispiel liegen aber binary dateien für alle at91samx-ek bei(verzeichnis: USBFramework-Core1.0+CDC1.0.zip\AT91 USB Framework - Core 1.0 + CDC 1.0\bin\). wenn ich das für mich passende (AT91SAM7SEK_CDC.bin) in mein board lade (mittels sam-ba) und danach starte erkennt windows das board und verlangt nach einer .inf datei und danach nach dem passenden treiber (usbser.sys, ist der windoof standard treiber). danach wird das board im geräte manager unter den anschlüssen gelistet. ich würde dir daher empfehlen mal mit dem fertigen binary zu beginnen. betreffend doku: in doc6269.pdf findest du alle notw. infos. gruss gerhard
hi, also es war ein größeres problem; was mir bisher nicht aufgefallen war, ist dass das board selbst (nicht der JTAG) nicht vom gerätemanager als usb device erkannt worden war. kann nur vermuten das es am "swinging led" programm lag welches man beim "getting started" über samba ins flash spielt. aber nur ne vermutung. nun auch egal das das board mittels des programms (geändertes sam7SE prog) im flash und mit den treibern atm6124 endlich erkannt wird... juhu nun die nächste frage: gibt es ein passendes terminalprogramm dafür? soll heissen auf meinem pc schreib ich werte in eine maske, die sendet diese an den controller und zeigt mir an welche daten der controller für mich am PC bereitstellt.
und welches usb "packet" hast du jetzt eingesetzt? das frameweork oder basicusb? zu deiner frage: wenn dein board sich richtig anmeldet, dann simuliert es jetzt eine com schnittstelle, an welceh du mittels terminal programm daten senden bzw empfangen kannst. gruss gerhard
ich nutze das basicUSB "paket"; mein board meldet sich einwandfrei als usb device (nicht als com port) an und ich kann auch ohne weiteres die AT91xxxBasicUSB.exe starten. bei der werden doch so weit wie ichs verstehe nur daten hinundher gesendet. wenn du diese exe meinst wie kann ich da daten gezielt senden? ist doch ne endlos funktion,oder? wo hol ich die daten am pc ab? wohin muss ich daten schreiben die ich an den controller senden will?
hallo, ich habe die beiden usb examples vertauscht. 1) AT91SAM7S64-BasicUSART_USB-IAR4_30A-1_21: simuliert eine com schnittstelle und setzt den windows standard treiber usbser.sys ein 2) AT91SAM7S64-BasicUSB-IAR4_30A-1_21: bei diesem projekt wird eine com schnittstelle simuliert wenn du atm6124ser.inf einsetzt. wenn du die atm6124.inf einsetzt dann wird eine spezieller atmel treiber (atm6124.sys) installier tund du kannst aus deiner appliation über die usblibrary.dll auf die usb schnittstelle zugriefen. die ganze info dazu findest du im dokument doc6213.pdf (lesen bildet!). um die sache ein bischen zu erschweren würde ich dir aber von diesen beiden examples abraten und dir das neue framework ans herz legen. grund: 1) atmel hat sich von den beiden examples schon verabschiedet (sind auf der atmel homepage nicht mehr zu finden) 2) die beispiele sind device-seitig (am at91sam7) nicht interrupt-basierend sondern die usb schnittstelle wird gepollt. wenn du eine ernsthafte datenrate auf der usb schnittstelle erreichen möchtest und der at91sam7 außer ubs auch noch was anderes zu tun hat dann ist eine interrupt basierende lösung (wie das framework ein ist) notwendig. 3) alle lösungen, die auf usbser.sys aufbauen kannst du vergessen sobald du höhere datenraten erreichen möchtest. such im google mal nach dem treiber und du wirst wissen warum. gruss gerhard
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.