Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Kategoria: Akumulatorki / Baterie / Ładowarki

[C][STM32][stm32f429i][HAL] - USB-CDC Komputer nie wykrywa urządzenia usb

dominico12 11 Sty 2017 19:06
  • #1 11 Sty 2017 19:06
    dominico12
    Poziom 6  

    Witam
    Mam problem z płytką portem usb w trybie cdc (inne też nie działają) w stm32 z bibliotekami HAL. Próbowałem go uruchomić (używam płytki stm32f429i-disco) ale komputer wogóle nie widzi że został podłączony.

    main.c

    Kod: c
    Zaloguj się, aby zobaczyć kod


    usb_device.c
    Kod: c
    Zaloguj się, aby zobaczyć kod

  • #2 11 Sty 2017 19:44
    BlueDraco
    Specjalista - Mikrokontrolery

    Jeśli projekt generowałeś w CubeMX, to zapewne nie wiedziałeś, że trzeba wyłączyć błędnie włączoną przez CubeMX opcję VBUS sensing w zakładce parametrów dialogu konfiguracji interfejsu USB. Jeśli natomiast nie zainstlowałeś najnowszej wersji pakiet F4, to masz jeszczekilka innych błędó, które powodują, że CDC nie działa - są niezbędne drobne poprawki w module cośtam_cdc_if.c. Podobno w aktualnej wersji już jest to poprawione.

  • #3 11 Sty 2017 20:25
    Piotrus_999
    Poziom 38  

    BlueDraco napisał:
    Jeśli projekt generowałeś w CubeMX, to zapewne nie wiedziałeś, że trzeba wyłączyć błędnie włączoną przez CubeMX opcję VBUS sensing w zakładce parametrów dialogu konfiguracji interfejsu USB. Jeśli natomiast nie zainstlowałeś najnowszej wersji pakiet F4, to masz jeszczekilka innych błędó, które powodują, że CDC nie działa - są niezbędne drobne poprawki w module cośtam_cdc_if.c. Podobno w aktualnej wersji już jest to poprawione.


    Albo weź przykład z cuba (nie mx) usb cdc i wygrzeb interesujący Cię plik.

  • #4 11 Sty 2017 21:22
    dominico12
    Poziom 6  

    BlueDraco napisał:
    Jeśli projekt generowałeś w CubeMX, to zapewne nie wiedziałeś, że trzeba wyłączyć błędnie włączoną przez CubeMX opcję VBUS sensing w zakładce parametrów dialogu konfiguracji interfejsu USB. Jeśli natomiast nie zainstlowałeś najnowszej wersji pakiet F4, to masz jeszczekilka innych błędó, które powodują, że CDC nie działa - są niezbędne drobne poprawki w module cośtam_cdc_if.c. Podobno w aktualnej wersji już jest to poprawione.


    Niestety wyłaczenie VBUS nie przynosi efektów (wersja HAL 1.14 czyli najnowsza)

    Dodano po 35 [minuty]:

    Dobra
    Dziękuję bardzo wszystkim za odpowiedź.
    Okazało się że w płytce stm32f429i-disco port podłączony jest do usb hs tylko na schemacie jest on nazywany fs co mnie zmyliło

  • #5 11 Sty 2017 21:40
    BlueDraco
    Specjalista - Mikrokontrolery

    A gdzie wyłączyłeś to VBUS?

  • #6 11 Sty 2017 21:44
    dominico12
    Poziom 6  

    BlueDraco napisał:
    A gdzie wyłączyłeś to VBUS?


    W ustawieniach peryferium Configuration -> Connectivity -> USB_FS

    Ale w moim przypadku to nic nie dało bo w płytce stm32f429i-disco należy skonfigurować interfejs usb_hs ponieważ wyjście jest właśnie do niego podłaczone (mimo tego że na schematach nazywany on jest usb_fs)

  • #7 11 Sty 2017 23:04
    oloam
    Poziom 17  

    dominico12 napisał:
    Ale w moim przypadku to nic nie dało bo w płytce stm32f429i-disco należy skonfigurować interfejs usb_hs ponieważ wyjście jest właśnie do niego podłaczone (mimo tego że na schematach nazywany on jest usb_fs)


    Bo to jest fs, chyba zaden stm32fxxx nie posiada phy hs. Posiadaja one wsparcie dla hs a tym wsparciem jest interfejs ulpi. Nie mozesz wiec dla disco ustawiac hs (wlaczyc ulpi) bo disco go nie posiada. Schemat jest poprawny - usb w twoim disco pracuje w fs. Jezeli sie nie myle to tylko nxp odwazyl sie zbudowac usb hs on chip (i raczej z sukcesem poniewaz obsluga usb jest dziecinnie prosta) w seriach lpc43xx i lpc18xx.

  • #8 12 Sty 2017 00:16
    BlueDraco
    Specjalista - Mikrokontrolery

    Czyli wyłączyć VBUS sensing trzeba w ustawieniach USB_HS, bo to jest ten właściwy interfejs, a to, że jest używany w trybie FS nie ma tu znaczenia.

  • #9 12 Sty 2017 08:27
    oloam
    Poziom 17  

    STM bardzo zamieszalo nazywajac ten interfejs usb_hs. Nie wiem czy to celowy zabieg marketingowy ale wprowadza on w blad, sugerujac, ze usb w podstawowej konfiguracji pracuje w trybie hs. Dlaczego nie nazwali usb zgodnie z nazewnictwoem innych perferiow, tj usb0 i usb1 (?)
    Druga sprawa, ze kontroler usb, ktory tak nieszczesliwie nazwali sam moze pracowac w trybie fs ale i ustawiony w trybie hs (po ulpi) tez moze pracowac jako fs.

  • #10 12 Sty 2017 09:34
    Piotrus_999
    Poziom 38  

    Nie wiem co namieszało ale jedyną możliwością na tej płytce jest użycie HS jako inernal PHY FS - co zresztą od razu widać w Cube.

  Szukaj w 4mln produktów
Przeglądaj produkty