Hallo ihr!
Ich hab folgendes Problem, hoffe ihr könnt mir helfen, hab auch schon im
Forum gesucht und gegoogelt, aber nix gefunden. Also ich habe einen
atmega8535, den Programmieradapter dessen Schaltbild im Anhang ist (von
www.rowalt.de) sowie ein LCD mit 2 E Leitungen. Das Problem ist jetzt
folgendes, meine Bascom Demo Version zwingt mich für das LCD mit 2 E
Leitungen den in der lcd4e2.lbx angegebenen PortB 0-7 zu benutzen, hier
hängen aber auch teilweise die Programmierleitungen dran. (MISO, MOSI,
SCK) Das Problem ist jetzt das wenn der Programmierstecker und LCD
angeschlossen sind das Display beim ausführen des Progs nix anzeigt da
der Programmieradapter die Pins low bzw high zieht, und ich andersrum
auch nicht programmieren kann wenn das LCD angeschlossen ist (da
anscheinend der LPT über den Prog.Adapter nicht Chip und LCD Eingang
paralell treiben kann). Die Konfiguration und die Software ist OK. Wenn
ich erst das Display abkabel, Programmieradapter dran, dann
programmiere, Programmieradapter ab, Display wieder dran, und dann den
uc starte läuft das Programm wie es soll, aber das ist natürlich
ziemlich umständlich und irgendwann werden die Kabel das nicht mehr
mitmachen. Deshalb nach dieser laaangen Einleitung (Danke, wenn du bis
hier durchgehalten hast :) ), die eigentlich Frage: Wie muss ich den
Adapter zusätzlich beschalten, damit ich im Idealfall Programmieradapter
und LCD gleichzeitig angesteckt lassen kann, und trotzdem programmieren
kann und die Anzeige geht? Geht das mit ein paar Dioden? Oder kann man
die 3 'Problem Pins' in Abhängigkeit von Reset oder nem anderen Pin vom
LPT-Adapter (VCC nutz ich zB nicht), jeweils auf das LCD oder den
Programmieradapter schalten?
Schonmal vielen dank für alle Tipps :)
Lohrke
Hallo Lohrke,
ich hatte auch mal mit diesem Problem zu kämfen.
Mögliche Lösungsvariante:
Durch 3 Widerstände (1...10k) das LCD-Display von den SCK,MISO und
MOSI Pins abkoppeln.
Bernhard
Ok, vielen Dank schonmal, das Programmieren geht jetzt mit
angeschlossenem LCD, habe es folgendermaßen angeschlossen:
LCD
|
|R|
| |
|
LTP-----^---------Chip
dann natürlich für alle 3 Pins. Soweit so gut, aber komm ich auch noch
um das abziehen des Programmiersteckers rum? (Solange der nämlich
dranbleibt zeigt das LCD nix vernünftiges an, wenn ich das Prog starte.)
Und da ich ja faul bin würd ich mir das auch noch gern sparen :)
Dank im Vorraus
Lohrke
Mit einem vernünftigem Programmer sollte sich das Problem lösen lassen.
Dies könnte ein intelligenter Programmer von ATMEL oder einer seiner
Nachbauten sein, aber auch ein Eigenbau-ISP-Adapter mit Bustreiber-IC
(HC244, HC245). Der Bustreiber-IC ermöglicht die Trennung zwischen AVR
und Printerport und sogt dafür, dass die ISP-Pins außerhalb des
Programmiervorgangs nicht belastet werden.
Nähere Informationen findest Du mit Sicherheit über die Linksammlung
dieser Seite.
...
@Lohrke
Stell uns mal bitte den Schaltplan Deines Programmieradapters zur
Verfügung, vielleicht gibt es noch eine weitere Möglichkeit, dass Du Dir
das lästige herumstöpseln sparen kannst.
Bernhard
Ok vielen Dank, werde mir dann erstmal nen Schalter basteln damit ich
nicht immer den Adapter an und ab steckern muss, sind ja nur 3
Leitungen. Mittelfristig werd ich mir dann demnächst mal einen
'ordentlichen' Programmer löten. :)
Vielen Dank nochmal für die schnelle Hilfe.
Lohrke
Sehe grad das ich gar keinen Anhang gepostet hab, also nur unter
Rowalt.de. Achja ich benutze nur den Progammer, nicht das Testboard und
einen atmega8535 auf einem Brotbrett.
Die Verschaltung ist folgende:
mosi - databit5
miso - databit6
sck - databit7
Schonmal im Vorraus falls wichtig: Busy-Abfrage des LCDs wird nicht
genutzt, also ins LCD müssen nur daten 'rein'. :)
Lohrke
Müsste für diese LCD-Beschaltung auch ohne Abziehen des Adapters
funktionieren.
Aber der LPT-Programmieradaper hängt immer mit einer 220 Ohm Last am µC,
dürfte aber in diesem konkreten Fall nicht sonderlich stören.
Bernhard
Es klappt leider einfach nicht, habe für die 'Abkoppelwiederstände' 2k8,
215 Ohm und 280 Ohm gewählt.
Wenn beides (LCD+Adapter) angesteckt ist:
2k8:Solange der programmieradapter dranhängt, tuts sich auf dem LCD nix.
Programmieren geht.
280: Kein Programmieren, Display geht nicht richtig (fehlt was)
215: Display geht, kein Programmieren.
Kann sein, dass das LCD sein D0..D7 auf Output setzt und Dir damit Deine
Programmierpegel beeinflusst ?
Wie sind die anderen Pins zum LCD geschaltet, vorallem RW?
Es klappt! Problem lag am RW Pin (und anscheinend auch WINXP ;) ) hatte
ihn vorher aus Faulheit an den Chip angeschlossen weil ich davon
ausgegangen war, dass die Pins am Chip alle auf Low sind wenn ich nichts
anderes programmiere. Dem ist aber wohl nicht so. ( Kann das einer
bestätigen? Gehen die bei Reset auf High-Z oder so was?). Dann hats
erstmal soweit funktioniert, aber hin und wieder ist das Reset signal
vom LTP ohne mein zutun von High auf Low gewechselt-> Chip stand. Das
hat sich jetzt aber gelegt, mir ist eingefallen, das ich an dem LPT ja
noch nen Drucker installiert aber nicht angeschlossen hab, und WinXP
deshalb wahrscheinlich alle paar Minuten irgendeinen PlugNPlay Unfug mit
dem Druckerport treibt (Ist da irgendwas bekannt?). Naja bis jetzt
läufts, sogar ohne die "Koppelwiderstände", mit geht das Programmieren
aber wesentlich schneller, werd sicherheitshalber auch den Drucker
nochmal deinstallieren.
Vielen, vielen Dank für eure Hilfe, ihr seid super!
Lohrke
Unsere Bankdaten geben wie Dir später :)
>Gehen die bei Reset auf High-Z oder so was?).
Beim Reset werden alle PINS, auser MOSI hochohmig.
Angeschlossene Hardware kann ohne weiteres plötzlich unerwartete und
unangenehme Zustände annehmen.
Sollte beim entwickeln der Hardware immer beachtet werden.
Gruß
Bernhatd