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

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.

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.