Do tej pory wszystkie swoja bardziej "zaawansowane" projekty (takie, które wymagały zastosowanie MCU o większej mocy obliczeniowej i bogatym zestawie peryferiów) robiłem głównie na układach PIC24/PIC32, wcześniej ATXmega. Miałem już trochę do czynienia z STM-ami, ale głównie w formie prostych STM32F103. Teraz przymierzając się do pewnego projektu przyglądam się bardziej zaawansowanemu układowi z tej rodziny - STM32F407VGT6. Gdy przeglądałem dokumentacje i przeklikiwałem się przez konfigurator STM32CubeMX, nasunęło mi się kilka pytań:
Sposób podłączenia USB w trybie host: Na stronie 186 dokumentacji
formatting link
znajduje się schemat. Pin VBUS gniazdka USB jest na nim podłączony za pośrednictwem "current limiter power switch" albo przynajmniej "basic power switch", sterowany pinem GPIO. W STM32CubeMX nigdzie nie widzę możliwości wyboru tego wyjścia kluczującego zasilanie, które byłoby przypisane do konkretnego interfejsu USB. Mam rozumieć, że już z poziomu kodu wybiera się dowolny pin GPIO? Pytam, ponieważ w układach PIC32 był do tego przeznaczony sterowany sprzętowo pin VBUSON, z którego stosowania można było zrezygnować w konfiguracji, co zresztą robiłem, ponieważ w moim urządzeniu do hosta USB był na stałe podłączony pendrive, nie było wiec konieczności kluczowani zasilania - było ono wyprowadzone na gniazdku na stałe. Rozumiem, że w przypadku STM32 sterowanie zasilaniem jest obowiązkowe i powinienem w swoim projekcie uwzględnić ten switch? Poza tym widzę, że można aktywować/dezaktywować jeszcze dwa piny przypisane do interfejsu USB: VBUS oraz SOF. Rozumiem, że VBUS służy do wykrywania zasilnia na gniazdku USB i jest stosowany w trybach device orz OTG. Schemat w dokumentacji dla trybu host nie uwzględnia tego pinu, jednak STM32CubeMX pozwala na jego użycie nawet w trybie "Host only". Jaka jest jego funkcja w tym przypadku? Rozumiem, że mogę z niego zrezygnować, jeśli urządzenie m być hostem? I jeszcze jedno pytanie odnośnie USB. DO tej pory we wszystkich swoich projektach stosowałem drabinkę transili tuż obok gniada USB. Schematy w dokumentacji ich nie uwzględniają. To uproszczenie schematu, czy celowe działanie? Rozumiem, że nadal mogę stosować to zabezpieczenie z STM32?
Magistrala równoległa do podłączenia LCD: Z tego co widzę, mikrokontroler posiada sprzętową magistralę do komunikacji z pamięciami, którą można także wykorzystać do podłączenia wyświetlacza LCD.Dysponuję takim wyświetlaczem:
formatting link
będzie się go dało podłączyć za pomocą tego interfejsu? Jeśli tak, w jaki sposób? Do którego pinu powinien iść sygnał "LCD register select"? Czy ten interfejs wymaga już jakiegoś specjalnego sposobu prowadzenia ścieżek?
Przetwornik cyfrowo-analogowy: Widzę, że ten układ posiada dwa wyjścia DAC. Sprawdzą się w roli wyjść audio (odtwarzanie muzyki) czy lepiej zastosować osobny układ, np. na I2S?
Interfejs SDIO: Z tego co widzę, układ posiada również interfejs SDIO. To dla mnie pewna nowość, bo do tej pory zawsze podłączałem karty SD przez SPI. Czy powinienem o czymś pamiętać projektując płytkę? Linie SDIO trzeba już prowadzić w jakiś określony sposób? Który tryb pracy (SD/MMC) i szerokość magistrali (1/4/8 bit) będą najbardziej odpowiednie?