www.mikrocontroller.net

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

Autor: Alex (Gast)
Datum: 25.10.2007 13:44
Dateianhang: fuse.JPG (147,5 KB, 275 Downloads)
preview image for fuse.JPG

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: 25.10.2007 14:05

weisst das keiner?
Autor: Travel Rec. (travelrec) Benutzerseite
Datum: 25.10.2007 14:09

Schaltungsskizze? Wo liegt R/W vom Display?
Autor: Alex (Gast)
Datum: 25.10.2007 14:12

>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: 25.10.2007 14:14

> $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: 25.10.2007 14:16

>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: 25.10.2007 14:21

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: 25.10.2007 14:22

@ Stefan B
sehr gute Idee
werde ich sofort mal machen :)
danke
Autor: Dummy (Gast)
Datum: 25.10.2007 14:23

Ich würde mal den Kontrast aufdrehen.
Autor: Alex (Gast)
Datum: 25.10.2007 14:29

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: 25.10.2007 14:29

> Ich würde mal den Kontrast aufdrehen.

alles schon probiert.
Autor: Alex (Gast)
Datum: 25.10.2007 14:49

und nun?
Autor: Sven F. (sven0876)
Datum: 25.10.2007 14:51

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: 25.10.2007 14:54

@sven
habe gar keinen quarz, darum auf int. gastellt.
Autor: Sven F. (sven0876)
Datum: 25.10.2007 14:54

sorry hatte was üebersehen
siehe oben
Autor: Stefan B. (stefan) Benutzerseite
Datum: 25.10.2007 14:55

> $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: 25.10.2007 14:57

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: 25.10.2007 14:58

@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: 25.10.2007 15:06

Lass die Zeile weg. Spielt beim Atmega16 keine Rolle. Sorry.
Autor: Alex (Gast)
Datum: 25.10.2007 15:09

>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: 25.10.2007 15:16

nochwas nach roboternetz schließt du am port c an laut soft aber an port
b

sven
Autor: Alex (Gast)
Datum: 25.10.2007 15:20

>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: 25.10.2007 15:27

Ich hatte auch schon so einen Fehler. Ursache war der Proprammieradapter
welcher noch an der Platine angesteckt war.
Autor: Holger Krull (krulli) Benutzerseite
Datum: 25.10.2007 15:28

Teile dem LCD Controller doch noch bitte mit, das Du den 4 Bit Modus
wünscht.
Config Lcdbus = 4
Autor: Alex (Gast)
Datum: 25.10.2007 15:29

>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: 25.10.2007 15:31

@ 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: 25.10.2007 15:37

> µ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: 25.10.2007 15:45

>Wie kommst du darauf?
was kann es sonst noch sein?
Autor: Holger Krull (krulli) Benutzerseite
Datum: 25.10.2007 15:47

Ist denn auf dem LCD wenigstens ein schwarzer Balken zu sehen?
Autor: Alex (Gast)
Datum: 25.10.2007 15:54

>Ist denn auf dem LCD wenigstens ein schwarzer Balken zu sehen?
ja, wenn ich den Kontrast aufdrehe!
 :((
Autor: Alex (Gast)
Datum: 25.10.2007 16:07

was könnte ich denn noch machen?
Autor: Niels Hüsken (monarch35)
Datum: 25.10.2007 17:03

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 Buchegger (kbuchegg) (Moderator)
Datum: 25.10.2007 17:14

... 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: 25.10.2007 17:22

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: 25.10.2007 17:49

@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: 25.10.2007 17:53

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

Liest Du eigentlich überhaupt nichts? Nichtmal Datenblätter?
Autor: Alex (Gast)
Datum: 25.10.2007 17:58

>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: 25.10.2007 17:59

> 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: 25.10.2007 18:06

>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: 25.10.2007 18:26

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: 25.10.2007 19:13

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: 25.10.2007 19:37

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: 25.10.2007 19:44

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: 25.10.2007 20:24

>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: 25.10.2007 20:33

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: 25.10.2007 20:40

>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: 25.10.2007 20:42

>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: 25.10.2007 21:15

..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: 25.10.2007 21:16

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: 25.10.2007 21:22

>Hat der 16 zufällig ne Jtag?

Natürlich. Das wär wieder der Klassiker: JTAG-Fuse gesetzt.
Autor: Mr. Fluke (Gast)
Datum: 25.10.2007 21:37

>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: 25.10.2007 21:49

>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: 25.10.2007 22:11

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: 25.10.2007 22:34

@ 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: 26.10.2007 00:52

an beiden das selbe Display (angesteckt) ?
Autor: Alex (Gast)
Datum: 26.10.2007 07:30

>Jörg B.
nein, ich habe 2 ganz verschiedene.
Autor: Alex (Gast)
Datum: 26.10.2007 07:41
Dateianhang: Bild_001.jpg (257,7 KB, 166 Downloads)
preview image for Bild_001.jpg

Guten Morgen.
so, die fotos sind im Anhang.
Autor: Alex (Gast)
Datum: 26.10.2007 07:46
Dateianhang: Bild_011.jpg (271,1 KB, 142 Downloads)
preview image for Bild_011.jpg

und noch ein.
Autor: Ronny Spiegel (duselbaer)
Datum: 26.10.2007 08:03

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: 26.10.2007 08:19

@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: 26.10.2007 08:28

> 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: 26.10.2007 08:38

>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: Travel Rec. (travelrec) Benutzerseite
Datum: 26.10.2007 09:39

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: 26.10.2007 09:44

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: 26.10.2007 10:51

>Schon den Programmcode mit einem Waitms 1000 anfangen lassen?
ja.
der andere LCD hat nur ca. 15cm kabel
Autor: holger (Gast)
Datum: 26.10.2007 15:42

Programmier mal die BODEN und BODLEVEL Fuse.
Autor: Falk Brunner (falk)
Datum: 26.10.2007 15:47

@ 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: Travel Rec. (travelrec) Benutzerseite
Datum: 26.10.2007 15:52

>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: 26.10.2007 15:52

holger wrote:
> Programmier mal die BODEN und BODLEVEL Fuse.

Wir eröffnen die grosse Raterunde...jeder darf mal :)
Autor: holger (Gast)
Datum: 26.10.2007 15:59

>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: 26.10.2007 16:02

@ 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