www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Bitte helft mir. Schon wieder AtMega16


Autor: Alex (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
eeem, ich habe ein Problem.
seiss aber nicht mal annähernd woran es liegen könnte.
der µC lässt sich programmieren, aber es tut sich am LCD nichts.
dazu habe eine schaltung rausgehohlt, die ich früher schon gebaut hat.
sie hat 200% funktioniert.
da ist nur der Atmega16, seine Stromversorgung und ein Anschluss für den 
LCD drauf.. mehr nicht. kann eigentlich nichts kaputt gehen.
 habe den µC da auf die Platine reingesteckt. es tut sich nichts..
...???...
dann habe ich schnell dieses Programm hier geschrieben:



$regfile = "m16def.dat"
 $crystal = 8000000

 Config Lcd = 16 * 2
 Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , 
Db7 = Portb.3 , E = Portb.5 , Rs = Portb.4

Cls
Do

Locate 1 , 1
Lcd "hello"
Wait 200
Loop




also nur das nötigste.
es funzt einfach nicht.
meine fuse-einstellung ist im Anhang.
wo kann denn das Problem liegen?
also LCD ist ganz bestimmt in Ordnung. habe sogar 2, die immer 
funktioniert haben.
Am programm ist auch alles glatt. (denke ich mal).

Ich weiss das Thema nervt euch alle schon langsam, aber ich bin echt 
ratlos.
Danke. MfG Alexander

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
weisst das keiner?

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schaltungsskizze? Wo liegt R/W vom Display?

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Schaltungsskizze? Wo liegt R/W vom Display?

ist genau so wie hier angeschlossen.
http://www.roboternetz.de/wissen/images/thumb/e/ec...
am Hardware habe ich nichts verändert, und sie hat ummer funktioniert.. 
bloss jetzt auf einmal nicht.

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> $crystal = 8000000

Das passt nicht zu dem Bild mit den Fuses. Laut Fuses hast du

$crystal = 1000000

Taktquelle ist der interne RC-Oszillator des Atmega16. Das falsche 
Statement könnte dir das Timing zur Ansteuerung des LCD aus dem Tritt 
bringen.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Das kann dir das Timing zur Ansteuerung aus dem Tritt bringen.
habe ich gerade eben Ausprobiert.
hat sich nichts verändert :(

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde das LCD erstmal weglassen und eine LED zum Blinken bringen 
bzw. wenn keine LED zur Hand einen Port HIGH schalten und mit dem 
Multimeter nachmessen. Damit ist sichergestellt, ob der Atmega16 läuft 
oder nicht.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Stefan B
sehr gute Idee
werde ich sofort mal machen :)
danke

Autor: Dummy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde mal den Kontrast aufdrehen.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so, habe ich gemacht.
und zwar mit diesem Code hier:


$regfile = "m16def.dat"
$crystal = 10000000

Portb = 0


5v Alias Portb.0
Waitms 200
Do


      Set 5v
      Wait 10
      Reset 5v
      Waitms 10
Loop

End

fuse bits sind gleich geblieben.

allerdings macht es statt 10 sekunden irgendwie ca 25 sekunden.
wie kann das angehen?

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ich würde mal den Kontrast aufdrehen.

alles schon probiert.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und nun?

Autor: Sven F. (sven0876)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
welchen quarz haste den am atmega???
du sagst bascom das es mit 10mhz läuft und nicht wie deine fusebits mit 
1MHz las mal ne null weg bei deinem "$crystal = 1000000"

sven

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@sven
habe gar keinen quarz, darum auf int. gastellt.

Autor: Sven F. (sven0876)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sorry hatte was üebersehen
siehe oben

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> $crystal = 10000000

Zähl mal die Nullen!
$REGFILE = "m16def.dat"
$CRYSTAL = 1000000

CONFIG CLOCKDIV = 1   ' zur Sicherheit Taktteiler so einstellen wie 
                      ' wir wollen und nicht auf Default verlassen
CONFIG Portb = Output
SET Portb.0           ' AN

DO
   TOGGLE Portb.0     ' AN => AUS => AN => ...
   WAIT 10            ' 10 Sekunden warten
LOOP

END

Autor: Roland Z. (r-zimmermann)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

auch eine Fehlerquelle ist gerne der LCD-Kontroller, besonders die 
KS-Serie der ist zwar sehr gut Kompatibel aber nicht 100%. Bei mir lief 
es immer wenn nach der Konfig nochmals das LCD initialisiert wurde.

Kontrollier mal die Anschlüsse am LCD, wenn die absolut richtig sind, 
füge in deinem LCD-Programm vor dem cls-Befehl noch ein "initlcd" ein. 
Wenn elektrisch alles korrekt ist sollte das gehen es sei den du hast 
noch ein Timingproblem durch eine inkorrekte Angabe des Taktes.

Roland

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Stefan B.

CONFIG CLOCKDIV = 1       ---- Invalid Datatyp [0]
ich kenne diesen Befehl leider nicht, desswegen kann ich das nicht 
bearbeiten .

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lass die Zeile weg. Spielt beim Atmega16 keine Rolle. Sorry.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Lass die Zeile weg. Spielt beim Atmega16 keine Rolle. Sorry.

habe ich gemacht. jetzt zählt er richtig! danke.
löst aber das Problem mit dem LCD nicht.
habe da im Code natürlich auch 1000000Mhz eingesetzt.


zwischen config lcd und cls habe ich noch "initlcd" hinzugefügt.. ohne 
Erfolg. :(

Autor: Sven F. (sven0876)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nochwas nach roboternetz schließt du am port c an laut soft aber an port 
b

sven

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>laut soft aber an port b

ja ist schon richtig...
ist eigentlich nach portB angeschlossen.
also wie gesagt.. das hat alles funktioniert. an der Hardware habe ich 
nichts geändert.
ich habe mich mit dem Projekt beschäftigt.. dann habe ich es für ein 
paar Tage liegen lassen, und heute morgen wollte der LCD nichts mehr 
ausgeben.

Autor: booster (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hatte auch schon so einen Fehler. Ursache war der Proprammieradapter 
welcher noch an der Platine angesteckt war.

Autor: Holger Krull (krulli) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Teile dem LCD Controller doch noch bitte mit, das Du den 4 Bit Modus 
wünscht.
Config Lcdbus = 4

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ursache war der Proprammieradapter welcher noch an der Platine angesteckt >war.

ich habe keinen programmieranschluss auf der platine.
da ist nur ein anschluss für den LCD.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ holger

habe ich

 $crystal = 1000000

 Config Lcdbus = 4
 Config Lcd = 16 * 2
 Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , 
Db7 = Portb.3 , E = Portb.5 , Rs = Portb.4
 Initlcd
....

passiert nichts.
µC kaputt?
aber warum?

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> µC kaputt?

Wie kommst du darauf? Dein Multimetertest hat doch gezeigt, dass 
zumindest der µC läuft und dass Portb.0 nicht geschrottet ist. Wenn du 
bzgl. der anderen Portpins unsicher bist, kannst du die ja genau so 
testen.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wie kommst du darauf?
was kann es sonst noch sein?

Autor: Holger Krull (krulli) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist denn auf dem LCD wenigstens ein schwarzer Balken zu sehen?

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ist denn auf dem LCD wenigstens ein schwarzer Balken zu sehen?
ja, wenn ich den Kontrast aufdrehe!
 :((

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was könnte ich denn noch machen?

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Verdrahtung überprüfen. Noch und Nöcher. Beim Durchklingeln nötigenfalls 
direkt zwischen Portpin und LCD-Kontroller messen. Beim Zählen immer 
schön bei PIN 1 anfangen und nicht irgendwo anders.

Der 4-Bit-Init ist eine ziemlich blöde Angelegenheit. Die Timingzeiten 
der Kontroller varieren doch sehr stark.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
... mal etwas Zeit verstreichen lassen, bis der initlcd
kommt.
Alternativ: mal beides einschalten und dann nur den µC
einzeln resetten.
Hitergrund: Das LCD braucht nach dem Anlegen der Spannung
etwas Zeit bis seine eigene Reset-Sequenz durchlaufen
ist. Wenn der µC daher zu früh loslegt, dann ist das
LCD noch nicht fertig und der Anfang der Init Sequenz
geht in die Hose.


Du gibst zu schnell auf :-)

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Keine schlechte Idee. Vieleicht Bascom's Lahmheit einfach einen oben 
draufsetzen und den Code einfach mit einem Waitms 1000 anfangen lassen 
:)

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Karl heinz Buchegger
danke schön! :)))
werde ich dann morgen früh ausprobieren, wenn ich wieder auf der Arbeit 
bin.
da ich zu Hause sowieso keinen Parallelenport habe, lasse ich die Sachen 
dort liegen. :)
soll ich einen Reset-Taster anbringen?
Einfach gegen 5V tasten, oder?
:) Alex

Autor: jack (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>soll ich einen Reset-Taster anbringen?
>Einfach gegen 5V tasten, oder?

Liest Du eigentlich überhaupt nichts? Nichtmal Datenblätter?

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Liest Du eigentlich überhaupt nichts? Nichtmal Datenblätter?
uups, sorry :))
habe mich verschrieben.. ich meinte gegen GND natürlich :)))

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> was könnte ich denn noch machen?

Poste den konkreten Schaltplan und/oder ein aussagekräftiges Foto vom 
Hardwareaufbau.

Insbesondere interessiert mich, wie du die Verstrippung an Portb.5 und 
Portb.4 gemacht hast. Diese Pins von PortB sind nämlich auch Teil der 
ISP Programmierschnittstelle.

Hast du beim Ausprobieren des LCD einen ISP Adapter (Welchen?) 
angeschlossen oder ziehst du den jeweils ab?

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Hast du beim Ausprobieren des LCD einen ISP Adapter angeschlossen

wie ich schon geschrieben habe, es gibt auf dieser Platine keinen 
Anschluss für ISP.
ich stecke dem µC zum proggen immer um ;)
foto werde ich morgen mal machen :)

Autor: Troll Blaubär (blaubeer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alex wrote:
> habe da im Code natürlich auch 1000000Mhz eingesetzt.

Eine Million Megahertz, also 1000 Gigahertz oder 1 Terahertz.

So einen AVR will ich auch haben!!!

Uuuuunnnnnbedingt!!!


> ist genau so wie hier angeschlossen.
> http://www.roboternetz.de/wissen/images/thumb/e/ec...

Warum fragst Du eigentlich nicht dort nach, wo Du die Schaltung her 
hast, die bei Dir nicht funktioniert?? Dort sind vielleicht die Leute, 
die diese Schaltung entwickelt haben und sich damit auskennen. Wenn ich 
Fragen zu einem OBI-Produkt habe, frage ich doch auch nicht bei 
Eisenkarl.

MfG, Blau, bärischer

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kotz ist man denn nirgens vor diesem Trollpack gefeit, die alles und 
jeden meinen mit ihrem geistigen Dünnschiss behelligen zu müssen?!

Geh sterben! Aber bitte leise....

Autor: Holger Krull (krulli) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich möchte nun langsam wissen, warum Blaubier sich immer in Bascom 
Fachgespräche einmischt. Sei ruhig, wir wollen unseren Spagetticode 
selber auslöffen. Viele Grüße in den Blaubärwald... :))

Autor: Roland Z. (r-zimmermann)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm,

ich kann diese ganzen Spitzen in denen immer gegen Bascom geschossen 
wird ehrlich gesagt nicht verstehen. Ich Programmiere in C und auch ab 
und zu in Bascom, bin ich jetzt nicht l33t nur weil ich kein gnadenloser 
C oder Assembleranhänger bin der alles andere abwertet und verteufelt? 
Jeder kann mit der Programmiersprache die er will glücklich werden, 
zumindest ist das mein Standpunkt.

@Blaubeer, wenn du sinnvolle informationen zu dieser diskussion 
beizutragen hast, her damit, wenn nicht halte dich bitte raus (einen 
härteren Ton verkneife ich mir jetzt)

@Alex was für ein Display verwendest du, genauer gesagt welchen 
Controller hat das. Schaltplan deiner Schaltung wäre auch gut dann 
wissen wir wovon wir reden. Ich kann dir dann evtl. auch schnell nen 
Democode tippseln, und den vorher schnell auf dem Breadboard 
ausprobieren bei mir damit du sicher bist das der rennt.

Roland

Autor: jack (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>bin ich jetzt nicht l33t nur weil ich kein gnadenloser
>C oder Assembleranhänger bin der alles andere abwertet und verteufelt?

Die Abneigung gegen Bascom resultiert wahrscheinlich nicht so sehr aus
der Sprache selbst, sondern daraus, daß viele unbedarfte junge Menschen
meinen, sie könnten jetzt plötzlich programmieren, weil Bascom ihnen
alles abnimmt und sie sich nicht mehr um die Hardware kümmern müssen
(glauben sie).

Daraus entstehen dann viele mühsame Threads ;-)

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke an alle für die Unterstützung!
@Roland
zum Display kann ich leider nicht viel sagen, weil das gerade auch der 
Arbeit liegt, und ich zu Hause bin. ich weiss nur dass es 14 pins hat.
Zum Schaltplan: Ich hatte von sowas wie einen Bordcomputer zu bauen.
mit Bordspannungsanzeige, Temp. innen/ aussen, Drehzahlmesser, 
Motortemperatur, Öldruck, usw.
Die temp. anzeige habe ich schon mit dem KTY-81 und einem OP realisiert.
die Spannung messe ich dann mit dem ADC.
Drehzahl funktioniert auch. mit dem f/U Wandler (weiss die genaue 
Bezeichnung nicht aus den Korf) wandle ist die Frequenz von Unterbrecher 
in die Spannung um, die auch nicht dem ADC erfasst wird. Zw, 
Unterbrecher und f/U-Wandler habe ich noch einen Schmitt-Trigger 
eingesetzt.
Bordspannung auch klar: Spannungsteiler und ab an den ADC :)) (ADC ist 
meine Lieblingsfunktion, weil ich damit auch umgehen kann).
nachdem ich alles bis dahin fertig war, musste ich auf der Arbeit paar 
Funkanlagen und noch paar Kleinigkeiten reparieren. Also kabe ich meine 
Schaltung erst mal zur Seite gelegt. nach 4 Tagen, also heute Morgen, 
wollte ich weitermachen. eingeschaltet...... funktioniert nicht mehr.
warum? weiss ich nicht. habe damit wirklich nichts gemacht, nochts 
verändert.
Ich dachte erst wenn ich den µC neu programmiere, wird es alles wieder 
laufen. aber ich hatte mein ISP nicht dabei.
musste ich als neuen schnell löten.
fertig! alles angeschlossen.... ponyprog.... hex-Datei..... 
schreiben.... verifiring... writing sucesfull... testen.......... GEHT 
NICHT!
dann dachte ich lcd sei kaputt. den Anderen genommen. Kabel war schon 
früher angelötet.
Geht wieder nicht.. dann habe ich diesen Theard erstellt.
Inzwische ist mir aufgefallen, dass ich noch eine Schaltung habe, die 
ich schon früher, als ich geübt habe, gebastelt hatte. die hat auch 
funktioniert.
da ist nur der AtMega16, 7805, 100n ein 10k R und ein Anschluss für den 
LCD drauf. "nun muss es aber gehen" - habe ich gadacht!
µC auf die platine... einschalte... Geht immer noch nicht...
dann habe ich mein Quellcode so weit bearbeitet, dass es nur "Hello" 
ausgeben sollte.. hat auch nicht funktioniert.
Dann habe ich noch mal den Datenblatt angeguckt, zu den Fuses noch was 
gelesen... paar fuses anders gesetzt. es hat sich nichts verändert.
die geschichte weiter muss ich nicht erzählen.. es steht oben schon 
alles.
nun bin ich echt RATLOS.
Danke, dass ihr mir helft!
MfG Alexander

Autor: jack (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>nun bin ich echt RATLOS.

Du kannst eigentlich nur ganz von vorn anfangen:

Schreib ein kleines Programm das eine Led blinken läßt.
Wenn das geht, versuche das LCD zu initialisieren, am besten im 8-Bit
Modus. Und so weiter.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Schreib ein kleines Programm das eine Led blinken läßt.
habe ich schon, um den µC zu testen.. das läuft.
muss noch 8-bit modus probieren.

Autor: Stefan Wimmer (wswbln)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
..und der Reset-Pin ist wie beschaltet?

Mann, muss man Dir wirklich die Würmer einzeln aus der Nase ziehen? 
Warum postest Du nicht - wie schon mehrmals erbeten - einen Schaltplan 
und/oder Fotos vom Aufbau??

Autor: winne (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat der 16 zufällig ne Jtag?

wenn ja muss diese dezidiert abgeschaltet werden solltest du die 
betreffenden pins verwenden wollen () beim 32er betrifft es Port D oder 
C Pins. da der 16er wohl etwas scmaler ist könnte ich mir vorstellen, 
das es die unteren Ports betrifft.

Autor: jack (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Hat der 16 zufällig ne Jtag?

Natürlich. Das wär wieder der Klassiker: JTAG-Fuse gesetzt.

Autor: Mr. Fluke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Hat der 16 zufällig ne Jtag?

Tja, das weiß man immer nicht genau. Ich hatte auch schonmal nen 
Atmega8, der hatte sogar 16kB Flash, und 1,5kByte SRAMdafür leider aber 
kein eeprom.

Hm, Zufälle gibts.
Grüße

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Warum postest Du nicht - wie schon mehrmals erbeten - einen Schaltplan
>und/oder Fotos vom Aufbau??
wie ich schon mehrmal gesagt habe, liegt die Schaltung auf der Arbeit. 
ich komme morgen früh dahin, und schon um 7.00 sind die fotos da :)

@winne :JTAG hat mega16 aum PortC.

>Natürlich. Das wär wieder der Klassiker: JTAG-Fuse gesetzt.
ist NICHT gesetz

Autor: Jörg B. (joerg-sh)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei mir war es ja bis jetzt immer das eine Leitung nicht richtige 
angeschlossen war. Grad bei nicht durchkontaktierten Platinen...

Das hab ich dann auch meist immer nach Stunden gefunden anstatt gleich 
ALLE Leitungen durch zu klingeln...

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Jorg B.
bei mir sind das auf einmal 2 Platinen, die davon perfekt funktionier 
haben.. etwas verdächtig, wenn die 2 zum gleichen Zeitpunkt kaputtgehen.

Autor: Jörg B. (joerg-sh)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
an beiden das selbe Display (angesteckt) ?

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Jörg B.
nein, ich habe 2 ganz verschiedene.

Autor: Alex (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen.
so, die fotos sind im Anhang.

Autor: Alex (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
und noch ein.

Autor: Ronny Spiegel (duselbaer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ganz schön eng aufgebaut :)

Hast Du schonmal die Batterie gewechselt/geprüft? Externen Takt mal an 
XTAL1 gegeben, hilft das vielleicht?

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Ronny Spiegel

ENG hat glaube ich eronisch bemeint, oder?
da kommen noch viele Sachen dazu.. sollten zumindestens, desswegen habe 
ich mir noch Platz gelassen.
Batterie ist ok, 8.5V. da sind sowieso 7805s drauf.
warum soll ich takt anlegen, wenn der int. Oszillator aktiv ist?

Autor: Ronny Spiegel (duselbaer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ENG hat glaube ich eronisch bemeint, oder?

ja :)

> Batterie ist ok, 8.5V. da sind sowieso 7805s drauf.
> warum soll ich takt anlegen, wenn der int. Oszillator aktiv ist?

Ich hab mir jetzt nicht alles durchgelesen, aber Du schreibst, dass der 
uC nicht mehr losrennt (warum auch immer). Ein externer Takt (ich hab da 
meisst nen Tiny genommen und den schnell geflasht, Quarzoszillator oder 
ähnliches tuts natürlich auch) hat da bei mir schon oft Wunder bewirkt.

Ansonsten würde ich mal versuchen, den uC auszutauschen, nur um 
sicherzustellen, dass der nicht defekt ist.

Was mir auch schon passiert ist:

Binary war falsch gelinkt (Makefile war nicht so doll, nur mal eben 
zusammengeschustert). Das hatte zur Folge, dass das Programm immer 
gestartet ist und dann, sobald ein Timer aktiviert wurde, wieder neu 
gestartet wurde. Hat mich bestimmt auch ein paar Stunden gekostet, die 
Ursache zu finden...

Gruss,

RSp

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Du schreibst, dass der uC nicht mehr losrennt

habe ich erst gedacht...
die LED kann man aber blinken lassen.
ganz komisch die ganze Sache.
ich habe leider keinen Anderen AtMega16 da.. nur ......8, dann muss ich 
alles umlöten :(

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tip von mir: Das LCD-Flachbandkabel ist zu lang. Mehr als 20cm 
unterminiert führt zu Fehlern, ab 40cm geht (oft) gar nichts mehr. 
Ausnahme: extem langsame Busgeschwindigkeiten und Pausen zwischen Daten 
aufschalten und Enable-Impuls.

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Travel Rec. wrote:

> Ausnahme: extem langsame Busgeschwindigkeiten und Pausen zwischen Daten
> aufschalten und Enable-Impuls.

Also CPU runtertakten ohne Werte in der Software zuverändern.
Schon den Programmcode mit einem Waitms 1000 anfangen lassen?

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Schon den Programmcode mit einem Waitms 1000 anfangen lassen?
ja.
der andere LCD hat nur ca. 15cm kabel

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Programmier mal die BODEN und BODLEVEL Fuse.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Travel Rec. (travelrec)

>Tip von mir: Das LCD-Flachbandkabel ist zu lang. Mehr als 20cm
>unterminiert führt zu Fehlern, ab 40cm geht (oft) gar nichts mehr.

Naja, man kann sicher viel falsch machen, aber so pauschal würde ich das 
sicher nicht gelten lassen.

>Ausnahme: extem langsame Busgeschwindigkeiten und Pausen zwischen Daten
>aufschalten und Enable-Impuls.

Das ändert an Reflexionen gar nichts. Siehe Wellenwiderstand.

MFG
Falk

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Das ändert an Reflexionen gar nichts.

Richtig, aber daran, daß die Signale stabil sind, bevor Enable gepulst 
wird. Mittels einer Pause zwischen Daten senden und Enable pulsen kann 
man einiges bewirken. Geschieht das zu schnell nacheinander, sieht das 
LCD nur Müll.

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
holger wrote:
> Programmier mal die BODEN und BODLEVEL Fuse.

Wir eröffnen die grosse Raterunde...jeder darf mal :)

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Wir eröffnen die grosse Raterunde...jeder darf mal :)

Was soll man schon noch groß dazu sagen ?
Ohne BODEN aktiviert und BODLEVEL auf höchsten Wert
kommt mir jedenfalls kein ATMega in die Schaltung.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Travel Rec. (travelrec)

>>Das ändert an Reflexionen gar nichts.

>Richtig, aber daran, daß die Signale stabil sind, bevor Enable gepulst
>wird.

Ha, du glaubst doch nicht allen Ernstes, dass ein AVR so schnell ist, 
dass er noch während die Reflexion lustig am klingeln ist, einen Enable 
Puls generieren kann?
Selbst bei 20 MHz sind da mind. 50ns zwischen Daten anlegen und Enable 
Puls. In der Zeit sind die Reflexionen, so es welche gibt, schon dreimal 
abgeklungen.

> Mittels einer Pause zwischen Daten senden und Enable pulsen kann
>man einiges bewirken.

Naja, an die Zeiten im Datenblatt sollte man sich schon halten. Und da 
steht bei mir, dass RW ud RS 140 ns vor der steigenden Flanke von Enable 
anliegen müssen. Das ist immerhin ein Takt bei 7 MHz. nd wenn die 
"Experten" ihre AVRs immer mit 16 MHz takten müssen . . .
Selbes gilt für die Daten, die müssen 195ns vor der fallenden Flanke 
anliegen.

> Geschieht das zu schnell nacheinander, sieht das
>LCD nur Müll.

RTFM. Zu 99,999% hält sich das LCD an das Timing im Datenblatt.

MFG
Falk

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ohne BODEN aktiviert und BODLEVEL auf höchsten Wert
>kommt mir jedenfalls kein ATMega in die Schaltung.

Mir auch nicht. Abgesehen davon ist das wohl der längste Thread, indem 
es darum geht, eine Schaltung mit einem Controller und einem LCD zum 
Laufen zu bringen...

>Ha, du glaubst doch nicht allen Ernstes, dass ein AVR so schnell ist,
>dass er noch während die Reflexion lustig am klingeln ist, einen Enable
>Puls generieren kann?
>Selbst bei 20 MHz sind da mind. 50ns zwischen Daten anlegen und Enable
>Puls. In der Zeit sind die Reflexionen, so es welche gibt, schon dreimal
>abgeklungen.

Du hast die Reflexionen in´s Spiel gebracht. Ach und meine Displays 
laufen alle. Ab 8Mhz brauche ich zwischen Datenausgabe und Enable ein 
'nop', ab 16Mhz 2 davon.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Travel Rec. (travelrec)

>Du hast die Reflexionen in´s Spiel gebracht. Ach und meine Displays

Nöö, das hast du implizit getan.

"Tip von mir: Das LCD-Flachbandkabel ist zu lang. Mehr als 20cm
unterminiert führt zu Fehlern, ab 40cm geht (oft) gar nichts mehr."

>laufen alle. Ab 8Mhz brauche ich zwischen Datenausgabe und Enable ein
>'nop', ab 16Mhz 2 davon.

Ahha, also dann lügt das Datenblatt also doch nicht. Wie sagt ein 
Kollege von mir immer:

"Kaum macht man es richtig, schon funktionierts.".

MFG
Falk

Autor: Volker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Travel Rec. (travelrec)

>Mir auch nicht. Abgesehen davon ist das wohl der längste Thread, indem
>es darum geht, eine Schaltung mit einem Controller und einem LCD zum
>Laufen zu bringen...


Scheint die nahtlose Fortsetzung von diesem Thread:

Beitrag "LCD am AVR Problem"

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>Du hast die Reflexionen in´s Spiel gebracht. Ach und meine Displays

>Nöö, das hast du implizit getan.

>"Tip von mir: Das LCD-Flachbandkabel ist zu lang. Mehr als 20cm
>unterminiert führt zu Fehlern, ab 40cm geht (oft) gar nichts mehr."

Nee nee, mal langsam: Flachbandkabel neigt zu Übersprechen und das nimmt 
bei hohen Geschwindigkeiten zu. Somit hat man kurz nach dem Umschalten 
nicht nur mit Reflexionen, sondern eher mit Signalverzerrungen infolge 
Übersprechen und Kapazitäten zwischen den einzelnen Leitern zu tun. 
Deshalb mein (allgemeingehaltener) Hinweis zum Flachbandkabel. Aber 
egal, daran liegt´s ja nun wohl nicht, daß das LCD nicht geht...

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alex wrote:
> Guten Morgen.
> so, die fotos sind im Anhang.

Aha.

Alex wrote:
> da ist nur der Atmega16, seine Stromversorgung und ein Anschluss für den
> LCD drauf.. mehr nicht.

Nö.

Vielleicht hängt es damit zusammen. (Gerade gesehen, Danke an die 
Diskutanten dort für die ausführlichen Erklärungen und Tipps.)
Beitrag "Anstiegszeit von AVCC und VCC verschieden ATmega 128"

Mir dünkt auf der rechten Seite des Fotos ist eine eigene 
Spannungsversorgung für AVcc...

Stammt die Erfahrung "gestern liefs noch" vielleicht aus der Zeit, als 
die rechte Seite der Platine noch nicht bebastelt war?

Ansonsten halte ich mich ab jetzt hier raus, bis ein vernünftiger 
Schaltplan kommt. Es hat so keinen Zweck.

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nee, so wie es auf der Unterseite aussieht, wird AVcc über einen 
Widerstand von Vcc abgeleitet. Ist aber auch nur geraten.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei dem fetten Elko der da scheinbar auch hinter dem
Spannungsregler sitzt tipp ich immer noch auf BODEN.
Ich würde das Riesenteil da mal auslöten und max 10uF einsetzen.

Ich denke auch es wird jetzt Zeit hier Schluß zu machen.

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein Satz noch: Wenn die Schaltung mal ging und jetzt nicht mehr geht, 
muß irgendetwas verändert worden sein oder es hat sich von allein etwas 
verändert (vom Material her). Dies herauszufinden, kann nur der Alex 
selbst erledigen.

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habe mir einen anderen mega16 geholt.. geht alles wieder :)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.