Zufällige Fehler beim Lesen und Schreiben in den AVR

M

Michael B. Simon

Guest
Hallo Leute!

Es hat mich einige Zeit gekostet das "Programmiergerät" für die AVRs
aufzubauen. Letztlich ist es dennoch gelungen und es gab mir richtig
Glücksgefühle, als ich in yaap auf "Detect device" klickte und alles sauber
funktionierte.

Jetzt gibt es aber noch einen kleinen Schönheitsfehler, bei dem ihr
sicherlich auf Anhieb wisst, was da falsch läuft. Ich übertrage mein
Programm. Anschließend klicke ich auf "Verify" und das Programm scheint
falsch übertragen worden zu sein. Meist steckt der Fehler so um die Adresse
0x200, manchmal aber auch direkt bei 0x000 (dazwischen ist eigentlich noch
nie ein Fehler aufgetreten). Die Übertragung scheint dabei, mit Ausnahme der
Adresse 0x000, immer erfolgreich zu laufen, denn: Klicke ich nachher (sogar
bei gelöschtem Chip!) auf "Programm einlesen" erhalte ich zufällige Werte an
zufälligen Stellen vorallem im Bereich um Adresse 0x200 und später.
Irgendwie scheint die Kommunikation also nicht so ganz zu klappen, denn ohne
im Chip was zu ändern kann ich ja nicht ständig neue Werte bekommen.

Das erste woran ich da dachte war, das die Spannungsversorgung vielleicht
ein wenig schwankt. Ich habe in der Schaltung einen 7805-Spannungsregler und
versorge mit 9V. Am Spannungsregler ist 1 Elko mit 10ľF und 2 Kondensatoren
104, also 100nF, jeweils davor und dahinter. Bei den beiden ICs, die ich
verwende (74HCT244 und der ľC selbst), sind bei beiden IC-Sockeln innen
jeweils ein 100nF Kondensator zwischen VCC und GND eingelötet. Ich dachte
eigentlich, das das für eine stabile Spannung reicht. Das Netzteil ist
vielleicht etwas schwächlich: 9V, 5W, max. 300mA.

Liegt das jetzt an der Spannung oder ist was an der Schaltung gefuscht? Wäre
gut, wenn mir da jemand helfen kann. Als Anfänger ist das nämlich ein
ziemlich schwieriger Fehler.

Vielen Dank für alle Antworten
Michael B. Simon
 
Wie lang ist denn die Zuleitung zu Deinem Programmer?
(Par-Port -> Programmer)

Artur
 
"Michael B. Simon" <bitte-keine-mails@email.de> wrote in message
news:bgc1pp$ik9$06$1@news.t-online.com...
Hallo Leute!

Jetzt gibt es aber noch einen kleinen Schönheitsfehler, bei dem ihr
sicherlich auf Anhieb wisst, was da falsch läuft. Ich übertrage mein
Programm. Anschließend klicke ich auf "Verify" und das Programm
scheint
falsch übertragen worden zu sein. Meist steckt der Fehler so um die
Adresse
0x200, manchmal aber auch direkt bei 0x000 (dazwischen ist
eigentlich noch
nie ein Fehler aufgetreten). Die Übertragung scheint dabei, mit
Ausnahme der
Adresse 0x000, immer erfolgreich zu laufen, denn: Klicke ich nachher
(sogar
bei gelöschtem Chip!) auf "Programm einlesen" erhalte ich zufällige
Werte an
zufälligen Stellen vorallem im Bereich um Adresse 0x200 und später.
Irgendwie scheint die Kommunikation also nicht so ganz zu klappen,
denn ohne
im Chip was zu ändern kann ich ja nicht ständig neue Werte bekommen.

[...]
Kontrolliere doch mal ob RESET die ganze Zeit der Programmierung auf
LOW bleibt;
ansonsten RESET manuell ziehen und dann schauen ob es fehlerfrei
klappt....

Wenn das nicht klappt, würde ich es mal mit einem 74LS244
probieren....

Leitung von ParPort - wie geschrieben - ist bei mir auch 2m lang; null
Probleme;
GND und SHIELD nur am PC zusammen !

....und natürlich die Verdrahtung nochmal kontrollieren (bei Deinem
STK200 Nachbau :)

noch ein Tipp: probiere es noch mit dem "BASCOM AVR", der ist schnell
downgeloaded
und ich finde das Programmer-Interface recht stabil; evtl auch mal ein
paar Delays in Deinen
Programmer einbauen (PC zu schnell; LPTx nicht sauber ?)

Viele Grüße, Stephan
 
"Michael B. Simon" <bitte-keine-mails@email.de> wrote in message
news:bgdf01$s52$07$1@news.t-online.com...
Hallo!

[...] GND und SHIELD nur am PC zusammen ! [...]
Bei mir beträgt die Kabellänge auch etwa 2m. Es ist ein 8adriges
Kabel mit
einem Außenschirm. Als du GND erwähnt hast ist mir eingefallen, dass
ich am
Par-Port Anschluß nur Pin 20 mit Masse verbunden habe. Ich habe
keine Brücke
bis Pin 25 gezogen. Kann das ein Fehler sein? Oder würde es dann gar
nicht
funktionieren? Außerdem habe ich den Außenschirm auf keiner Seite
verbunden.
das ist wahrscheinlich weniger schlimm als auf beiden Seiten :)
"Störfelder" können wir also wohl erstmal ausschliessen, da Du den
ganzen Apparatus
auf Deinem Schreibtisch aufgebaut hast ?!

Kontrolliere doch mal ob RESET die ganze Zeit der
Programmierung auf
LOW bleibt; [...]
Leider habe ich dazu nicht genügend schnelle Messgeräte. Ich kann
ihn aber
auf LOW ziehen. Das werde ich gleich mal versuchen.
Eine LED ersetzt das schnelle Messgerät !
.... oder eben der Finger auf dem RESET taster/DIP-Brücke
....... der RESET Pin ist mit ca. 10k nach Vcc gezogen ?

Wenn das nicht klappt, würde ich es mal mit einem 74LS244
probieren.... [...]
Statt HCT ein LS? Ich hätte jetzt so als Anfänger eher daran
gedacht, das
der Chip zu langsam ist.
klar, aber nicht für diese recht bescheidenen Übertragungsraten...

LS ist doch langsamer als HCT, oder? Braucht nur
weniger Strom. Mich würde interessieren, warum du den LS
vorschlägst.
die CMOS Dinger sind halt etwas sensibel auf offenen Eingänge;
vielleicht schwingt bei Dir
auf dem Testboard was ?? (ausser dem Quarz :)
Bei solchen fliegenden Aufbauten KANN das ein Problem sein....

Runtergeladen; wird jetzt sogleich ausprobiert!
....und ?

Der BASCOM hat auch einen ResetButton (und in der Hilfe sind sogar die
Schaltpläne der
üblichen Programmer enthalten; vergleiche doch nochmal alles !)

..... hth, Stephan
 
Ich habe aus Spaß mal einen anderen Computer benutzt. Mit einem billigen
Mainboard von Gainward. Das Ergebnis: Das Schreiben klappt fast immer.
Adresse 0x0 nach wie vor mal ab und zu falsch beschrieben. Beim Auslesen ist
exakt jede 16 Adresse nicht so, wie sie sein sollte.
Seltsam. Findet man evtl. nie raus woran das liegt.

Daraufhin habe ich mal dieses billige Netzteil durch ein stabilisiertes
13,8V Netzteil ersetzt. Siehe da: Am Gainwardcomputer funktioniert alles
einwandfrei.
Liegt möglicherweise gar nicht mal an der Stabiliesierung sondern evtl.
an der besseren unterdrückung von Störungen aus dem Netz. So ein
Beispiel hatte ich schon mal. Am Steckernetzteil hatte ich immer
Watchdog-Resets, am guten Netzteil keine Probleme.

Mit dem gleichen Netzteil an den Computer mit MSI-Mainboard. Der weitere
Unterschied bei diesem Computer ist: Er benutzt Windows 2000 Adv. Server,
der Gainwardcomputer Windows 2000 Prof. - vielleicht macht das einen
Unterschied in der Kommunikation.
Bei WinNT u.ä. ist ein genaues Timing an der Schnittstelle glückssache, ich
gehe mal davon aus dass der Port nicht "normal" genutzt wird sondern das
Programm versucht eine bestimmtes Timing trotz Betriebsystem zu erzeugen.
Probier mal ein möglichst altes OS aus, Win98 oder vorher, evtl. auch
DOS. Da gehen solche Sauereien mit Schnittstellen noch besser.


Ich sollte vielleicht noch dazu sagen, dass ich zuvor Pin 20 bis 25
untereinander verbunden habe, so dass diese alle Masse führen.
Sollte kein Problem sein, da die AFAIK auch im Rechner so verbunden
sind.

Bis die Tage
Georg
 
Hallo Michael,

"Michael B. Simon" schrieb:
Nocheinmal bin ich es mit neuen Ergebnissen, die mich ein wenig verwirren!


Daraufhin habe ich mal dieses billige Netzteil durch ein stabilisiertes
13,8V Netzteil ersetzt. Siehe da: Am Gainwardcomputer funktioniert alles
einwandfrei. Auch, wenn ich 100 Mal auf "Verify" klicke stellt die Anwendung
keinen Fehler zum Originalprogramm fest. Lesen, schreiben - alles kein Thema
mehr.
Du hast vermutlich zwei Fehlerquellen.
1. Fehler hast du ausgeschaltet durch ein gutes Netzteil,das eine
saubere und stabile Gleichspannung liefert.
Mit dem gleichen Netzteil an den Computer mit MSI-Mainboard. Der weitere
Unterschied bei diesem Computer ist: Er benutzt Windows 2000 Adv. Server,
der Gainwardcomputer Windows 2000 Prof. - vielleicht macht das einen
Unterschied in der Kommunikation. Das Resultat dieses Tests: Ab Adresse
0x200 wird wieder mal nur Schrott gelesen! 10 Mal auf Auslesen geklickt -
10mal ein anderes Ergebnis ab Stelle 0x200.
2. Fehler ist das Betriebssystem Win 2000. Zugriffe auf die
Schnittstellen werden vom OS abgefangen. Dadurch hast du
Timingprobleme,und je schneller der Rechner desto schlimmer. Aber diese
Angaben ohne Gewähr ,da ich sie auch selber nur aus dritter Hand
habe.Deshalb arbeite mit Win 95/98, dies sind ja aufgemotzte DOS-Systeme
und damit klappt es bei mir prima.
Wo liegt jetzt der Fehler? Bei der Schaltung kann er doch jetzt nicht mehr
liegen, oder? Mein Mainboard ist jawohl nicht defekt!?
s. oben.

Gruß
Bodo
 
Hallo Michael,

"Michael B. Simon" schrieb:
Nocheinmal bin ich es mit neuen Ergebnissen, die mich ein wenig verwirren!


Daraufhin habe ich mal dieses billige Netzteil durch ein stabilisiertes
13,8V Netzteil ersetzt. Siehe da: Am Gainwardcomputer funktioniert alles
einwandfrei. Auch, wenn ich 100 Mal auf "Verify" klicke stellt die Anwendung
keinen Fehler zum Originalprogramm fest. Lesen, schreiben - alles kein Thema
mehr.
Du hast vermutlich zwei Fehlerquellen.
1. Fehler hast du ausgeschaltet durch ein gutes Netzteil,das eine
saubere und stabile Gleichspannung liefert.
Mit dem gleichen Netzteil an den Computer mit MSI-Mainboard. Der weitere
Unterschied bei diesem Computer ist: Er benutzt Windows 2000 Adv. Server,
der Gainwardcomputer Windows 2000 Prof. - vielleicht macht das einen
Unterschied in der Kommunikation. Das Resultat dieses Tests: Ab Adresse
0x200 wird wieder mal nur Schrott gelesen! 10 Mal auf Auslesen geklickt -
10mal ein anderes Ergebnis ab Stelle 0x200.
2. Fehler ist das Betriebssystem Win 2000. Zugriffe auf die
Schnittstellen werden vom OS abgefangen. Dadurch hast du
Timingprobleme,und je schneller der Rechner desto schlimmer. Aber diese
Angaben ohne Gewähr ,da ich sie auch selber nur aus dritter Hand
habe.Deshalb arbeite mit Win 95/98, dies sind ja aufgemotzte DOS-Systeme
und damit klappt es bei mir prima.
Wo liegt jetzt der Fehler? Bei der Schaltung kann er doch jetzt nicht mehr
liegen, oder? Mein Mainboard ist jawohl nicht defekt!?
s. oben.

Gruß
Bodo
 
"Bodo Häusler" <Joerg-Bodo@gmx.de> wrote in message
news:3F2FF6D4.904A1350@gmx.de...
Hallo Michael,

"Michael B. Simon" schrieb:

Nocheinmal bin ich es mit neuen Ergebnissen, die mich ein wenig
verwirren!
@Michael:
wie ist denn der Stand der Dinge ?!

2. Fehler ist das Betriebssystem Win 2000.
naja... immer leicht gesagt !
Ich hab auch w2k und KEINE derartigen probleme.

Viele Grüße, Stephan
 

Welcome to EDABoard.com

Sponsor

Back
Top