Hallo erstmal, ich habe ein Problem mit meinem selbstgebautem ISP-Board, dem Diamex Prog-S oder meinem Atmega 644P ... naja dass ich nich weiß wo das Problem ist, ist auch ein Problem :D Also: Wenn ich mit dem oben abgebildeten Board, AVR Studio 4 und dem Diamex Prog-S den Atmega 644P Programmieren will, bekomme den Fehler: byte address 0x00FE is 0x00 (should be 0x01) Allerdings kommt dieser Fehler nur wenn mein Code eine gewisse Größe hat. Setze ich z.B. nur ein paar Register und Ausgänge dann habe ich keinen Fehler. Wenn ich jetzt aber einen Code, der bei meinen 644P zu Fehlern führt in meinen Atmega 48 schreibe, habe ich keine Fehler. Den Atmega 48 habe ich jetzt nur auf einem Steckbrett ausprobiert. Den 644P habe ich auch nocheinmal auf dem Steckbrett ausprobiert: gleicher Fehler! Ich habe einen neuen 644P gekauft und hatte wieder das Problem. Aber ich glaube nicht dass ich beide irgendwie kaputt gemacht habe. :( Hat jemand eine Idee woran es liegen könnte?
Bei dem Board blickt man ja nicht durch. Poste mal den Schaltplan.
Es gibt keinen Schaltplan :D ich hab mir das einfach basierend auf dem Tutorial hier gebaut. http://www.mikrocontroller.net/articles/AVR-Tutorial:_Equipment
Ähm dass is ein Stromstecker, den gibts halt bei Lochmaster so nicht deshalb das Viereck. Das is schon richtig so.
Kann man den Programmer auf "Slow" oder "langsam" stellen? Du kannst ja mal versuchen den AVR mit einem STK200 (Parallelport + 2 Widerstände mit PonyProg) auszulesen, das sollte immer klappen.
Zur Lösung kann ich nichts beitragen, aber das Problem näher beschreiben: Bei uns treten genau die gleichen Probleme auf: AVR Studio 4, Diamex Prog-S und ATMega 644 (ohne P). Die sonstige Beschaltung ist unauffällig, ein paar LEDs und Schalter. Clock ist 20 MHz Quarz. Versorgungsspannung 5 Volt kommt aus stabilisiertem Steckernetzteil, auf dem Board mit 100nF und 10uF geblockt, direkt an der CPU nochmal 100nF. Reset hat 10nF nach Masse und 1k nach Plus. Kompakte Verdrahtung, ruhige EMV-Situation. Beim Programmieren gibt es den oben angegebenen Fehler, wenn der Code größer als ca. 200 Byte wird. Plus ca. 60 Byte Interrupttabelle wird dann die Stelle 0x00FE erreicht. Der AVR Programmer programmiert, aber das Verify versagt. Wenn man den Flashinhalt ausliest, in einer Datei ablegt und die HEX-Dateien vergleicht, ist tatsächlich das Byte 0x00FE unterschiedlich. Natürlich läuft dann das Programm in der Regel nicht, es steht also falsch im Flash. Wir haben das Problem momentan damit umgangen, dass wir am Anfang des Programm 200 Byte String-Konstanten mit dem Attribute PROGMEM ablegen, die die "schlechte Stelle" überschreiben. An einer seriösen Lösung des Problem wäre ich auch interessiert.
Sieht eher nach einem Programmer-Fehler aus? Beide Controller (mehrere von jedem Typ) auf vielen ebensolchen selbstgebauten Boards lassen sich seit Jahren problemlos mit AVRStudio 4.18, WinAVR und dem Programmer von embedded projects (USBProg) betreiben. Also bis auf den Programmer ist bei mir alles genauso. Aber fehlerfrei. Blackbird
Dann muss ich mir nächsten Monat mal nen neuen Programmer holen. Aber was mach ich denn bis dahin?
OK, wir haben mal ein bisschen rumgetestet: - andere Programmiergeschwindigkeit löst das Problem nicht. - anderen Programmer funktioniert Inzwischen wird der Programmer Diamex Prog-S nur noch als STM-32-Programmer bezeichnet, siehe hier http://www.obd-shop.com/danila/product_details.php?id=363&lang=de Schade, wir haben 15 Stück davon gekauft. Müssen wir wohl neue kaufen. Hat jemand einen Tip? Ich fand gut, dass sie ein Gehäuse haben, so kann man sie auf dem Basteltisch rumliegen haben ohne Kurzschlussgafahr. Bis dahin funktioniert der Fix mit der PROGMEM-Strings ganz gut - die kommen in ein Include und keiner sieht sie mehr...
Pinkshell schrieb: > Inzwischen wird der Programmer Diamex Prog-S nur noch als > > STM-32-Programmer bezeichnet, ? was willst du denn mit einem Programmer für STM32-Cortex-M3 Controller an einem ATmega644? Du meinst sicher den hier: http://www.obd-shop.com/danila/product_details.php?id=356&lang=de
nein ich meine den, den ich genannt habe. wenn man sich mal die produktbeschreibung durchließt: http://www.reichelt.de/Programmer-Entwicklungstools/DIAMEX-PROG-S/3//index.html?ACTION=3&GROUPID=2969&ARTICLE=115385&SHOW=1&START=0&OFFSET=16& dann steht da: Funktionen: • FLASH • EEPROM • Fusebits • Lockbits schreiben • lesen • Chip erase • OSCCAL-Register lesen Protokoll: • STK500v2 Softwareunterstützung: • AVR Studio (COM1..COM9) • AVRDUDE • Bascom mit der Einstellung Options->Programmer = STK500: C:\Programme\Atmel\AVR Tools\STK500\stk500.exe und installiertem AVR Studio • erfos-prog-s - für LPC, NXP und STM Controller • Treiber für PROG-S (Atmel AVR, STM32, NXP, LPC Controller) Installation: • Windows eigener Treiber. Einbindung durch einfache *inf Datei Unterstützung folgender Chips: - STM32: STM32F101, STM32F102, STM32F103, STM32F105, STM32F107 - NXP/LPC: LPC17xx, LPC13xx, LPC11xx, LPC21xx, LPC22xx, LPC23xx - Classic: AT90S1200, AT90S2313, AT90S2333, AT90S2343,AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8535 - Tiny: ATtiny12, ATtiny13, ATtiny15, ATtiny2313, ATtiny24, ATtiny25, ATtiny26,ATtiny44, ATtiny45, ATtiny84, ATtiny85, Attiny86, ATtiny261, ATtiny461, ATtiny861 - Mega: ATmega88, ATmega103, ATmega128, ATmega1280, ATmega1281, ATmega16, ATmega161, ATmega162, ATmega163, ATmega164, ATmega168, ATmega169, ATmega2560, ATmega2561, ATmega32, ATmega324, ATmega325, ATmega3250, ATmega329x, ATmega48, ATmega64, ATmega640, ATmega644, ATmega645, ATmega6450, ATmega649x, ATmega8, ATmega8515, ATmega8535 - Weitere: AT90CAN128, AT90PWM2, AT90PWM2B, AT90PWM3, AT90PWM3B, AT90USB162, AT90USB646, AT90USB647, AT90USB1286, AT90USB1287 - alle weiteren ATMEGA Prozessoren, die die ISP-Programmierschnittstelle unterstützen Besonderheiten: • vier verschiedene Betriebsmodis AVR, STM, NXP/LPC und USB-Serial Wandler • sehr schneller Programmierzyklus durch onboard Prozessor und ausgefeilter Firmware • Spannungsversorgung direkt vom PC • Benötigt keine Stromversorgung vom Target Technische Daten und Eigenschaften: • USB 1.1 oder USB2.0 kompatibel • sehr schnelle Datenübertragung - max. 12 Megabit • USB-seriell Wandlung bis 125.000 baud • Datenübertragung per Software einstellbar, langsamere Übertragungsraten wählbar • Eigenverbrauch ca. 15mA • SMD-Industriefertigung auf hochwertigem FR4 Basismaterial • Plexiglas® Kapselung • Made in Germany Lieferumfang: • ISP-Programmer im farbigen Gehäuse ( Bitte beachten Sie die wechselnde Ausführung in rot grün orange ) • USB 2.0 Anschlusskabel • Programmier-Anschlusskabel 10polig ca.15cm • Beschreibung und Treiber *inf-Datei via download Hersteller : DIAMEX Artikelnummer des Herstellers : DIAMEX PROG-S dort ist auch der atmega644 dabei
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.