Forum: Mikrocontroller und Digitale Elektronik AVR: LCD funktioniert mit ISP Programmer ohne nicht


von Torben M. (tueller)


Lesenswert?

Hallo Leute,

ich will ein LCD (Typ: LCD161A) mit einem Atmega8 betreiben.
Anhand des AVR GCC LCD Tutorial habe ich das LCD zum laufen gebracht.
Wenn ich das Programm mittels des AVRisp mk2 auf den Controller schicke 
wird Hallo Welt angezeigt. Ziehe ich aber den Programmer ab und schalte 
die Stromversorgung aus für einige Minuten, kommen nur schwarze 
Kästchen. Schicke ich das Programm erneut zum Controller wird wieder 
Hallo Welt angezeigt. Woran kann das liegen, ich vermute Timing 
Probleme.

Der Atmega8 nutzt den internen 1mHz Takt unter F_CPU habe ich 1200000 
eingetragen, weil ich irgendwo gelesen habe dass das der richtige Wert 
ist. Wäre hier 1000000 besser?

Euer Tueller

von M. K. (avr-frickler) Benutzerseite


Lesenswert?

Torben Müller schrieb:
> Der Atmega8 nutzt den internen 1mHz Takt unter F_CPU habe ich 1200000
> eingetragen, weil ich irgendwo gelesen habe dass das der richtige Wert
> ist. Wäre hier 1000000 besser?

Du sollst hier den tatsächlichen Wert eintragen mit dem dein AVR 
getaktet wird. Wenn der AVR also mit 1 Mhz getaktet ist gehört hier 
1000000 hin.

Torben Müller schrieb:
> Ziehe ich aber den Programmer ab und schalte
> die Stromversorgung aus für einige Minuten, kommen nur schwarze
> Kästchen. Schicke ich das Programm erneut zum Controller wird wieder
> Hallo Welt angezeigt.

Wie sieht deine Schaltung aus, vor allem die Spannungsversorgung und die 
Reset-Schaltung sind von Interesse!

von holger (Gast)


Lesenswert?

>Du sollst hier den tatsächlichen Wert eintragen mit dem dein AVR
>getaktet wird. Wenn der AVR also mit 1 Mhz getaktet ist gehört hier
>1000000 hin.

Er könnte aber auch einfach mal 16000000 angeben.
Dann sind die Delays auf jeden Fall lang genug.
Ansonsten mal BODLEVEL Fuse auf den höchsten
Spannungswert programmiern und die BODEN Fuse aktivieren.
Sieht irgendwie so aus als würde in das Display geschrieben
bevor die Spannung hoch genug für das Display ist.

von Axel S. (a-za-z0-9)


Lesenswert?

Torben Müller schrieb:

> Wenn ich das Programm mittels des AVRisp mk2 auf den Controller schicke
> wird Hallo Welt angezeigt. Ziehe ich aber den Programmer ab und schalte
> die Stromversorgung aus für einige Minuten, kommen nur schwarze
> Kästchen. Schicke ich das Programm erneut zum Controller wird wieder
> Hallo Welt angezeigt. Woran kann das liegen, ich vermute Timing
> Probleme.

Ich vermute eher, dein Controller kommt nicht aus dem Reset. Mach mal 
den empfohlenen 10K Pullup an Reset.


XL

von Cyblord -. (cyblord)


Lesenswert?

Reset Beschaltung zeigen.

von Torben M. (tueller)


Lesenswert?

Hallo :-)

lag am Reset, wie ihr vermutet habt.
Ich hatte einen defekten 100nF Kondensator in der Beschaltung, jetzt 
geht es. Hab ich erst nach euren Tips zum Reset gefunden, weil ich mir 
die Schaltung noch mal genauer angeschaut habe.

Danke für eure Hilfe

Tüller

von Cyblord -. (cyblord)


Lesenswert?

Das liegt nur daran dass überall (auch hier) irgendwelche überflüssigen 
Kondensatoren an Reset empfohlen werden. Weil man es vor 100 Jahren bei 
irgendwelchen uralt Bausteinen mal so machen musste. Schon der externe 
Pullup an Reset ist purer Luxus. Im Zweifel, und für einen Anfänger, ist 
hier weniger mehr.

gruß cyblord

von holger (Gast)


Lesenswert?

>lag am Reset, wie ihr vermutet habt.
>Ich hatte einen defekten 100nF Kondensator in der Beschaltung, jetzt
>geht es.

Da frag ich mich jetzt wie das AVRisp mk2
den defekten 100nF umgehen konnte;)

von Patrick W. (pawi777)


Lesenswert?

@cyblord:
falls du Atmels Meinung wissen willst ;)
http://www.atmel.com/images/doc2521.pdf

Gruss Patrick

von Thomas E. (thomase)


Lesenswert?

Patrick W. schrieb:
> falls du Atmels Meinung wissen willst ;)
Wenn du englisch kannst, liess dir den Text dazu durch.

mfg.

von Cyblord -. (cyblord)


Lesenswert?

Thomas Eckmann schrieb:
> Patrick W. schrieb:
>> falls du Atmels Meinung wissen willst ;)
> Wenn du englisch kannst, liess dir den Text dazu durch.
>
> mfg.

Eben, da steht frei übersetzt: "Man braucht keinen Kondensator aber wenn 
man hochgradig paranoid ist, dann kann man sich das antun, allerdings 
geht dann DebugWire usw. halt nicht mehr.
Ähnlich übrigens zum PullUp Widerstand.

Muss der Patrick halt irgendwann auch mal bissle Englisch lernen dann 
kann er Application Notes nicht nur verlinken sondern auch verstehen.

Bis dahin
gruß cyblord

von Patrick W. (pawi777)


Lesenswert?

Ich verstehe verdammt genau, was da steht, ich weiss dass der controller 
einen tiefpass und einen pullup enthält. Ich wollte eigentlich gar nicht 
cyblord addressieren, sondern den TO, sorry, mein fehler.  aber was das 
paranoid betrifft, ich denke atmel schribt nicht ohne grund, dass das 
rc- netzwerk notwendig sein kann. Nur ist "noisy environment" nicht 
ganuer spezifiziert.ausserdem verwendet nicht jeder debugwire und jtag.

Sorry wegen gross/klein, schreibe vom natel.

Gruss patrick

ps: ich gehe in die 6. klasse im gymnasium in urdorf(eines der besten 
schweizer gymnasien) und mein lehrer fragte mich nach einem vortrag, 
woher ich so gut englisch könne, bei ihm habe ich es nicht gelernt.  ich 
kann mit gutem gewissen behaubten, jedes englische datenblatt mühelos zu 
lesen. Ja, es nervt mich wenn jemand behaubtet, ich verstehe kein 
englisch, da ich englisch viel lieber habe, als deutsch ;)

von Karl H. (kbuchegg)


Lesenswert?

Patrick W. schrieb:
> ich denke atmel schribt nicht ohne grund, dass das
> rc- netzwerk notwendig sein kann.

Ein Überrollbügel und ein Sturzhelm können im Auto auch notwendig sein - 
wenn man Ralley fährt. Für Otto Normalverbraucher sind sie es aber 
nicht.

> Nur ist "noisy environment" nicht
> ganuer spezifiziert.

Zb. Maschinen mit starken Elektromotoren, generell alles wo mit starken 
Störungen elektrischer Natur zu rechnen ist. Und nein. Die 
Schreibtischlampe ist kein noisy environment.

von Patrick W. (pawi777)


Lesenswert?

@ kbuchegg:
Das ist nur deine, sicherlich vernünftige, interpretation. Allerdings 
kann schon ein schaltregler kleine störimpulse erzeugen. Atmel macht 
selbst keine genaueren angaben. Noisy environment kann sehr viel 
bedeuten. Ich stimme dir aber zu, dass meistens, auf dem schreibtisch 
sicher, wedrr kondensator noch pullup braucht. Ich habe sie nur ganz am 
anfang verwendet, weil es im tutorial empfohlen wird.


Btw: wo habe ich überhaupt behauptet, dass es den zusätzlichen pullup 
und/oder den kondensator braucht?

Gruss patrick

von Axel S. (a-za-z0-9)


Lesenswert?

Ich habe das anderswo schon gesagt und sage es gern auch hier noch mal: 
nach meiner Erfahrung (ja, richtig praktische Erfahrung, nicht nur 
Datenblatt lesen oder Spice starten) braucht man in der Regel einen 
Pullup-Widerstand am Reset-Pin eines AVR.

Zumindest der Mega8 ist hier noch nie ohne gelaufen. Und das obwohl mein 
Schreibtisch nun sicher kein "noisy environment" ist. Und auch nur ein 
paar mm Leiterzug zwischen Pin und ISP-Stecker sind. Vielleicht habe ich 
ja eine schlechte Charge des Mega8 erwischt. Oder der Typ ist generell 
kritisch (gerade mal nachgeschaut: Geräte mit Mega88 und classic2313 tun 
in der Tat auch ohne Pullup). Aber ein 10K Widerstand bringt einen nicht 
um. Und bei DW stört er auch nicht.

Einen Kondensator brauchts in der Tat nicht, weil das interne POR sehr 
gut funktioniert (so lange die Versorgungsspannung nicht extrem langsam 
ansteigt). Und aktuelle Typen haben ja auch BOD, die man tunlichst 
aktivieren sollte.


XL

von Cyblord -. (cyblord)


Lesenswert?

Axel Schwenke schrieb:

> Zumindest der Mega8 ist hier noch nie ohne gelaufen.
Dann machst du etwas richtig falsch. Bei mir laufen auf dem Steckbrett 
sämtliche AVR Controller ohne PullUp an Reset. Sogar mit Push Button und 
langen Leitungen.
Liegt bei dir evt. am ISP? Vielleicht hat der nen schwachen PullDown 
oder was weiß ich. Aber normal ist das nicht.
Ich kann den mySmartUSB Light und den Dragon da locker am Chip 
dranhängen lassen nach dem Programmieren. Die lassen Reset los und der 
läuft.

gruß cyblord

von Thomas E. (thomase)


Lesenswert?

Axel Schwenke schrieb:
> Zumindest der Mega8 ist hier noch nie ohne gelaufen.
Kann ich nicht beurteilen, weil ich die Dinger nicht benutze.
Aber irgendeinen veralteten Controller als Referenz zu nennen, ist doch 
schon etwas gewagt. Es behauptet ja auch niemand, daß VW nur lahme 
Kisten baut, weil der Käfer damals bloss 34 PS hatte.

Axel Schwenke schrieb:
> (so lange die Versorgungsspannung nicht extrem langsam ansteigt).
Dafür hilft ein 100nF-Kondensator sowieso nicht. Wenn der Controller 
keine Reset-Mimik eingebaut hat, benutzt man wie beim 8051 10 µF. Oder 
man nimmt einen externen Reset-Baustein. Aber das haben die AVRs alle 
eingebaut.

Nur wenn der 100nF-Kondensator den Unterschied zwischen "geht" und "geht 
nicht" ausmacht, dann liegt da aber ein anderes Problem vor. Denn auch 
Atmel schreibt in der AN, daß der Kondensator nur der zusätzlichen 
Sicherheit dient. So wie Hosenträger obwohl man einen Gürtel trägt.

mfg.

von Axel S. (a-za-z0-9)


Lesenswert?

cyblord ---- schrieb:
> Axel Schwenke schrieb:
>
>> Zumindest der Mega8 ist hier noch nie ohne gelaufen.

> Dann machst du etwas richtig falsch. Bei mir laufen auf dem Steckbrett
> sämtliche AVR Controller ohne PullUp an Reset. Sogar mit Push Button und
> langen Leitungen.
> Liegt bei dir evt. am ISP? Vielleicht hat der nen schwachen PullDown
> oder was weiß ich.

Liest du manchmal auch, bevor du schreibst? Die Problembeschreibung ist: 
Controller funktioniert, wenn der ISP angesteckt ist und funktioniert 
nicht mehr, wenn er abgesteckt ist. Und die Abhilfe ist: einen externen 
Pullup an Reset zu hängen.

Und anscheinend bin ich nicht der einzige, bei dem das so ist. Auf jeden 
Fall ist dieser Thread nicht der erste zu diesem Problem.

> Ich kann den mySmartUSB Light und den Dragon da locker am Chip
> dranhängen lassen nach dem Programmieren. Die lassen Reset los und der
> läuft.

Nein, die lassen Reset eben nicht los, sondern treiben Reset aktiv auf 
H. Was bei abgestecktem ISP dann der externe Pullup macht (und laut 
Datenblatt ein integrierter Pullup tun sollte).


XL

von Axel S. (a-za-z0-9)


Lesenswert?

Thomas Eckmann schrieb:
> Axel Schwenke schrieb:

>> (so lange die Versorgungsspannung nicht extrem langsam ansteigt).
> Dafür hilft ein 100nF-Kondensator sowieso nicht.

Auch du mußt das mit dem Lesen noch üben (und zitieren auch). Ich 
schrieb nirgends, daß ein Kondensator an Reset nötig wäre. Noch daß er 
bei langsam steigender Versorgung helfen würde:

Axel Schwenke schrieb:
> Einen Kondensator brauchts in der Tat nicht, weil das interne POR sehr
> gut funktioniert (so lange die Versorgungsspannung nicht extrem langsam
> ansteigt).

Was bei langsam ansteigender Versorgung hilft, schrieb ich übrigens auch 
schon:

Axel Schwenke schrieb:
> Und aktuelle Typen haben ja auch BOD, die man tunlichst
> aktivieren sollte.


XL

von Cyblord -. (cyblord)


Lesenswert?

Axel Schwenke schrieb:
> Nein, die lassen Reset eben nicht los, sondern treiben Reset aktiv auf
> H. Was bei abgestecktem ISP dann der externe Pullup macht (und laut
> Datenblatt ein integrierter Pullup tun sollte).
Woher weißt du das? Hast du gemessen? Die anderen ISP Pins werden auch 
losgelassen, warum nur Reset nicht? Außerdem glaube ich, das hängt vom 
Programmer ab. Und wenn es ohne ISP nicht läuft dann hat man eine 
verzockte Reset Schaltung die irgendwas dummes macht. Darum Reset 
Beschaltung weglassen. Für die Serienproduktion kann man sich dafür 
immernoch was schlaues ausdenken. Aber für einen Anfänger macht es mehr 
Probleme als es löst.

Kurzer Sinn: Auch ein Mega8 läuft ohne externe Beschaltung von Reset. 
Wie bisher jeder AVR der auf mein Steckbrett gekommen ist. Also erzähl 
mir nichts von Praxis.

gruß cyblord

von Thomas E. (thomase)


Lesenswert?

Axel Schwenke schrieb:
> Liest du manchmal auch, bevor du schreibst?

Axel Schwenke schrieb:
> Auch du mußt das mit dem Lesen noch üben

Axel Schwenke schrieb:
> Einen Kondensator brauchts in der Tat nicht, weil das interne POR sehr
> gut funktioniert (so lange die Versorgungsspannung nicht extrem langsam
> ansteigt).

na wenn du meinst.


cyblord ---- schrieb:
> läuft ohne externe Beschaltung von Reset.  Wie bisher jeder AVR
Volle Zustimmung.

mfg.

von Torben M. (tueller)


Lesenswert?

Ganz ruhig Kollegen.

Wollte hier keinen Streit losbrechen.
Bei mir hat sich das Problem durch das ersetzen des Kondensators 
behoben.
Mag sein dass dies selten ist, war aber so.
Ich verwende ein einfaches Netzteil was vielleicht die Probleme ohne 
Programmer verursacht, jetzt geht es aber.

Tueller

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.