Forum: Mikrocontroller und Digitale Elektronik TwinAVR will nicht mehr


von Günther (Gast)


Lesenswert?

Hallo
Kennt sich jemand mit TwinAVR und dem Programmieren
der ATmegas aus?
Ich benutze TwinAVR für den ATmega16.
Bisher hatte ich gedacht, man überschreibt den Speicher
einfach, wenn man ihn neu programmiert, vorausgesetzt,
das neue Programm hat einen sauberen Abschluß und läuft
nicht unkontrolliert weiter.

Mit TwinAVR ging das anfangs meistens so, aber ich habe
den Eindruck, man müsse immer öfters auch noch den Erase-Button
vor dem Neuprogrammieren drücken und warten, warten... .
Andernfalls kommt nach dem Write die Meldung
flash memory write error.

Der ATmega ist noch nicht am Ende, denn nachdem es überhand
nahm, habe ich einen neuen eingesetzt, es wurde aber
nicht besser.
Wenn es noch weiter bergab geht, wäre das sehr unpraktisch,
denn TwinAVR ist das einzige ordentliche Programm, das
bei mir funktioniert, - im Gegensatz zu Ponyprog, Bascom o. dgl. -
die meinen ATmega16 auf der Olimex-Entwicklungsplatine
(von Andreas Schäfer) nicht erkennen.
Hat jemand einen guten Rat für mich?

PS: Als Programmieradapter zur Parallelschnittstelle habe
ich einen Selbstbau mit einigen Widerständen nach einen
Schaltplan aus dem Forum.

Mfg
Günther

von Marc (Gast)


Lesenswert?

Hallo Günther,

es scheint so zu sein, daß TwinAVR nur die Bytes überträgt, die auch im
Hex-Code stehen, sprich es wird nicht der vollständige Speicher vom AVR
überschrieben. Wenn Dein Hex-Code nun kürzer ist, wie der der bereits
im AVR drin ist, so werden nun die neunen überschrieben. Dazwischen
wird noch Mist stehen, mit dem der AVR meist nichts anfangen kann, aus
diesem Grund gibt es die Funktion Erase. Die überschreibt
wahrscheinlich den ganzen Speicher mit "FF".

Wieso Ponyprog und yaap bei Dir nicht funktionieren -- finde ich etwas
merkwürdig. Welches Betriebssystem benutzt Du? Ich denke Du hast
irgendwo noch ein "faules Ei".

Gruss
Marc

von Günther (Gast)


Lesenswert?

Hallo Marc,
ich benutze W2k und ich halte das auch
nicht für normal. aber ich weiß nicht,
woran es liegt.
Bevor ich TwinAVR ausprobiert habe,
hatte ich nach einer Bauanleitung aus dem
Netz einen Adapter mit Schmitt-Triggern
gebaut, aber das hat auch nichts gebracht.
Dann habe ich TwinAVR gefunden.
Das läuft aber nur, wenn man jedesmal
den Treiber Totalio lädt.
Und mit diesem frisch geladenen Treiber
findet Ponyprog Kontakt zu dem ATmega.
Allerdings müßte ich wohl nach einer Version
suchen, die den ATmaga16 schon kennt.
Vielleicht würde das auch bei Bascom helfen.

Gruß
Günther

von Ich (Gast)


Lesenswert?

@Günter
Warum fragst Du nicht mal den Autor?
Der dürfte doch wohl am ehesten daran interessiert sein,
dass sein Programm funktioniert.
Ansonsten mal diese Dinger probieren.
http://s-huehn.de/elektronik/avr-prog/avr-prog.htm

von Marc (Gast)


Lesenswert?

@Günter:
>ich benutze W2k und ich halte das auch
>nicht für normal. aber ich weiß nicht,
>woran es liegt.

Ich benutze auch W2k, allerdings lief Ponyprog immer, mit dem  Yaap und
den  ATMega16 gibt es eine spezielle Konfiguration. Die findest Du auch
in diesem Forum.

>Das läuft aber nur, wenn man jedesmal
>den Treiber Totalio lädt.
>Und mit diesem frisch geladenen Treiber
>findet Ponyprog Kontakt zu dem ATmega.
>Allerdings müßte ich wohl nach einer Version
>suchen, die den ATmaga16 schon kennt.

Ich glaube Du hast Kollisionen mit den Treibern, denn soweit ich
gesehen habe, sollte Totalio direkt verfügbar sein nach der
Installation.  Allerdings habe ich keine Ahnung, wie man  die Treiber
in Win aufräumt. Ich würde mal die  Totalio.sys mal umbenennen, und mal
 schauen, ob beim Reboot irgendwas meckert.

Hast Du das ganze mal auf einem anderen Rechner probiert, einfach
Ponyprog drauf und keine TwinAvr.

Gruss
Marc

von Roland Walter (Gast)


Lesenswert?

Hallo,
TwinAVR führt stets ein ChipErase aus, wenn Daten in den Flash
geschrieben werden sollen. D.h. der Flash ist in diesem Fall stets
leer. Daran sollte es also nicht liegen. Achtung: Wenn nur Daten in den
EEPROM geschrieben werden sollen, wird kein ChipErase ausgeführt.
Ach so: Den Erase-Button muß man vor dem Neuprogrammieren definitiv
nicht drücken.

Wenn diverse Programme Schwierigkeiten bei NT-Systemen (NT4 W2K, XP)
haben, per LPT zu programmieren, dann probiere mal folgendes, um das
Problem einzugrenzen:
1. Starte irgend ein 16-Bit-Programm, bevor Du TwinAVR startest. Du
kannst natürlich auch einmal TwinAVR starten und inaktiv offen lassen
und dann mit einem zweiten Start brennen. Dieser Test sollte nur dann
sinnvoll sein, wenn Du die Datei per Kommandozeile übergibst.
Sinn der Sache: Vielleicht dauert das Starten des allerersten
16-Bit-Programms bei Dir sehr lange und bringt das Timing
durcheinander. Immerhin muß NT ja erst mal die 16-Bit-Engine
hochkriegen.
2. Setze mal die Taktrate in TwinAVR herunter. TwinAVR prüft stets die
geschriebenen Daten. Wenn Schrott zurückkommt, wird dynamisch die
Brenngeschwindigkeit herabgesetzt. Vielleicht führt das bei Dir zu
drastisch geringen Geschwindigkeiten?!
3. Ich habe schon zwei oder drei mal erlebt, daß irgend welche
speziellen Schnittstellentreiber das System extrem ausbremsen. Bei
normalen Desktop-Anwendungen merkt man das oft gar nicht, aber bei den
Schnittstellen sehr - und komischerweise auch bei der LPT.

Tschüß von
Roland

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.