Zufällige Fehler beim Lesen und Schreiben in den AVR

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

Reply to
Michael B. Simon
Loading thread data ...

Wie lang ist denn die Zuleitung zu Deinem Programmer? (Par-Port -> Programmer)

Artur

Reply to
Artur Pundsack

scheint

Adresse

eigentlich noch

Ausnahme der

(sogar

Werte an

denn ohne

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

Reply to
Stephan

Kabel mit

ich am

keine Brücke

nicht

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 ?!

Programmierung auf

ihn aber

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 ?

gedacht, das

klar, aber nicht für diese recht bescheidenen Übertragungsraten...

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

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

Reply to
Stephan

Seltsam. Findet man evtl. nie raus woran das liegt.

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.

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.

Sollte kein Problem sein, da die AFAIK auch im Rechner so verbunden sind.

Bis die Tage Georg

Reply to
Georg Seegerer

Hallo Michael,

"Michael B. Simon" schrieb:

Du hast vermutlich zwei Fehlerquellen.

  1. Fehler hast du ausgeschaltet durch ein gutes Netzteil,das eine saubere und stabile Gleichspannung liefert.
  1. 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.

s. oben.

Gruß Bodo

Reply to
Bodo =?iso-8859-1?Q?H=E4usler?

Hallo Michael,

"Michael B. Simon" schrieb:

Du hast vermutlich zwei Fehlerquellen.

  1. Fehler hast du ausgeschaltet durch ein gutes Netzteil,das eine saubere und stabile Gleichspannung liefert.
  1. 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.

s. oben.

Gruß Bodo

Reply to
Bodo =?iso-8859-1?Q?H=E4usler?

verwirren! @Michael: wie ist denn der Stand der Dinge ?!

naja... immer leicht gesagt ! Ich hab auch w2k und KEINE derartigen probleme.

Viele Grüße, Stephan

Reply to
Stephan

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.