Forum: Mikrocontroller und Digitale Elektronik TFT und Diamond PROG-S2 an ATmega


von Gerd (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich möchte an meinen ATmega16 ein 1.8 TFT anschliessen.

Es existieren viele unterschiedliche Typen oder Baureihen des Displays 
und fast alle Beispiele beziehen sich auf den Arduino. Ich habe das TFT, 
wie auf den Bild zu sehen ist. Dazu habe ich auch eine 
Anschlussbeschreibung für ein ATMEGA328 gefunden.

RST -> RST pin 1 ATMEGA328p      (through 1Kohm)
CS   -> SS pin16 ATMEGA328p        (through 1Kohm)
D/C -> MISO pin 18 ATMEGA328p  (through 1Kohm)
DIN -> MOSI pin 17 ATMEGA328p (through 1Kohm)
CLK -> SCK pin 19 ATMEGA328p     (through 1Kohm)
VCC -> 5v
BL  -> 5v  (through 470ohm)
GND ->GND

Mein Problem ist folgendes:
Ich nutze den Diamond PROG-S2 zum Aufspielen des Codes.
Dieser ist neben MOSI/MISO und der Clock an RESET vom µC angeschlossen.
Ist es korrekt, dass der PROG-S2 den REST vom µC auf Low zieht und dann 
das Programm überträgt?

Wenn jetzt das Display hinzukommt, habe ich dann einen weiteren Slave, 
der an MOSI/MISO und der Clock drankommt.

Laut SPI Verbindungsbeispielen wird aber bei Slaves noch der "SS" Pin 
benutzt. Das TFT könnte ich also da anschliessen und der PROG-S2 bleibt 
an RESET?

Kann man dann den PROG-S2 sozusagen als "höchst priorisierten" Slave 
betrachten, da dieser ja den Controller resettet?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Gerd schrieb:
> D/C -> MISO pin 18 ATMEGA328p  (through 1Kohm)

Das ist eine ungünstige Belegung. Wenn du das Hardware SPI (USART) des 
Mega benutzt, werden die SPI Pins per Hardware besetzt und der MISO Pin 
ist nicht mehr frei für die Data/Command Umschaltung. Das gilt ebenso 
für den Mega16 wie für den Mega328.

Gerd schrieb:
> Laut SPI Verbindungsbeispielen wird aber bei Slaves noch der "SS" Pin
> benutzt.

Jo, das entspricht bei deinem Display dem CS Pin. Jedes Device auf dem 
SPI Bus bekommt so ein Select Signal vom Master und fühlt sich erst dann 
angesprochen.
Du solltest also lediglich per Pullup dafür sorgen, das auch im 
Resetzustand kein SPI Device aktiv ist und nur der MC auf dem Bus liegt 
zur Programmierung.

von Gerd (Gast)


Lesenswert?

Vielen Dank für Deine Antwort.

Letzteres macht Sinn, vielen Dank!

Was ich leider gar nicht verstanden habe ist folgendes:

Matthias S. schrieb:
> Gerd schrieb:
>> D/C -> MISO pin 18 ATMEGA328p  (through 1Kohm)
>
> Das ist eine ungünstige Belegung. Wenn du das Hardware SPI (USART) des
> Mega benutzt, werden die SPI Pins per Hardware besetzt und der MISO Pin
> ist nicht mehr frei für die Data/Command Umschaltung. Das gilt ebenso
> für den Mega16 wie für den Mega328.

USART möchte ich nicht benutzen, aber wie wäre das denn dann anders zu 
machen?
Ich meine der MISO Pin am Atmega ist ja als solcher festgelegt oder 
nicht?


Eine andere Unklarheit habe ich noch im Bezug auf die ISP 
Programmierung, die ja auch über SPI funktioniert. Ist das eine 
festgelegte Verschaltung, dass der µC im RESET-Fall einfach immer zum 
Slave wird?
Weil im Programmierfall ja der PROG-S2 der Master und µC der Slave ist!?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Gerd schrieb:
> USART möchte ich nicht benutzen, aber wie wäre das denn dann anders zu
> machen?

Möchtest du denn die Hardware SPI Unterstützung des AVR benutzen oder 
alles per Bitbanging machen? Im letzteren Fall kannst du die Pins 
belegen wie du möchtest und bist auch nicht auf Mosi usw. festgelegt. 
Aber die Hardware SPI belegt beim Aktivieren des SPI Interfaces MOSI, 
MISO und SCLK und damit ist die GPIO Benutzung dieser Pins nicht mehr 
möglich.

Gerd schrieb:
> Ist das eine
> festgelegte Verschaltung, dass der µC im RESET-Fall einfach immer zum
> Slave wird?

Nicht im Reset Fall, aber im Programmiermodus.

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.