Ich habe mir hier im Shop das ICswift SAM7X256 gekauft und wollte nun per USB & SAM-BA darauf zugreifen. Allerdings zeigt mir mein PC beim Anstöpseln nur ein "USB-Gerät wurde nicht erkannt". Die Platine an sich scheint zu funktionieren (Reaktion auf Reset-Taster, LED leuchtet), aber ich bekomm eben per USB keine Verbindung. Btw. ist die Doku von der Platine eher schlecht, keine Beschriftung auf der Platine (ok, Platz) und auch keine Erklärung der einzelnen Jumper im Datenblatt, zudem hab ich 2 Jumper die dort gar nicht erwähnt werden.
hallo, sam-ba wird voraussichtlich bei deinem at91sam7x nicht aktiv sein. um samb-ba zu aktivieren musst du entweder den den kompletten chip (mittels erase pin) oder gpnvm2 löschen. gruss gerhard
Hallo Reinhard, das Verhalten nach anstöpseln an USB ist ja davon bestimmt, was für eine firmware dann auf dem SAM läuft. Beim frisch gelieferten soll das ja die Test-Firmware zur Funktionsüberprüfung sein. Ich denke, dass die Testsoftware nur den Ethernet-Port (und die LEDs) bedient und den USB Teil uninitialisiert lässt (CAN???)... Ich habe den ICSwift heute mal ans Eth-Netzwerk gehängt, eine von den SMD LEDs fängt dann das Blinken, an, aber weils in der Firma war konnte ich jetzt im Firmennetzwerk nicht herausfinden, ob ein neuer Teilnehmer mit einer neuen IP dazugekommen ist... Ich werde heute mal zuhause probieren und erwarte dann einen Webserver... Leider ist die Dokumentation bei www.eproo.de wirklich ziemlich sparsam... Andererseits, wenn die Hardware in Ordnung ist, bekommt sie ja eh eine neue Firmware verpasst (wenn ich es denn mal schaffe den ARM zu programmieren)... Er wäre halt nett von den Machern der Hardware gewesen, wenn sie wenigstens das bin file zum download anbieten würden... Grüße, Micha
Hallo nochmal, Falls die Jumper noch unklar sind: Der Erase Jumper J9 für den SAM-BA ist beim Blick auf den SUBD-D 9 Stecker links davon und J13 ist für den CAN Bus Abschlusswiderstand 120 Ohm zuständig, beim Blick auf den SUB-D 9 Stecker, ist J13 rechts. Die 3 Jumper für die Spannungsversorgung sind wohl klar, sonst hätte es ja noch nicht bei Dir geleuchtet... Ansonsten wird das beim Blick auf den Schaltplan ja klar.. Die anderen Pfostenstecker sind keine Jumper sondern Port Pins (UART usw.)... Grüße, Micha
Hallo, ich bin neu hier und habe seit gestern ebenfalls das ICswift. Soweit habe ich es gestern Abend geschafft, mit SAM-BA eine .bin auf das Board zu laden. Zunächst habe ich mittels J9 ein Erase durchgeführt. Nach dem Anschliessen des USB musste ich Windows dabei unterstützen, den richtigen Treiber zu installiern, selbst auswählen-> atm6124. SAM-BA 2.8 startete nun mit '\usb\arm0' als mögliche Verbindung. Da ich bislang Nut/OS benutzt habe, lag es nahe, das Beispiel 'httpd' zu benutzen. Im Configurator habe ich die at91sam7x-ek.conf geladen, da das ICswift anscheinenend, jedenfalls größtenteils, Pin-kompatibel dazu ist und wohl auch den gleichen NIC drauf hat. Danach Nut/OS und das Beispiel gebaut. Die .bin habe ich dann mit SAM-BA - Registerkarte 'Flash' - auf das Board geladen und das Script ausgeführt, das besagt, das vom Flash gebootet werden soll. Leider tat sich nach dem Booten nichts, die LED's am angeschlossenem Netzwerk-Hub blieben aus. Ich habe dann, weil es spät war, abgebrochen. Falls es jemanden gibt, der bereits eine Nut/OS-Applikation auf dem ICswift zum Laufen gebracht hat, wäre ich für Tips dankbar. Grüße Jörg
Jörg Wolff wrote: > Da ich bislang Nut/OS benutzt habe, lag es nahe, das Beispiel 'httpd' zu > benutzen. Im Configurator habe ich die at91sam7x-ek.conf geladen, da das > ICswift anscheinenend, jedenfalls größtenteils, Pin-kompatibel dazu ist > und wohl auch den gleichen NIC drauf hat. Das mit dem Pin-kompatibel eher nicht. Ich bin an NutOS schon gescheitert weil ich nicht die fertig erstellte Datei gefunden habe... Bei SAM-BA hab ich zuerst den Fehler gemacht die Datei hochzuladen, auf den Button "Execute" zu klicken (mit der Option "Boot from Flash") und dann zu meinen das mein Programm ja jetzt starten müsste. War aber erst nach einem kompletten Neustart der Fall :)
Reinhard S. wrote: > > Das mit dem Pin-kompatibel eher nicht. Ich habe einmal die Schaltpläne beider Boards nebeneinander gelegt. Mich interessiert zunächst nur der Teil mit dem DM9161A. Bei dem AT91SAMX-EK ist der TX_CLK mit Jumpern konfigurierbar, ist aber per default, genau wie beim ICswift, auf PB0 gelegt. Beim ICswift hat der MDIO noch einen zusätzlichen Pullup-Widerstand. Ansonsten sind die DM9161 auf beiden Boards gleich beschaltet. Die anderen Komponenten unterscheiden sich natürlich zum Teil. > Ich bin an NutOS schon gescheitert weil ich nicht die fertig erstellte > Datei gefunden habe... Bei dem Nut/OS muss man sich strikt an die Installationsanweisung halten, dh. im Configurator die Pfade richtig setzen, danach das OS bauen und dann die Beispiel-Projekte erstellen. Im Beispiel, etwa in 'httpd', per make die binaries erstellen. Die .bin kann dann, so wie oben beschrieben, mit SAM-BA auf das Board geflasht werden. Auf ethernut.de befinden sich mittlerweise sehr gute Anleitungen zur Installation. Auf jeden Fall habe ich die LED1 auf dem ICswift schon einmal zum Blinken gebracht, nur der Ethernetport bleibt stumm. Ich werde mir jetzt erstmal einen RS232 an das Board bauen, damit ich die Meldungen verfolgen kann. Grüße Jörg
Jörg Wolff wrote: > Auf jeden Fall habe ich die LED1 auf dem ICswift schon einmal zum > Blinken gebracht, nur der Ethernetport bleibt stumm. > Ich werde mir jetzt erstmal einen RS232 an das Board bauen, damit ich > die Meldungen verfolgen kann. > Hab ich auch schon, sogar beide mit den Beispielen von Atmel. Hätte nicht gedacht das ein einfaches Blinken soviel Quellcode braucht. Ist das beim M3 genauso heftig? Ich hab mal einen FT232 an den Debug-Uart gehängt, es kam auch was raus, nur verständlich wars nicht.
Hallo, ich habe nun das Nut/OS-Beispiel 'httpd' auf dem ICswift zum Laufen gebracht. Nachdem ich ein MAX3232 an den Debug-Port J6 gebaut habe, konnte ich die Meldungen am Terminal verfolgen. Ich habe mir an einigen Stellen im Sourcecode 'at91_emac.c' Meldungen eingebaut und konnte so zurück verfolgen, dass die 'NIC_PHY_ID1' und 'NIC_PHY_ID2' auf 0xFFFF standen, was wohl bedeutet das überhaupt nichts aus dem DM9161 gelesen wird. Zuvor hatte ich mir die Anleitung 'Olimex AT91SAM7X256-Board' im ARM-Tutorial durchgelesen und das Powerdown-Bit auf 18 gelegt. Aber warum erwacht der DM9161 nicht zum Leben? Ein erneuter Vergleich der Pläne brachte es dann, ich hatte übersehen, dass der Reset des DM9161 beim ICswift an dem PA21 angebunden ist. Ich habe dann folgende Änderungen in 'at91_emac.c' vorgenommen, im Bereich Definitionen für MCU_AT91SAM7X256:
1 | ...
|
2 | #define PHY_MDINTR_BIT 26
|
3 | |
4 | /*+ICswift
|
5 | */
|
6 | #define PHY_RESET_BIT 21
|
7 | //-ICswift
|
und in Funktion EmacReset:
1 | ...
|
2 | #ifdef PHY_PWRDN_BIT
|
3 | /* Disable PHY power down. */
|
4 | outr(EMAC_PIO_PER, _BV(PHY_PWRDN_BIT)); |
5 | outr(EMAC_PIO_OER, _BV(PHY_PWRDN_BIT)); |
6 | #ifdef PHY_PWRDN_NEGPOL
|
7 | outr(EMAC_PIO_SODR, _BV(PHY_PWRDN_BIT)); |
8 | #else
|
9 | outr(EMAC_PIO_CODR, _BV(PHY_PWRDN_BIT)); |
10 | #endif
|
11 | #endif
|
12 | |
13 | /*+ICswift
|
14 | Beim ICswift liegt der Reset des DM9161 am PA21.
|
15 | Reset durchführen wenn Powerdown auf 0 ist.
|
16 | */
|
17 | outr(PIOA_PER, _BV(PHY_RESET_BIT)); |
18 | outr(PIOA_OER, _BV(PHY_RESET_BIT)); |
19 | outr(PIOA_CODR, _BV(PHY_RESET_BIT)); |
20 | NutDelay(20); |
21 | outr(PIOA_SODR, _BV(PHY_RESET_BIT)); |
22 | //-ICswift
|
Danach das Nut/OS und 'httpd' nochmal gebaut, und Bingo! Auf dieser Basis kann ich nun weiter machen. Das nächste, das ich brauche, ist die Can-Funktionalität. Aber das hat erstmal Zeit. Grüße Jörg
Hallo, mir ist es jetzt auch gelungen die Demo-App von FreeRTOS für den AT91SAM7X256 Eclipse (->Yagarto) zum Laufen zu kriegen. Man muss nur die Portzugriffe für die LEDs anpassen (ParTest.c), dann noch in der Hardware Initialisierung in main.c den Port-Ausgang für die EMAC-Reset-Leitung auf low setzen und in der Initialisierung für den EMAC (funktion: xEMACInit) die Befehle für das ARM interne Reset-Modul (auf dem Atmel EK ist die Reset Leitung der EMAC an den Reset-Ausgang des ARM angeschlossen) gegen "EMAC-Reset-Leitung (PA21) auf high setzen" austauschen. Die Leds blinken dann wie im flash-task gewollt und der Webserver ist auf der in FreeRTOSConfig.h angegebenen IP-Adresse erreichbar... Quick & dirty, aber man kann gleich sehen, ob der ICSWIFT auch funktioniert... Grüße, Micha
Hi, versuche auch den ICSwift mit Sam-Ba zu flashen, jedoch meldet das Sam-Ba immer "Faild to open connection". bekomm das irgendwie nicht hin. Teiber habe ich manuel eingebunden, und es ist ein COM Port entstanden. Laut Beschreibung und den Beitra sollte nun \usb\arm0 als Connection eingetragen werden, jedoch funst das nicht. Controller ist per Jumper auch gelöscht. Vielleicht kann einer von Euch das Problem erkennen??? Gruß Roger
Hi Roger, ich habe versucht auf meinem Windows 7 64bit - Rechner SAM-BA zu installieren und bin gescheitert. Wenn das SAM7x angestöpselt wird installiert sich ein GPS Kommunikations Treiber als COMx. Vielleicht ist das dein Problem. Wie es aussieht, ist der Treiber atm6124.sys nicht 64bit-fähig (auch nicht Vista 64bit). Ich habe danach SAM-BA auf einen virtuellen PC unter Vista 32bit (mit VirtualBox) installiert und es hat sofort geklappt. Wichtig: Die Software AT91-ISP v1.13 installieren (enthält SAM-BA 2.9) und den Rechner neu starten. Dann den gelöschten Controller anstöpseln. Wenn Windows den richtigen Treiber nicht findet, dieses manuell machen. Unter z.B. "C:\Program Files\ATMEL Corporation\AT91-ISP v1.13\sam-ba 2.9\drv" ist der Treiber zu finden. Viel Erfolg. Grüße Jörg
Hi, danke für die schnelle Antwort. Hat alles super funktioniert. Merci Gruss Roger
Hi, hat jemand schon geschafft das web server demo von FreeRTOS auf dem ICSwift zu kompelieren und dann ans laufen gebracht? Habe es zwar kompeliert, jedoch wurde vom Kompiler ein Fehler aus gegeben: make all arm-elf-gcc -c -g -O3 -Tatmel-rom.ld -I . -I ../../../Source/include -I ../../../Source/portable/GCC/ARM7_AT91SAM7S -I ../../Common/include -I ./webserver -I ../../Common/ethernet/uIP/uip-1.0/uip -I ./SrcAtmel -I ./USB -D SAM7_GCC -D THUMB_INTERWORK -mcpu=arm7tdmi -D PACK_STRUCT_END=__attribute\(\(packed\)\) -D ALIGN_STRUCT_END=__attribute\(\(aligned\(4\)\)\) -fomit-frame-pointer -mthumb-interwork -fno-strict-aliasing -fno-dwarf2-cfi-asm -mthumb main.c -o main.o cc1: error: unrecognized command line option "-fno-dwarf2-cfi-asm" make: *** [main.o] Error 1 Habe dann die Kompiler Option "-fno-dwarf2-cfi-asm "weggelassen und konnte dann kompelieren. Nach dem flashen war leider der Controller stumm. Vielleicht hat jemand es schon geschafft, das ICSwift Board mit FreeRTOS zum leben zu erwecken??? Würde mich sehr über eine Antwort freuen. Gruß Roger
Hast du das Problem gelöst? Ich stecke nämlich gerade an der selben Stelle fest.
Hi, das Problem habe ich nicht gelöst. Bin daher auf Ethernut umgestiegen. Dies kann leider von Haus aus kein CAN, ist aber sonst nicht schlecht. Wenn gewollt kann ich eine Version per email senden. Gruß Roger
Hier ein kleines, sehr simples Beispielprogramm fuer den ICswift AT91SAM7 da auch ich sehr lange gebraucht habe das Ding ueberhaupt zum Laufen zu bringen. Es laesst sich mit GCC kompilieren. Sollte dies nicht funktionieren hier auch das .bin File, damit man wenigstens die Funktion des Boards testen kann. Das Programm bringt eine der beiden LED's auf dem Board zum blinken und gibt seriell Text ueber die Debugschnittstelle aus (Baudrate 115200, Datenbits 8, Paritaet keine, Stoppbits 1, Flussteuerung keine). Die Daten kommen also an der Steckerleiste mit DRXD und DTXD an. Einen Pegelwandler (Anhang) von RS232 auf 3,3V kann man also verwenden um die Daten in einem Hyperterminal anzuzeigen. Zusaetzlich gibt es eine printf Funktion mit der man die Textdaten formatiert ausgibt. Vorgehensweise beim Flashen mit SAMBA: 1. ERASE Jumper bruecken 2. USB Stecker einstecken (nur fuer Stom) 3. ERASE Jumper entfernen 4. Erneut USB Stecker einstecken 5. SAMBA Starten mit Connection \usb\ARM0 und Board at91sam7x256-ek 6. Mit SAMBA Send File im Register Flash durchfuehren 7. Boot from Flash (GPNVM2) und Execute 8. USB stecker ziehen 9. USB stecker wieder reinstecken (nur fuer Strom), jetzt sollte eine der gruenen LED's blinken
Zei Anmerkungen noch. Verwendet habe ich WinArm (der Standard download) und damit SAMBA funktioniert muss man zuerst den USB-Treiber fuer den SAM7X256 von Atmel installieren.
Um Jörgs Beitrag zu ergänzen. Ich habe folgende Änderung in der SAM7_EMAC.c eingefügt und schon läuft der FreeRTOS-Server mit dem ICSwift-Board. /* Clear PB18 <=> PHY powerdown. */ AT91C_BASE_PIOB->PIO_PER = 1 << 18; AT91C_BASE_PIOB->PIO_OER = 1 << 18; AT91C_BASE_PIOB->PIO_CODR = 1 << 18; // EINGRIFF: Der Reset muss beim ICSwift manuell angesteuert werden AT91C_BASE_PIOA->PIO_PER = 1 << 21; AT91C_BASE_PIOA->PIO_OER = 1 << 21; AT91C_BASE_PIOA->PIO_CODR = 1 << 21; unsigned int ui; for(ui = 0; ui < 5000; ui++ ) __asm volatile ( "NOP" ); AT91C_BASE_PIOA->PIO_SODR = 1 << 21; // ende EINGRIFF /*/ After PHY power up, hardware reset. // AT91C_BASE_RSTC->RSTC_RMR = emacRESET_KEY | emacRESET_LENGTH; AT91C_BASE_RSTC->RSTC_RCR = emacRESET_KEY | AT91C_RSTC_EXTRST; // Wait for hardware reset end. // while( !( AT91C_BASE_RSTC->RSTC_RSR & AT91C_RSTC_NRSTL ) ) { __asm volatile ( "NOP" ); }*/ __asm volatile ( "NOP" );
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.