STM32L443CC GPIO Problem

Gast #5757216
Lesenswert?

Guten Abend zusammen,

ich sitze gerade vor meiner frisch gelöteten Platine mit einem 
STM32L443CC und bin am verzweifeln.

Erste Inbetriebnahme hat funktioniert (es kam kein Rauch und ich konnte 
mich mit Hilfe der SWD Schnittstelle mit dem uc verbinden).

Mit Hilfe von 4 GPIO's möchte ich einen 4-fach Schalter IC (TPS4H000) 
ansteuern, dies realisiere ich mit 3 GPIO's von Port A (9,10,11) und 
einem von Port B (15). Pin uC und Pin von TPS4H000 sind direkt verbunden 
ohne was dazwischen.

Also habe ich schnell ein kleines Testprogramm geschrieben und die 4 
Pins einfach mal angeschaltet. Die Pins konfiguriert und im ODR Register 
die Bits gesetzt. Pin B15, A10 und A11 funktioniert und ich habe 3,3V am 
Pin anlegen, nur bei Pin A9 liegen nur 0,5V an...und das kann ich mir 
nicht erklären. Im ODR Register ist das Bit definitiv gesetzt. Kann ein 
einzelner Pin kaputt gehen ? Ich kenne es nur so dass sich der gesamte 
Port verabschiedet.

Dann habe ich noch einen Step-up Wandler und dessen Enable Pin ist auch 
direkt mit dem uC verbinden (Pin am Port B) und dort habe ich das 
gleiche Problem dass der Pin laut Debugger geschaltet ist aber keine 
Spannung an dem Pin anliegt. Der Enable Pin hat im Schaltregler einen 
Pull down eingebaut.

Hatte schonmal wer das gleiche Problem?

Gruß Mark
Angehängte Dateien:
Gast #5757285
Lesenswert?

Code Betrachter schrieb:
> Ja, das saß vor dem Bildschirm und Tastatur.
>
> Hauptproblem ist primär dass du dein Programm geheim hältst.

Dachte nicht dass das Notwendig ist, da der Debugger ja ausliest dass 
das Bit gesetzt ist. Hab einfach in den neuem Project in der Main die 
Register beschrieben.
1
RCC->AHB2ENR = 0x00000003;
2

3
GPIOA->MODER = 0x55555555;
4
GPIOA->OTYPER = 0x00000000;
5
GPIOA->OSPEEDR = 0x00000000;
6
GPIOA->PUPDR = 0x00000000;
7
GPIOA->BSRR = 0x00000E00;
8

9
GPIOB->MODER = 0x55555555;
10
GPIOB->OTYPER = 0x00000000;
11
GPIOB->OSPEEDR = 0x00000000;
12
GPIOB->PUPDR = 0x00000000;
13
GPIOB->BSRR = 0x0000CC00;

Gerd E. schrieb:
> Schau Dir die gesamte Leiterbahn mal unter der Lupe an.

Hab ich gemacht, ist nichts zu erkennen. Hab auch mal die 4 Verbindungen 
mit dem Multimeter durchgemessen. Auffällig ist: die 3 Verbindungen, die 
funktionieren, haben einen Widerstand nach GND von ca. 700 KOhm. Die 
fehlerhafte Verbindung hat 1.2 Mohm. Hab auch von Pin zu Pin 
durchgepiepst, die Verbindung besteht.
Gast #5757296
Lesenswert?

Mark A. schrieb:
> RCC->AHB2ENR = 0x00000003;
>
> GPIOA->MODER = 0x55555555;
> GPIOA->OTYPER = 0x00000000;
> GPIOA->OSPEEDR = 0x00000000;
> GPIOA->PUPDR = 0x00000000;
> GPIOA->BSRR = 0x00000E00;
>
> GPIOB->MODER = 0x55555555;
> GPIOB->OTYPER = 0x00000000;
> GPIOB->OSPEEDR = 0x00000000;
> GPIOB->PUPDR = 0x00000000;
> GPIOB->BSRR = 0x0000CC00;

... und wir sollen jetzt im Manual nachschauen ob die Register-
Bits die richtigen sind?
Gast #5757305
Lesenswert?

Genau deswegen hab ich den Code im ersten Beitrag weggelassen, da es 
wirklich nur ein schneller versuch war ob das wichtigste funktioniert. 
Da aber die richtigen ODR Bits gesetzt sind, werden die Bits passen. 
Clock ist aktiviert und ich habe vorsichtshalber alle Pins auf Output 
gestellt. Deswegen sollte aus Code Sicht alles passen.
Gast #5757327
Lesenswert?

.                                                . schrieb im Beitrag 
#5757312:
> AFRL und AFRH Register bitte noch. Die anderen sehen ok aus.

Spielen die eine Rolle wenn der MODE nicht AF ist ? AFRL und AFRH sind 
im Reset Zustand, die habe ich nicht angefasst.
Gast #5758460
Lesenswert?

Also ich muss mir leider eingestehen dass ich bei dem ersten Problem 
doch eine unsaubere Lötstelle hatte und nach erneutem hinhalten des 
Lötkolbens funktionierts nun.

Zu dem Pin zu dem Schaltregler: hier ist alles richtig gelötet und es 
funktioniert trotzdem nicht. Nun habe ich aber einfach mal mittels Draht 
3,3V von außen an den pin des uC angelegt und siehe da der Schaltregler 
funktioniert. Für mich heißt das nun eins, der Pin des uC ist zu schwach 
um den EN Pin des TPS55340PWP zu treiben. Laut Datenblatt hat der Pin 
aber nur einen Pulldown von min. 400 KOhm und das sollte für den uC Pin 
doch zu schaffen sein...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren