Forum: Mikrocontroller und Digitale Elektronik Zu wenig Pins -> Pins mehrfach belegen?


von Bernd E. (edi)


Angehängte Dateien:

Lesenswert?

Hallo,
ich habe das Problem, dass ich auf meinem uC zu wenig Pins zur Verfügung 
habe, kann ich die Pins z.B. vom SPI Port (welche ich zum programmieren 
über STK500 am ISP Port benötige) auch z.B. als Datenleitungen für mein 
LCD verwenden? Habe es mal probiert, aber am LCD kam nichts an. Sind die 
SPI Pins standardmäßig fürs programmieren eingestellt, oder habe ich ein 
Verbindungsproblem? Bei dem verwendeten uC handelt es sich um einen 
ATTiny26.

Habe es zur Zeit so wie auf dem angehängten Bild gemacht!

mfg
Bernd

von Matthias (Gast)


Lesenswert?

du kannst diese pins nehmen. musst allerdings beachten, dass der 
programmieradapter dort stört. es sollte also gehen, wenn dieser 
abgezogen ist.
alternativ verwende man eine diode von den programmieranschlusspins, die 
signal ZUM µC schicken und zwar kathode richtung isp-schnittstelle, und 
anode am µC/LCD pin. und zusätzlich einen pullup widerstand von besagter 
µC/LCD-leitung.
somit kann der prog-adapter die leitung nur auf masse ziehen und falls 
er sie wieder freigibt (high) sorgt der pullup für steigende pegel... 
somit ist das prog-adapter entkoppelt

von johnny.m (Gast)


Lesenswert?

Bist Du sicher, dass nichts ankommt, oder funktioniert das Display 
vielleicht nicht, weil Du die freien Datenleitungen nicht auf Masse 
gelegt hast (weiß jetzt nicht, ob das erforderlich ist, aber freie 
Eingänge sind immer eine mögliche Fehlerquelle)? Wenn der 
Programmieradapter nicht angeschlossen ist und die Portpins korrekt 
initialisiert sind, sollte es damit eigentlich keine Probleme geben.

von Bernd E. (edi)


Lesenswert?

Hi,
habe es eigentlich so vor, dass ich das LCD beim programmieren (wird ja 
nicht so oft gemacht, wenn die Sache erst mal läuft) gar nicht 
anschließe und somit wäre SPI dann alleine am Port. Mir wäre nur wichtig 
zu wissen, ob ich da keine Fuse oder so umstellen muss um die Pins 
überhaupt als normale Port Pins verwenden zu können.

von Bernd E. (edi)


Lesenswert?

@Johnny:
Welche Datenleitungen meinst du genau mit "freien Datenleitungen"? 
Meinst du den ISP Stecker?

LCD funktioniert sonst eigentlich problemlos, habe eben nur meine Pins 
umgestellt, aber ansonsten nichts verändert. Könnte natürlich auch noch 
ein Problem mit einer Lötstelle sein. LCD zeigt nämlich nur erste Zeile 
komplett schwarz an, in der zweiten Zeile gar nichts.

von Lazy B. (lazybee)


Lesenswert?

Guck mal hier:
http://users.picbasic.org/Howto/LCD_input_lines/lcd_keys.htm

Ist zwar für einen PIC. Könnte Dir vielleicht weiterhelfen.

LazyBee

von Peter D. (peda)


Lesenswert?

Du mußt den SPI-Adapter abziehen, wenn er nicht einen Tristate-Treiber 
enthält.

Und der E-Pin des Displays muß einen Pull-Down erhalten, damit nicht SPI 
und LCD gegeneinander kämpfen.


Peter

von johnny.m (Gast)


Lesenswert?

Ich meinte die Datenleitungen des LC-Displays. So wie ich das sehe, wird 
es im 4-Bit-Modus betrieben. DB0..DB3 würde ich zumindest auf 
definiertes Potenzial legen.

von Bernd E. (edi)


Lesenswert?

@johnny:

Hatte ich bis jetzt nie gemacht, aber ich werde es mal testen, 
vielleicht funktioniert es dann!

@lazzybee:
Danke für den Link, meine Schaltung sieht auch so ähnlich aus, hab hier 
noch einmal einen anderen Ausschnitt online gestellt.


mfg
Bernd

von Bernd E. (edi)


Angehängte Dateien:

Lesenswert?

...jetzt sollte es mit dem Bild klappen!

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Je nachdem, welchen Programmer Du am ISP angesteckt hast, wird Dein 
Display funktionieren oder nicht. In 80% der Fälle kannst Du davon 
ausgehen, daß das Display nur mit abgezogenem Programmer laufen wird. Du 
mußt auch nach dem Proggen und nach dem Abziehen des Programmers den 
Controller neustarten und genügend Wartezeit für das Display vor der 
Neuinitialisierung einräumen. Du solltest außerdem die Software-Init 
("Lange" Initialisierung) für das Display verwenden, da es ja schon an 
ist und keinen korrekten Power-Up Reset macht (nur nach Spannung aus- 
und wiedereinschalten). Die beiden Initialisierungsmöglichkeiten findest 
Du im (kompletten) Datenblatt des Displaycontrollers.

von Jankey (Gast)


Lesenswert?

Google: I2C IO Expander

von Bernd E. (edi)


Lesenswert?

Hi,
lag wirklich am Timing des LCD's, hab jetzt nach der Startphase statt 
100ms 300ms eingefügt und nun läuft es, mal sehen, ob ich die Tastatur 
auch noch gleichzeitig zum laufen bekomme!

von Philipp C. (ba4_philipp)


Lesenswert?

Etwas spät, aber ich glaube man darf die freien Anschlüsse am LCD nicht 
einfach auf Masse legen, das sind ja nicht nur Eingänge. Wenn überhaupt 
würde ich die mit einem Pulldown versehen, aber nicht auf Masse legen.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Bei heute üblichen Displays sind die Datenleitungen mittels internem 
PullUp versehen. Man kann im 4_Bit Modus die 4 unteren Datenleitungen 
also unbeschaltet lassen. Sicher gibt es auch Ausnahmen, aber die 
erkennt man am wilden Zeichensalat, den sie in unregelmäßigen Abständen 
darstellen.

von Bernd E. (edi)


Lesenswert?

Also ich hab die 4 unteren Datenleitungen bis jetzt immer unbeschalten 
gelassen und hatte noch nie ein Problem!

von Sonic (Gast)


Lesenswert?

Hast du schon mal einen Blick ins Datenblatt zum Thema ISP geworfen? Da 
steht: ISP-Port direkt an die Pins vom µC und den Rest über min. 
1kOhm-Widerstände schützen.
Ich habe das schon mehrfach realisiert und noch kein Problem gehabt. 
Pulldown-Widerstände sind nicht nötig, da kann ruhig ein Ausgang 
gegensteuern.

von Bernd E. (edi)


Lesenswert?

Hi,
das muss ich wohl übersehen haben, danke für den Hinweis!

von Sonic (Gast)


Lesenswert?

Ups, steht in der AVR-Studio-Hilfe, nicht im Datenblatt (nur in dem Vom 
AVR ISP-Programmer zum selberbauen).

MOSI/MISO/SCK
If the MOSI, MISO or SCK line are used as general I/Os in the 
application, it is recommended to use series resistors between the load 
and the AVR as shown in Figure 5. The AVRISP lines should be connected 
directly to the AVR pins, without any series resistors.


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.