Skocz do zawartości

Nie działające USB-C w STM32F4 Black Pill


MajkelMajk

Pomocna odpowiedź

Cześć!

Projekt, nad którym pracuję wykazał, że moc Arduino Uno to dla niego odrobina za mało, dlatego kilka dni temu zakupiłem z rodzimego portalu dwie sztuki mikrokontrolera STM32F401CCU6 Black Pill. Jest to mój pierwszy kontakt z kontrolerami innymi niż AVR, więc nie wszystko jest dla mnie jasne.

Napotkałem z tymi płytkami problem: ogólnie mówiąc nie działa USB-C. Po podłączeniu kabla urządzenia te nie dostają prądu. Power LED się nie świeci, nie ma napięcia na 5v ani na 3.3v. Jeśli podam zasilanie z zewnątrz na te piny, to obie z tych płytek działają prawidłowo (mogę je programować bez problemu przez konwerter USB<->UART i programy działają). Jednak będę potrzebował działającej komunikacji UART oraz zasilania właśnie przez USB.

Testowane na dwóch różnych przewodach USB-C, z dwoma laptopami (MacBook Pro Intel i M1 Pro), również na samym zasilaczu USB-C. Obie płytki zachowują się identycznie. Żadne z tych sprzętów nie sprawia problemów komunikacyjnych z innymi urządzeniami, tylko z tymi dwoma Black Pillami.

Czy coś pomijam? Nie widzę w sieci, żeby ktoś miał podobny problem - na filmikach widziałem, że po podłączeniu USB urządzenia po prostu startują.

EDIT: Okazuje się, że przewód USB-C<->USB-C nie daje prądu (przynajmniej z MBP), ale znalazłem jeszcze kabel USB-C<->USB-A i z nim zasilanie jest (nawet podłączając do MBP przez adapter). Czy trzeba jakoś z poziomu kontrolera wynegocjować z hostem USB podanie napięcia?

Edytowano przez MajkelMajk
Link do komentarza
Share on other sites

Podłącz się przez STLink.Jeśli nie masz to kup bo będzie niezbędny podczas debuggowania programu.Ale jeśli w projekcie wykorzystasz USB to musisz mieć odpowiednio dobrany kabel.Jeśli się przesiadłeś na STM to zainstaluj STM32cubeide i w nim pisz oraz uruchamiaj programy.Ponadto zainstaluj  Studio STM i STMCubeProgrammer.Podczas podłączania się do  STLink należy zwrócić uwagę na wybór napięcia bo są dwa 3,3V i 5V!Jeśli chcesz programować przez USB STM32F401 używając Arduino ide to musisz zainstalować programator w tym procesorze.Na tym forum znajdziesz mój artykuł   Port USB i bootloader w STM32f1C8T6 a Windows 10 i ARDUINO IDE .Praktyka wskazuje,że programowanie w STM32cubeide jest zdecydowanie wygodniejsze niż w Arduino ide a zatem jeszcze raz zachęcam do stosowania firmowego oprogramowania do pisania programów.Jest wiele kursów wprowadzających do programowania w STM32cube ide.Jeden jest na tym portalu ale też jest inny na youtubie .Wpisując w wyszukiwarkę Piotr Duba wyświetli się cały kurs.Jeśli jednak pozostaniesz przy Arduino ide to wiedz,że kompilując program tworzone są gdzieś w Arduino15 pliki bin i elf projektu dla STM32F401.Trzeba tylko trochę pomęczyć się i znaleźć ścieżkę.Te pliki możesz użyć do zaprogramowania procesora używając STlink i STMCubeProgrammer a następnie by zobaczyć co się dzieje w procesorze użyj Studio STM.

Link do komentarza
Share on other sites

Dnia 10.03.2022 o 16:27, MajkelMajk napisał:

Okazuje się, że przewód USB-C<->USB-C nie daje prądu (przynajmniej z MBP), ale znalazłem jeszcze kabel USB-C<->USB-A i z nim zasilanie jest (nawet podłączając do MBP przez adapter). Czy trzeba jakoś z poziomu kontrolera wynegocjować z hostem USB podanie napięcia?

Ten black pill ma te złącze typu C dla picu, tj. piny zasilania sa w nim podłączone, ale nie zachodzi żadna negocjacja formy zasilania (bo piny CC nie są). A standard dla złącz C wymaga, że póki się czegoś nie wynegocjuje*, zasilanie ma nie być podawane (i znikać po odłączeniu kabla). Żaden F4 zdaje się nie obsługuje negocjacji wymaganej w Type C. A, że porty C w laptopach są "prawdziwe", to tez nie chcą podawać napięcia nieproszone. I dlatego Type A -> Type C działa, bo na A 5V jest obecne zawsze.

* jest jeszcze coś takiego jak dead battery detection na wypadek jakby uC nie miał w ogole zasilania

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Mam STM32F401cc taki jak po lewej stronie na zdjęciu 401 płytka. 5V z USBA podawane jest na ten maleńki stabilizator.Patrz na schemat a na wyjściu jest 3,3V i zasila stm32F401cc.Musi być właściwy kabel!Kupując Ten moduł spodziewałem się dostać wersję tę po prawej stronie bo mam odpowiedni kabel.Na szczęście nie korzystam obecnie z USB więc nie mam problemu.Jeśli masz kłopot z kablem możesz to ominąć bo sygnały DM+ i DM- są na pinach PA11 i PA12.Zasilanie na pin +5V oraz GND.Sprawdź sobie.Weź dwie igły,miernik i do roboty.

401płytka.png

stm32f401cc.png

original-schematic-STM32F401CCU6_WeAct_Black_Pill_V1.2.pdf

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.