Forum: Mikrocontroller und Digitale Elektronik AT89S8252 - Port_0 externe Pullup-Widerstände??


von Stefan S. (byte3)


Lesenswert?

Hi

Ich benötige für ein Projekt alle Ports meines uC (AT89S8252). Wenn ich
das Datenblatt richtig verstehe hat dieser an Port_0 jedoch keine
internen Pullup-Widerstände. Da ich zwei uC jeweils mit ihrem Port_0
verbinde sollte ich da was machen damit die Kommunikation richtig
funktioniert. Ist es "fachgerecht" wenn ich die einzelnen Pins mit
10k-Pullups auf +5V hänge oder könnte es da Probleme geben?

Danke!

Gruß Stefan

von Ralf (Gast)


Lesenswert?

Hi Stefan,

der Port 0 hat interne Pull-Up-Widerstände, diese sind jedoch nur in
Betrieb, wenn du entweder mit MOVX/MOVC-Befehlen arbeitest, oder wenn
das Programm aus einem externen EPROM läuft. Sobald du den Port
"direkt" manipulierst, also z.B. MOV P0,#55h, sind die Pull-Ups
deaktiviert.

Daher muss ich erstmal fragen, ob es sich bei dem zweiten Controller
ebenfalls um einen 8252 handelt. Dann wäre es möglich, die Controller
entweder über das serielle Interface im Multiprocessor-Modus
miteinander zu verbinden, oder über das SPI-Interface.

Ich glaube nämlich nicht, dass du beide Interfaces in Beschlag hast,
oder etwa doch?

Der Vorteil liegt auf der Hand, du brauchst bei weitem weniger
Leitungen.

Du kannst sie auch über P0 miteinander verbinden, und wenn du es
gescheit machst, brauchst du die Pull-Ups nicht, wenn du mit
MOVX-Befehlen arbeitest.

Wenn ich es über P0 machen müsste, würde ich dennoch empfehlen, sie
einzubauen.

Und um die eigentliche Frage zu beantworten, ja, es wäre fachgerecht
;-)

Gruß Ralf

von Stefan S. (byte3)


Lesenswert?

Hallo Ralf,

Beim zweiten uC handelt sich ebefalls um einen AT89S8252. Das
SPI-Interface ist bereits für das Ansteuern eines Displays belegt. Und
das von dir erwähnte "serielle Interface im Multiprocessor-Modus",
damit hab ich leider keine Erfahrung. Ebenso sind sonst alle Ports
außer Port_0 voll belegt für weitere "Dateninputs" etc.
Ich hab das mit den externen Pullups vorhin ausprobiert und es
funktioniert einwandfrei.
Danke für deine Hilfe!!!!

Gruß Stefan

von Peter Dannegger (Gast)


Lesenswert?

"Das SPI-Interface ist bereits für das Ansteuern eines Displays
belegt."


Das stimmt nicht, man kann mehrere Sachen mit einem SPI erschlagen.
Dazu benötigst Du nur ein separates Enable-Signal für jeden SPI-Slave.

Ist der SPI-Slave ein anderer µC, geht das Enable an dessen /SS-Pin.
Ist das LCD über einen 74HC164 angeschlossen, interessiert das LCD
nicht was der 74HC164 tut, solange nicht E auf high gesetzt wird.

Kompliziert wird Multimaster über SPI, sollte man daher sein lassen.


Peter

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.