Forum: Mikrocontroller und Digitale Elektronik DOGM128 und Atmega16 via STK500


von Edward F. (ctrannik)


Lesenswert?

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

von spess53 (Gast)


Lesenswert?

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

von Edward F. (ctrannik)


Lesenswert?

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

von spess53 (Gast)


Lesenswert?

Hi

>Mein Atmega ist aber schon da und auf 5V,

Hast du ein echtes STK500? Dort kannst du nämlich die Spannung des 
Controllers einstellen.

MfG Spess

von Edward F. (ctrannik)


Lesenswert?

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

von Edward F. (ctrannik)


Lesenswert?

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

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.