Guten Morgen :)
Folgende Aufgabenstellung: Ich möchte das LCD Bildschirm (DOGM128) mit
dem Atmega16 ansteuern. Der µC sitzt in einem STK500 Board. Ich habe
dabei zwei Problemme, die ich lösen möchte, den LCD überhaupt
anzuschließen und ein Testprogram dafür auf den µC zu bekommen. Danach
sieht man weiter.
Zunächst das Anschließen. Der µC läuft eigentlich mit 5V, und der LCD
braucht laut Datenblatt 3.3V. Eigentlich müsste ich da einen
Spannungswandler 5 nach 3.3 dazu basteln und die Pegelwandler. Aber in
diesem Artikel ist nix davon zu erkennen:
http://code.google.com/p/dogm128/wiki/dogm132_atmega88_hardware
Kann ich also einfach so den LCD ans Board hängen? Das Ding ist
eigentlich nicht billig. Wenn doch mit Pegelwandlern, ich habe hier 7
stück BC548 liegen (NPN), gingen sie?
Das Testprogram kommt eigentlich später, aber evtl frage ich jetzt.
Das Testprogram ist eigentlich schon da, mit LunaAVR kommt eines genau
für den LCD, allerdings gefällt mir eine Stelle da nicht so. Da werden
die Pins des µC so verwendet bzw. ich verstehe das Kommentar so, dass
die Pins des Port C auf die angegebene Pins des LCD gehen (Angabe ist
jeweils Text hinter dem Hochkomma):
1
#define dogmMosiPin as PortC.0 ' in dogm datasheet named 'SI'
2
#define dogmSckPin as PortC.1 ' in dogm datasheet named 'SCL'
3
#define dogmA0Pin as PortC.2 ' in dogm datasheet named 'A0'
4
#define dogmSsPin as PortC.3 ' in dogm datasheet named 'CS1'
5
#define dogmRstPin as PortC.4 ' in dogm datasheet named 'RST'
6
#define dogmMisoPin as PORTC.5 ' in dogm datasheet named 'In'
So, der DOGM hat aber laut Datenblat nur die Pins namens SI, SCL, A0,
CS1B und RST, keinen der 'In' heißt. Auch 'Miso' habe ich im Datenblatt
nicht finden können. Was für Pin wäre das?
Ok, ich hoffe man kann mit den Fragen was anfangen.
Danke und LG
ctrannik
PS. Datenblatt für LCD:
http://www.lcd-module.de/pdf/grafik/dogm128.pdf
und das Testprogram findet sich unter
\lunaavr-2013r2\Examples\DOGM-Display\dogm-graphics-demo1.luna
Hi
>Der µC läuft eigentlich mit 5V, und der LCD>braucht laut Datenblatt 3.3V. Eigentlich müsste ich da einen>Spannungswandler 5 nach 3.3 dazu basteln und die Pegelwandler. Aber in>diesem Artikel ist nix davon zu erkennen:>http://code.google.com/p/dogm128/wiki/dogm132_atme...
Da hier der AVR auch mit 3,3V läuft erübrigen sich Pegelwandler. Wenn
dein AVR mit 5V betrieben wird sind Pegelwandler notwendig. Siehe
http://www.mikrocontroller.net/articles/Pegelwandler
Ich benutze für DOG-Displays immer 74HC4050. Einfach zu benutzen,
preiswert, schnell und (fast) überall erhältlich.
>So, der DOGM hat aber laut Datenblat nur die Pins namens SI, SCL, A0,>CS1B und RST, keinen der 'In' heißt. Auch 'Miso' habe ich im Datenblatt>nicht finden können. Was für Pin wäre das?
Keiner. MISO ist die Leitung von einem SPI-Slave zum Master. Das
Dog-Display kann aber nur beschrieben werden. Ein Ausgang am Display
existiert nicht.
Allerdings würde ich das Display nicht mit einem Soft-SPI am Port C
sonder an der Hardware-SPI des ATMega betreiben. Die DOG-Displays sind
recht schnell. Das kannst du mit Soft-SPI nie erreichen.
MfG Spess
Hallo Spess, danke für Deine Antwort :)
ähm, wo hab ich nur geguggt, da ist tatsächlich 3.3V, nicht 5. Mein
Atmega ist aber schon da und auf 5V, dann plane ich die Wandler ein.
Danke für die Anregung :)
>> Was für Pin wäre das?>Keiner. MISO ist die Leitung von einem SPI-Slave zum Master. Das>Dog-Display kann aber nur beschrieben werden. Ein Ausgang am Display>existiert nicht.
Das ist aber ein guter Hinweis! Wundert mich etwas warum der Pin
trotzdem angegeben wird, aber DeineErklärung macht Sinn.
Ins Thema SPI muss ich mich aber noch einlesen, bevor ich das
Testprogram starte.
LG
ctrannik
Hallo Spess
Ja, das ist ein echtes STK500, zumindest wird so von Atmel Studio
erkannt und geflasht. Spannung umstellen müsste also gehen. Aber ich
habe den Datenblatt von Atmega16 mehrfach durchsucht, es scheint dass
der nicht unter 4V zu benutzen ist. Nur wenn ich den Atmega16L hätte.
Testen kann ich es vielleicht.
Aber ich mache mit Pegelwandlern wie im Artikel. Wobei ich denke, dass
da ein Spanungsandler mit 2 Wiederständen ausreichen würde, der LCD
müsste da sehr genügsam sein. Steht aber nirgends, was er so an Strom an
den Eingängen braucht. Ich schätze aber weniger als von der
Versorgungsspannung und da sagt der Datenblatt 'typ. 270µA'.
Ich gucke dann weiter, wenn ein zwei Testprogramme aus Luna in den µC
bekomme, erst ohne einen LCD. Wenn es länger braucht, kommt vielleicht
auch ein 74HC4050 auf das Steckboard (müsste den aber bestellen.)
Grusl
ctrannik
Guten Abend,
als kleines Update, damit hier nicht wie unfertig bis zur nächsten
'echten' Ansteuerung aussieht, wo ich evtl wieder fragen habe. Das
Display lässt sich fast unverändert mit dem obigen Beispielprogram von
Luna ansteuern, i.e. initialisieren, beschreiben und bewundern.
Es musste aber Atmega32 sein, weil das kompillierte Program für Atmega16
zu groß wurde am Ende. Außerdem ist im Program der Port C benutzt, und
darauf sitzt der JTAG bei 16 und 32. Weil aber JTAG nicht ausgeschaltet
wurde, lief das Program nicht.
Erst nach Umstellung auf den Port B lieft das LCD sofort, das war
eigentlich die einzige nötige Änderung. Den JTAG ausschalten ginge
vielleicht auch, aber ich möchte noch nicht an den Fuses fummeln, ports
hat der Atmega32 genug :)
MfG
ctrannik