Servus, ich habe bei Pollin der AVR NET IO gekauft und versuche, den zum Laufen zu bringen. Erstmal über ein Terminal angeschlossen und eine neue IP vergeben, dann versucht, diesen anzupingen, alles in Ordnung. Lt. dem Manual soll man dann eine Firmware aktualisieren. Also netserver.exe von der beiliegenden CD installiert und aufgerufen. Nach Einstellen der IP des Boards hat es auch brav alle ADCs etc angezeigt. Dann habe ich das mit der Firmware probiert. Button "Firmwareupdate" geklickt, dann die Com gewählt, mit der ich eh schon Ko0ntakt mit dem Board hatte (s.o., das Programm hatte ich vorher beendet) und dann auf "Firmware 1.03 übertragen" geklickt. Es kamen 2 Meldungen, die com7 sei ok, dann hat er das Flash gelöscht und dann übertragen ... (vorher hatte ich noch den Jumper auf "prog" gesteckt und das Board mal kurz vom Strom weg). Nach 10 min in denen nichts passiert ist habe ich das abgebrochen. Beim nächsten Versuch kam die Meldung, er lösche jetzt das Flash, nicht mehr. Auch Hänger und nach 10 min abgebrochen. Jetzt tut das Board überhaupt nichts mehr. Anscheinend hat zumindest die Flash-Löschung funktioniert. Weder auf der CD noch bei Pollin finde ich einen Bootload bzw die Firmware 1.03. Hier im Forum habe ich dazu auch kaum etwas gefunden. Ich habe hier WinAVR mit avrdude. Kann ich herausbekommen ob der Bootload auch mit weg ist ? Oder wie bekomme ich diese %$$§&§&-Firmware wieder drauf ?
Kann es sein, daß das Hex-File in netserver.exe ab $9da6 steckt ?
Ich hänge jetzt am Bootloader. Die Fuses habe ich, wie im Forum beschrieben, auf c2 und bf gesetzt. Den Bootload mit NetServer erzeugt. Problem: Meldung avrdude: G:\Luna\avrdude.exe -u -C G:\Luna\avrdude.conf -p m32 -P com4 -c avrisp2 -B200 -U flash:w:C:\Programme\NetServer\bootloader.hex:a avrdude.exe: Skipping paramter write; parameter value already set. avrdude.exe: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.01s avrdude.exe: Device signature = 0x1e9502 avrdude.exe: NOTE: FLASH memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option. avrdude.exe: erasing chip avrdude.exe: reading input file "C:\Programme\NetServer\bootloader.hex" avrdude.exe: input file C:\Programme\NetServer\bootloader.hex auto detected as Intel Hex avrdude.exe: writing flash (31632 bytes): Writing | ################################################## | 100% 4.84s avrdude.exe: 31632 bytes of flash written avrdude.exe: verifying flash memory against C:\Programme\NetServer\bootloader.hex: avrdude.exe: load data flash data from input file C:\Programme\NetServer\bootloader.hex: avrdude.exe: input file C:\Programme\NetServer\bootloader.hex auto detected as Intel Hex avrdude.exe: input file C:\Programme\NetServer\bootloader.hex contains 31632 bytes avrdude.exe: reading on-chip flash data: Reading | ################################################## | 100% 163.47s avrdude.exe: verifying ... avrdude.exe: 31632 bytes of flash verified avrdude.exe done. Thank you. bootloader.hex hat aber nur 2599 Byte. Woher nimmt avrdude den Rest ...
Joachim Drechsel schrieb: > Woher nimmt avrdude den Rest ... Du weißt wo der Bootlader zu Hause ist und wie Flash geschrieben wird ?
MWS schrieb: > Du weißt wo der Bootlader zu Hause ist und wie Flash geschrieben wird ? Die Datei hat NetServer.exe dort erstellt. Ich nehme also an, das ist ernst gemeint ...
Joachim Drechsel schrieb: > Ich nehme also an, das ist ernst gemeint ... Meine Frage war ernst gemeint. Dann nochmal: Du weißt wo der Bootlader im Flash zu Hause ist ?
Gehört der nicht ins Flash ? (Ähem ... bis jetzt nur ATTiny2313 ;). Ich schau mal ...
Joachim Drechsel schrieb: > Gehört der nicht ins Flash ? > > (Ähem ... bis jetzt nur ATTiny2313 ;). Ich schau mal ... Doch. Der gehört in's Flash. Und zwar an's Ende des Flashs, z.B. beim ATM32 von $3800 bis $3F00 (Wortadresse), einstellbar je nach Bootladergröße. Das Flash selbst wird Page-weise beschrieben, avrdude hat hier offensichtlich den ganzen Flash von Zelle 0 bis Ende des Bootladers geschrieben. Alles was vor dem Bootlader kam, ist dann einfach leer.
Merci. dh ich müßte avrdude dazu überreden, das auch bei $3800 bis $3f00 abzulegen. Ich schau mal ...
Die erste Zeile bootloader.hex: :10 7800 000C942A3C0C94473C0C94473C0C94473C09 müßte er doch nach $3800 laden ? Die Fuses habe ich noch mal überprüft, sie stehen so wie im Handbuch S12/3. MWS schrieb: > Das Flash selbst wird Page-weise beschrieben, avrdude hat hier > offensichtlich den ganzen Flash von Zelle 0 bis Ende des Bootladers > geschrieben. Alles was vor dem Bootlader kam, ist dann einfach leer. Erklärt auch die relativ lange Lesezeit 160 sec (knapp 5 sec für write). Irgendetwas klemmt da noch grrrr --- Würde heißen, der Bootloader müßte jetzt auf dem Chip sein ? Wie kann ich das testen ? NetServer hängt sich auf.
Joachim Drechsel schrieb: > Merci. dh ich müßte avrdude dazu überreden, das auch bei $3800 bis > $3f00 abzulegen. Ich schau mal ... Nein, es ist eher umgekehrt, im Hex stand drin wo der Bootlader hin soll, und Du musst in den Fuses einstellen, wo er tatsächlich ist, bei ATM32 z.B. $3800, $3C00, $3E00 oder $3F00. Sollte irgendwo in der Doku zu finden sein. Wenn 31632 Bytes geschrieben worden sind, dann ist das Ende an Wortadresse $3DC8, also wäre es für 'nen ATM32 entweder $3800 (default) oder $3C00 bei 'nem kleinen Bootlader. Von der Größe des Hex her, ist's $3800. Joachim Drechsel schrieb: > müßte er doch nach $3800 laden ? Häng's Hex an, dann seh ich's nach. Hast Du die BOOTRST Fuse passend gesetzt ?
BOOTRST steht auf "programmed" (wie im Manual). Anbei das hex wie's NetServer geschrieben hat.
Joachim Drechsel schrieb: > Anbei das hex wie's NetServer geschrieben hat. Lader fängt bei $3C00 an.
MWS schrieb: > Lader fängt bei $3C00 an. Wieso $3c00 ? Auf http://www.mikrocontroller.net/articles/AVR_Bootloader_in_C_-_eine_einfache_Anleitung#Grundlagen steht etwas von ATmega32/324/328 28672 Byte 4096 Byte 0x7000 0x3800 ? Mit BOOTSZ0 = 1 und BOOTSZ1 = 0 wären das auf 0xF00 - 0xFFF eingestellt, Größe 256x2 Byte x 8 Pages = 4 kB. Eigentlich sollte das passen. Meldet sich der Boot-Lader nach einem Rest über die RS232 ? Offensichtlich ist zwischen Netserver und dem Board Funkstille, mit dem Scope sehe ich nichts auf der Leitung.
Joachim Drechsel schrieb: > Wieso $3c00 ? Auf > http://www.mikrocontroller.net/articles/AVR_Bootlo... > steht etwas von ATmega32/324/328 28672 Byte 4096 Byte 0x7000 > 0x3800 ? Wenn Du meinst :-) Es gibt nicht DEN, sondern viele Bootlader. Und beim ATM32 gibt es verschiedene Startadressen für den BL. Der Artikel sagt auch: > Dabei wurde immer die maximale Größe des Bootloader betrachtet Also die niedrigste Adresse. > Mit BOOTSZ0 = 1 und BOOTSZ1 = 0 wären das auf 0xF00 - 0xFFF eingestellt, > Größe 256x2 Byte x 8 Pages = 4 kB. Eigentlich sollte das passen. Aha. Was sollte passen ? Dass die von Dir beschriebene Einstellung Bootlader@$3C00 ergibt ? Ja, das ist so. Schau mal hier: http://www.engbedded.com/fusecalc/# > Meldet sich der Boot-Lader nach einem Rest über die RS232 ? Keine Ahnung, ich kenne den spezifischen Bootlader nicht, kann auch sein, dass der nur 'ne gewisse Zeit wartet und dann eben auf $0000 springt.
Komisch - ich habe das ausgelesen, anbei ein Auszug aus dem Hexdump: 077f0 : ff ff ff ff ff ff ff ff - ff ff ff ff ff ff ff ff 07800 : 0c 94 2a 3c 0c 94 47 3c - 0c 94 47 3c 0c 94 47 3c ... 07b80 : 11 96 0f b6 f8 94 e2 9a - e1 9a 0f be 08 95 ff cf fängt nicht, wie bei Deinem, bei $3c00 an (eher $3800 mit dem fehlenden Bit). Ich mach mir jetzt mal ein Bier auf kopfkratz. Irgendwann wird es mir wie Schuppen von den Augen fallen ;) Alle ISP-Signal sind da. Es kommt aber nichts auf der RS232. dh, er startet vermutlich nicht. Also mal sehen, was das Board nach einem harten Rest so macht ... Danke, daß Du mir da keine "Fertiglösung" hinknallst. Ich will das selbst herausbekommen. Es kann auch nicht schlimmer sein wie japanische Bestückautomaten zu hacken. Irgendwann macht es "Klick". Grüße Joe.
Joachim Drechsel schrieb: > fängt nicht, wie bei Deinem, bei $3c00 an (eher $3800 mit dem fehlenden > Bit). Ich mach mir jetzt mal ein Bier auf kopfkratz. Kuckst Du bei $7800 das erste Programmbyte :-) $7800 ist eine Byteadresse, die teil' mal durch 2, dann hast Du die Wordadresse $3C00. In den Datenblättern und auch beim von mir verlinkten Fusecalculator wird sich immer auf Wordadressen bezogen, darum nehm' ich die auch. Ist übrigens auch in Deinem Link: > http://www.mikrocontroller.net/articles/AVR_Bootlo... > steht etwas von ATmega32/324/328 28672 Byte 4096 Byte 0x7000 > 0x3800 ? so zu finden: > Startadresse des Bootloaders (Byteadresse) (Wordadresse) Joachim Drechsel schrieb: > Danke, daß Du mir da keine "Fertiglösung" hinknallst. Ich will das > selbst herausbekommen. Ehrlich gesagt hätte ich da auch keine. Hab' zwar noch so'n Net-IO rumliegen, aber nie benutzt, kann also zum Bootlader nur das sagen, was ich selbst rausfinde. Wenn alle Stricke reißen, könnte ich noch im Hex-File nachsehen, was das so macht, oder auf was gewartet wird. Aber da muss es ja auch 'ne Anleitung dazu geben.
Anleitung ja - funktioniert aber nicht. Das Flashen scheint hinzuhauen, das Problem ist anscheinend NetServer.exe. Das Elend hat ja damit begonnen, daß ich versucht hatte, die Firmware neu aufzuspielen. NetServer.exe bekommt über die die RS232 keine Verbindung zum Board. Zu Anfang hatte ja alles funktioniert, das ist das Verrückte.
Wie ist J11 gesetzt, auf prog ? Schon mal versucht per ISP den ATM32 auszulesen und dann nachzusehen, ob der Bootlader seine Arbeit getan und auch ein Programm außer dem Bootlader drauf ist ?
Vielleicht 'ne dumme Frage, aber wenn du doch ein Progammiergeraet hast, was willst du dann mit dem Bootloader ? Flashe die Firmware direkt und ruhe ist. Die Pollin Firmware ist eh nur zum spielen und sonst voellig unbrauchbar.
J11 auf prog gesetzt - klaro ;) Ausgelesen habe ich nur den Bootloader. Die Firmware selbst kann ich nur mit dem NetServer hochladen - kann ich nicht testen. Morgen geht's weiter schrotflintehol
Ich habe jetzt keine Lust den ganzen Thread hier zu analysieren, deswegen gleich zu deiner Ausgangsfrage. Eben probiert und funktioniert einwandfrei. Alles OHNE Lan-Verbindung. Netserver starten, bootloader.hex erzeugen, AVR-NET-IO anschliessen, Jumper auf "Prog" Bootloader mit Programmiergeraet an ISP einspielen, siehe txt File (Pfade und Programmieradapter anpassen) Fuses setzen, siehe txt File (Pfade und Programmieradapter anpassen) Serielles Kabel an AVR-NET-IO und Netserver starten. Jumper bleibt auf "Prog" Fimware-Update klicken und einspielen. Jumper auf "Normal", Per Seriell IP vergeben, LAN anstoepseln und freuen. Wenn du damit jetzt nicht zurecht kommst, weiss ich auch nicht.
> Die Fuses habe ich, wie im Forum beschrieben, auf c2 und bf gesetzt. > Die Fuses habe ich noch mal überprüft, sie stehen so wie im Handbuch > S12/3. Laut Handbuch und Peter W. ist das aber nicht C2 !
Servus Peter, ich habe es gerade noch einmal laufen lassen, diesmal mit den Fuses ca und bf. Dann zuerst den Bootload ohne -D (also Flash gelöscht) und dann, mit Option -D die Firmware von Dir. Es tut sich leider nichts beim live Ausprobierenauf der RS232. Dann mal einen Dump des Boards gezogen (s. Anlage). Eigentlich sieht das doch gut aus - am unteren Ende des FLash offensichtlich die Firmware, oben der Bootloader. NetServer kommt bis zur Meldung "[Firmwareupdate beginnt]" und hängt sich dann auf (und zwar richtig). Ich kann nicht mal mehr einen Screenshot machen ;) Entweder ein Problem mit meinem USB auf RS232 Teil oder des Programms selbst. Der Adapter funktioniert eigentlich problemlos. Umgebung: WinXP prof, AVR8 Burn-O-Mat v2, avrdude 5.1. --- Nächste Runde: mal den Prozessor getauscht und das direkt geflasht (Fuses DA/BF). Ebenfalls tot. --- Ich checke jetzt mal die Hardware durch, irgendwo ist da etwas faul.
Der USB-RS232-Adapter ist anscheinend hin. Ärgerlich, daß ich letztes Jahr meinen RS232-Stecker mit den LED entsorgt hatte. Erstmal einen neuen organisieren, dann weiter. Ich danke auf jeden Fall allen für die Tips.
Hast Du kein olles Handy-Datenkabel ? Sowas muss man immer auf Lager haben, die USB <=> RS232 taugen doch nichts.
Peter W. schrieb: > Hast Du kein olles Handy-Datenkabel ? Sowas muss man immer auf Lager > haben, die USB <=> RS232 taugen doch nichts. Ich habe keinen PC mehr mit einer RS232. Das Kabel hat eigentlich ganz passabel funktioniert - bis auf den fehlenden Treiber ;) Händikabel ?
Na diese Handydatenkabel. USB auf TTL und dann direkt an den µC. In jedem billigen 1,95 Teil sind PL2303 oder FTDIs drin. Erkennen kann man die an dem dickeren USB Stecker oder an dem Knubbel in der Kabelmitte. Wenn eine Treiber CD dabei liegt kannst du schon fast sicher sein. Fuer jeden Digitalfan ein Muss.
Habe ich leider nicht. Beim Ausmisten letztes Jahr habe ich eine Riesenkiste Kabel, Adapter und so einen Mist weggeschmissen. Bevor da kommt "das macht man doch nicht": Der Kram war von mehreren kleinen Nagern so vollgeschissen, die habe ich nicht mehr anlangen wollen. Ein Mainboard haben sie auc totgepieselt. 58 Stück habe ich vorletzten Winter in meinem Büro erwischt (Lebendfalle, Gelbe Säcke etc) bis ich das Loch in der Decke gefunden hatte. Alle fotografiert ;) http://murxvonmarx.de/bin/parse.exe?CMD=X&FILE=maus.htm Halt eine ehemalige Scheune.
Warum eigentlich CA/BF DA/BF ? Dabei ist schon klar, dass BF die Low Fuse ist ? Außerdem löscht Du immer den EEPROM-Inhalt beim Flashen, keine Ahnung wie pingelig Netserver da ist, ob das EEPROM also wieder automatisch auf Defaults hergestellt wird. CA geht auch nicht, da ist dann die CKOPT Fuse aus, der ATM32 braucht die aber für den Betrieb mit 16MHz Quarz. Im Artikel hier steht ja richtig Low $BF High: $C2 http://www.mikrocontroller.net/articles/AVR_Net-IO_Bausatz_von_Pollin In Firmware_1.3.hex ist die Firmware komplett mit Bootlader drin, wenn per ISP geflasht wird, ist alles (bis auf's EEPROM) wieder hergestellt. Letzteres könnte man mal über "Save Config ..." versuchen wieder herzustellen. Wenn dann der J11 noch richtig steht, damit er nicht mehr in den BL springt, sollte das doch wieder ok sein. Und bringst Du dann noch den EEPROM-Inhalt per ISP drauf, sollte die Kommunikation bereits wieder über Ethernet klappen.
Ja, widerliche Plagegeister. Wenn du die firmware.hex aufspielst, kannst du den Rest auch ueber LAN machen. Der Haken, du musst meist vorher den Router kurz auf die standard IP des AVR-NET-IO stellen. Koennte auch mit einem Crossover direkt am Rechner gehen, da bin ich mir jetzt nicht so sicher und ausprobieren mag ich nicht mehr. Das Ding ist schon wieder in den Tiefen der unerledigten Projekte gewandert. Die RS232 brauchst du eh nie. Bei der Software die sich so im Web findet, stellt man die IP sowieso im Quelltext ein und dann geht das alles uebers LAN.
Peter W. schrieb: > Der Haken, du musst meist vorher den Router kurz auf die > standard IP des AVR-NET-IO stellen. Wenn man den EEPROM-Inhalt händisch per Editor zurechtbiegt, sollte auch das keine Hürde sein.
Naja, eben den Router umstellen ist eine Sache von einer Minute. Ist ja nur eine 1 gegen eine 0 tauschen. Dafuer experimentiere ich nicht mit EEPROM Inhalten rum.
Um an den Router zu kommen brauche ich 30 m Kabel ... Mal sehen. Ich probiere mal (wieder) die Fuses aus dem Manual hier und fummele mal ein EEPROM-Hexfile. --- Mäuse finde ich ganz nett (eine ist noch da), aber halt nicht gleich so viele.
Peter W. schrieb: > dafuer experimentiere ich nicht mit EEPROM Inhalten. Da muss man nicht viel experimentieren, Zitat: > 3EE - 3F3 MAC-ADRESSE > 3F4 - 3F7 GATEWAY > 3F8 - 3FB NETMASK > 3FC - 3FF IP-ADRESSE
> Um an den Router zu kommen brauche ich 30 m Kabel ...
Was willst du dann mit dem Webserver ? Macht doch null Sinn.
Im Moment steht da s.o. drinnen.
> 3FC - 3FF IP-ADRESSE
IP Adresse mit 4 Byte ???
Peter W. schrieb: > Was willst du dann mit dem Webserver ? Macht doch null Sinn. Der Webserver hängt mit dem anderen Kram im Rack unterm Schreibtisch, der Router im Schuppen.
Joachim Drechsel schrieb: > IP Adresse mit 4 Byte ??? IP4 sind nur 4 Zahlen 0..255. Natürlich passen die in 4 Bytes nicht als ASCII rein :D
MWS schrieb: > IP4 sind nur 4 Zahlen 0..255. Natürlich passen die in 4 Bytes nicht als > ASCII rein :D War in Gedanken ;) Ich kann, nach patchen des EEPROMS das Dingsbums anpingen ! **freu** NetServer zeigt mir mir auch leicht wechselende Werte der ADCs an. Weiter geht's :-)))))))))))))))))))))))))))))))))))))))))))))
SERVER: version CLIENT: uC: ATMega32Ver: 1.03NIC: ENC28J60 Vielen Dank nochmal an alle ! Und eine fette Zip-Bombe an die Autoren des NetServers. Es gibt auch so etwas wie Fehlermeldungen oder Reaktionen auf nicht vorhergesehene Kalamitäten.
Peter W. schrieb: > Na siehste, dann tut es die Gurke doch. Das hatte die zu Anfang auch. Bis ich das Update ... Egal, hat etwas Nerven gekostet aber wieder 'was gelernt !
Joachim Drechsel schrieb: > Egal, hat etwas Nerven gekostet aber wieder 'was gelernt ! Dann könntest ja jetzt wieder ein Update machen :D
MWS schrieb: > Joachim Drechsel schrieb: >> Egal, hat etwas Nerven gekostet aber wieder 'was gelernt ! > > Dann könntest ja jetzt wieder ein Update machen :D Nicht mit dem NetServer ... ;)
Soderle, das kleine Webserverchen tut es jetzt mit der Software von G. Menke. Zur Hardware: Lt. Manual muß man, damit der Ethernetport läuft, das ISP-Kabel abstecken - die Leitungen werden intern verwendet. Da wäre es doch eigentlich praktisch, könnte man den Programmer in so eine Art "Offline Mode" schicken (zB alle Portpins auf 3-State). gibt es so etwas ? Die Ladezeiten sind hundserbärm\b\b\b\b ... 3,42 KB in 1,94 sec ist ziemlich lahm (internes Netzwerk 1 GB). Könnte da noch etwas faul sein oder ist das bei einer 16 MHz Maschine normal ?
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.