Forum: Mikrocontroller und Digitale Elektronik AVR Studio 4, Atmega 644P und selbstgebautes Board


von Florian L. (ironalf)


Angehängte Dateien:

Lesenswert?

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?

von Halunke (Gast)


Lesenswert?

Bei dem Board blickt man ja nicht durch. Poste mal den Schaltplan.

von Florian L. (ironalf)


Lesenswert?

Es gibt keinen Schaltplan :D ich hab mir das einfach basierend auf dem 
Tutorial hier gebaut.

http://www.mikrocontroller.net/articles/AVR-Tutorial:_Equipment

von Florian L. (ironalf)


Lesenswert?

Ähm dass is ein Stromstecker, den gibts halt bei Lochmaster so nicht 
deshalb das Viereck. Das is schon richtig so.

von Florian L. (ironalf)


Lesenswert?

Unten ist GND oben ist VCC.

von Florian L. (ironalf)


Lesenswert?

Hat keiner eine Idee?

von B.A. (Gast)


Lesenswert?

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.

von Pink S. (pinkshell)


Lesenswert?

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.

von Blackbird (Gast)


Lesenswert?

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

von Florian L. (ironalf)


Lesenswert?

Dann muss ich mir nächsten Monat mal nen neuen Programmer holen. Aber 
was mach ich denn bis dahin?

von Pinkshell (Gast)


Lesenswert?

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...

von ... (Gast)


Lesenswert?

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

von Pinkshell (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.