STM32: PortPin als Input

OP #1781320
Hallo,

möchte gern am STM32F103 einen Pin als Ausgang (Floating) konfigurieren:

PE15:
1
RCC->APB2ENR |= (1<<6);               // enable peripheral clock for GPIOC
2
GPIOE->CRH &= ~0xF0000000;                /* clear port PE15 */
3
GPIOE->CRH |= 0x40000000;                /* PE15 input floating */
4
GPIOE->CRH |=  0x00000000;                /* input mode */

Wenn nichts am Pin hängt, ist dieser low; was ja auch stimmt.

Wenn ich einen Pullup 10k sowie einen externen Open-Drain Output 
anschließe (vom AD7843 PIRQ) ist die Line auch dann high, wenn der 
Open-Drain Output versucht, dass Potential auf low zu ziehen...

Der Open-Drain Output vom AD7843 schafft es allerdings problemlos die 
Line auf low zu ziehen (mit dem Pullup 10k), wenn der STM32 nicht 
angeschlossen ist...

Hab ich software-technisch was vergessen zu konfigurieren, oder könnte 
es ein Hardware-Problem (Port-Pin) sein?

Den Pin vom STM32 selbst kann ich als Output konfigurieren, auf high und 
auf low ziehen; Wenn ich ihn als Input mit Pullup konfiguriere, dann ist 
dieser ohne Last auch auf high (mit Last kann ich ihn ebenfalls nicht 
auf low ziehen mit dem AD7843)

Gruß
Bernd
Wenn du einen Input ohne internem Pullup extern nicht runterziehen 
kannst, dann hat das wenig mit dem STM32 zu tun und viel mit dem 
externen Signal.

Ich habe allerdings deine Bits nicht kontrolliert, also ob die Werte 
auch dem entsprechen, was im Kommentar steht.

> auf low ziehen; Wenn ich ihn als Input mit Pullup konfiguriere, dann ist
> dieser ohne Last auch auf high (mit Last kann ich ihn ebenfalls nicht
> auf low ziehen mit dem AD7843)

Weitere Verwirrung: Was ist eine Last an einem Input?
OP
Ich hab an einem Pin vom STM32 (PE15) den PIRQ Interrupt vom AD7843 
hängen. PE15 stellt einen floating Input dar (STM32) und PIRQ ist ein 
Open-Drain Output. Zusätzlich hab ich einen 10k Pullup installiert, 
Open-Drain Ausgang.

Wenn ich jetzt versuche, die Line auf low zu ziehen (mit dem STM32), 
misslingt dieses Vorhaben. Über einen Jumper kann ich den STM32 vom 
AD7843 trennen; ist dieser Jumper offen, zieht der AD7843 die Line 
entsprechend auf low (sprich der AD7843 funktioniert auf jeden Fall).
Programmiere ihn als Output auf "low", ohne PIRQ dran. Wenn's dann 
blitzt und donnert, dann hast du einen Kurzschluss am Pin ;-).

Im Ernst: Wenn du den Pin mit seinem 10K Pullup um einen 10K Pulldown 
anreicherst, und keine gemessene VCC/2 rauskommen, dann solltest du die 
Verschaltung und ggf. die Leiterbahnen mal unter die Lupe nehmen.
OP
haben die Pins vom STM32 intern nur einen 10k Pullup/Pulldown 
Widerstand? Kann diese Angabe grad im Datenblatt nicht finden.


Habs grad ausprobiert, mit einem externen Pullup von 10k landet die 
Spannung ungefähr bei 2.5V (nominal 3.3V).

Gruß
Bernd
Wenn ein Input mit Pullup ohne weitere bekannte Beschaltung kein Vcc 
messen lässt, dann solltest du mal danach suchen, was ausser dem Pin 
noch an der Leitung hängt. Ob beabsichtigt oder auch nicht. Und wenn da 
wirklich nichts ist, dann den Controller tauschen.
OP
A. K. schrieb:
> Wenn ein Input mit Pullup ohne weitere bekannte Beschaltung kein Vcc
>
> messen lässt, dann solltest du mal danach suchen, was ausser dem Pin
>
> noch an der Leitung hängt. Ob beabsichtigt oder auch nicht. Und wenn da
>
> wirklich nichts ist, dann den Controller tauschen.

Nein ich hab extern einen Pullup 10k hängen und den internen Pulldown 
vom STM32 aktiviert; dachte du meintest, dass dieser interne Pullup/down 
jeweils 10k misst.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.