www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik C8051F020 P1 als Ein- und Ausgang


Autor: Matthias Leu (Firma: Leica-Geosystems) (radelektroniker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe aus versehen bei einem Print, den ich schon fertigen lies, beim 
Port 1 Ein und Ausgänge deklariert. Ich Dummkopf :(
Ich erinnere mich jedoch schwach, dass es möglich ist, den P0 und 1 als 
ein und Ausgang zu nutzen. Stimmt dass? Wenn Ja wie muss ich das in C 
deklarieren?
Vielen Dank für eine schnelle Hilfe.

Autor: EagleUser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich versteh irgendwie deine Frage nicht ganz...
Wenn du eh nur ein und Ausgänge hast ohne Sonderfunktionen ist das 
mapping doch egal!? Dazu kann ich mich noch an ein nettes Tool von 
Silabs erinnern mit dem man in einem GUI die FUNCTION/PINBELEGUNG 
zuordnen konnte...

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias Leu schrieb:
> Wenn Ja wie muss ich das in C
> deklarieren?

Garnicht, dem Compiler ist das vollkommen wurscht.
Du mußt die Konfigurationsregister entsprechend beschreiben.

Bzw. wenn Du den standard 8051-Mode nimmst, mußt Du garnichts 
umschalten, jeder Pin auf High ist automatisch auch Eingang mit Pullup.


Peter

Autor: AKKS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

was ist ein Print?

AKKS

Autor: Matthias Leu (Firma: Leica-Geosystems) (radelektroniker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
habe schon lange nicht mehr mit uPs gearbeitet.
Könnte mir vieleicht jemand bei der Portdeklaration(P1) helfen. Das 
Schema hab ich hochgeladen. Ich verwende den Wizard von Silab, aber mir 
ist nicht klar, ob ich ein push-pull oder Opendrain für die einzelnen 
Bits brauche.

Autor: Matthias Leu (Firma: Leica-Geosystems) (radelektroniker)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Sorry hier das Schema

Autor: AKKS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du mir sagst was ein Print ist, und welche Pins du genau meinst,

sag ich dir vielleicht wie man die Ports konfiguriert.

AKKS

Autor: EagleUser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wer keinen Print kennt, wird vermutlich auch nur Sauce zum eigentlichen 
Thema abgeben können...

Autor: tester (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ein größeres Bild wäre fein...

Autor: Matthias Leu (Firma: Leica-Geosystems) (radelektroniker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@tester:Das ist eigentlich kein Bild sondern ein PDF, das heisst du 
kannst unendlich reinzoomen.

@AKKS: Glaube kaum das du mir helfen kannst (Print=PCB)

Brauche die Einstllung für alle Pins von Port1

Autor: R. W. (quakeman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
tester schrieb:
> ein größeres Bild wäre fein...

Lad dir das PDF runter da ist es groß genug.

@Matthias Leu
Um einen Pin als Eingang zu benutzen musst du diesen als Open-Drain 
konfigurieren und eine 1 reinschreiben. Anschließend kannst du beim 
Auslesen des Pins den externen Pegel damit abfragen. Dies steht im User 
Manual auf Seite 165 Abschnitt 17.1.3. Du solltest auch, wegen deinem 
externen Pull-Down, den internen Weak-Pullup deaktivieren, was eben 
falls auf dieser Seite steht.

Die drei Ausgangspins P1.2-P1.5 musst du dann als Push-Pull 
konfigurieren für den Schrittmotorbaustein.

Ciao,
     Rainer

Autor: EagleUser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also... alles an P1 ist GPIO... (wobei man die LED drehen sollte...)

P0.0 und P0.1 ist Eingang
P0.2 bis P0.5 ist Ausgang
P0.6 und P0.7 setzen wir mal als Ausgang...

lt. AN101

The Crossbar MUST be enabled in order to use
any Port 0, Port 1, or Port 2 port pins as outputs.

The output mode of the port pins (open-drain
or push-pull) must be explicitly set for the out-
put port pins, even those assigned by the Cross-
bar. Exceptions to this are the SDA and SCL
pins on the SMBus and the RX pin on the
UART, which are automatically configured as
open-drain

usw. usw. mit der AN101 sollte alles gesagt sein!

Autor: Matthias Leu (Firma: Leica-Geosystems) (radelektroniker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Rainer deine Tips sind sehr hilfreich
@Eagle User die LED kann ich doch nicht drehen, ohne die Schaltung 
Hardwaremässig zu ändern. Auch komme ich bei deinem restlichen Text 
nicht wikrlich draus. Meinst du mit AN101 AIN1?

Autor: R. W. (quakeman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias Leu schrieb:
> Danke Rainer deine Tips sind sehr hilfreich
> @Eagle User die LED kann ich doch nicht drehen, ohne die Schaltung
> Hardwaremässig zu ändern. Auch komme ich bei deinem restlichen Text
> nicht wikrlich draus. Meinst du mit AN101 AIN1?

AN101 ist die Application Note 101 auf der Silabs Homepage.
http://www.silabs.com/Support%20Documents/Technica...

Autor: AKKS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
P0:
P0MDOUT = 0xD0;
weil:
P0.0,P0.2,P0.3 als Ausgang.
P0.1 als Eingang.

P1:
P1MDOUT   = 0x3C;

OpenDrain ist = 0, PushPull = 1

Die LED zu drehen bringt wohl nur was wenn man sie auch gegen VCC 
schaltet.

Mit AN101 meint er eine ApplicationNote von Silabs.

Was das ganze jetzt damit zu tun hat dass die Platinen schon in der 
Produktion ist verstehe ich nicht.

Autor: Matthias Leu (Firma: Leica-Geosystems) (radelektroniker)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
AKKS du hast dich vermutlich verschrieben müsste es nicht P0MDOUT = 0x0D 
sein?

Bist du dir sicher das ich bei SPI push pull brauche?

Autor: AKKS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jupp,

P0MDOUT   = 0x0D;

Mein Kollege saß mir im Nacken, wir waren gerade auf dem Sprung zum 
Mitagessen, da hab ich das verwechselt, aber ist doch gut dass du es 
selbst gefunden hast.

Zum PushPull:

Nein, bin mir nicht sicher, dass es definitiv so sein muss. Mit 
in-/externen PullUps sollte es auch gehen. Kann aber nicht schaden und 
wird auf jeden Fall funktionieren. Du musst ja schließlich den Pegel vom 
Master zum Slave geben, außer beim MISO.
Schau dir mal im Silabs Configuration Wizard an was passiert wenn du den 
eingebauten SPI aktivierst, der ja richtiger Weise genau auf deinen Pins 
liegt.

Autor: R. W. (quakeman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias Leu schrieb:
> Bist du dir sicher das ich bei SPI push pull brauche?

Push-Pull bei SPI funktioniert. Eventuell würde auch Open-Drain gehen, 
insofern man dabei den Weak-PullUp aktivieren kann (müsste man im 
Datenblatt nachlesen) oder einen externen PullUp verwendet.

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Eventuell würde auch Open-Drain gehen, insofern man dabei den Weak-PullUp
> aktivieren kann
Bei einigen meiner DevBoards funktioniert die UART-Tx-Leitung nur dann, 
wenn der Port als Push-Pull geführt ist. Ansonsten gibts nur Müll. Auf 
den Boards ist meistens ein CP2xxx (ebenfalls SiLabs) oder ein kleiner 
F32x drauf, der als USB/UART-Umsetzer und Programmier-/Debuginterface 
fungiert. Ich vermute, dass die Eingänge so hochohmig sind, dass ohne 
Push-Pull-Betrieb der Sendeleitung nix rechteckiges mehr aufm Oszi zu 
sehen sein wird...

Ralf

Autor: R. W. (quakeman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das stimmt schon.
Ich würde auch eher den Push-Pull Modus benutzen da der Open-Drain Modus 
mit PullUp mit steigender Frequenz immer schlechtere Signalflanken 
produziert. Und es gibt auch keinen Nachteil in dieser Anwendung für den 
Push-Pull Betrieb.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.