Sposób ST na USB

| Prezentacje firmowe Artykuły

Coraz większa liczba mikrokontrolerów wprowadzanych przez producentów na rynek jest wyposażana w wewnętrzny interfejs USB. O ile problem "sprzętowy" został rozwiązany przez wielu producentów, to - obecnie - niewielu z nich dostarcza bezpłatnie dobrej jakości biblioteki będące programową częścią stosu USB. Bez nich najdoskonalszy interfejs sprzętowy jest jedynie efektowną, ale trudną w użyciu, ozdobą.

Sposób ST na USB

Rys. 1. Umiejscowienie bibliotek „STM32F10xxx USB-FS-Device firmware” w projekcie programistycznym

Kłopoty z samodzielną obsługą interfejsu USB, na jakie napotykają konstruktorzy i programiści, doskonale znają inżynierowie z firmy STMicroelectronics, którzy opracowali i bezpłatnie udostępnili zestaw bibliotek programowych obsługujących interfejsy device USB-FS oraz OTG-USB-FS w mikrokontrolerach STM32. Noszą one nazwę "STM32F10xxx USB-FS-Device firmware", lokalizację tych bibliotek w projekcie wykorzystującym interfejs USB pokazano na rys. 1.

Ponieważ programiści przygotowujący projekty dla STM32 mają do dyspozycji kilka środowisk IDE (m.in. RIDE, TrueSTUDIO, HiTOP, EWARM i MDK-ARM), twórcy bibliotek przygotowali je w bardzo uporządkowany sposób (rys. 2), minimalizujący kłopoty programistów: rozdzielono i logicznie nazwano katalogi projektów dla poszczególnych IDE, w osobnych katalogach znajdują się pliki źródłowe przykładowych projektów, pliki *.inc, a także pliki źródłowe programów realizujących najniższe warstwy stosu.

Kunsztu programistów przygotowujących biblioteki i projekty przykładowe dowodzi m.in. fakt, że wszystkie projekty wykorzystują te same pliki źródłowe, co - pomimo sformalizowania standardu języka C - w przypadku wielu projektów programistycznych nie jest oczywiste.

Dodatkowe informacje i materiały opisane w artykule są dostępne na stronie www.st.com/stm32

Rys. 2. Typowa zawartość katalogu przykładowego projektu demonstracyjnego

Biblioteki "STM32F10xxx USB-FS-Device firmware" mogą być stosowane w projektach dla wszystkich mikrokontrolerów z rodziny STM32 wyposażonych w interfejs USB lub USB-OTG: F102, F103, F105 oraz F107. Na rys. 3 przedstawiono zestawienie wyposażenia wewnętrznego wszystkich dostępnych obecnie mikrokontrolerów STM32, łącznie z podrodzinami F100 i F101, które nie są wyposażone w USB.

Twórcy bibliotek zaimplementowali mechanizmy sterowania przepływem danych, a także trzy metody transferu danych: przerwaniową (interrupt transfer), blokową (bulk transfer) oraz izochroniczną - niezbędną w aplikacjach wykorzystujących strumieniowy transfer danych.

Mechanizmy te wykorzystywano w 7 przykładowych aplikacjach, dla których kompletne oprogramowanie udostępniono na stronie www.st.com w postaci archiwum, którego zawartość została opisana w dokumencie UM0424.

Mikrokontrolery STM32F105/107 wyposażono w interfejs OTG-USB-FS, który w trybie device wymaga zastosowania bardzo małej liczby elementów zewnętrznych.

Wśród opisanych aplikacji znajdują się m.in.:

  • stereofoniczne głośniki USB,
  • strumieniowy odtwarzacz audio, wykorzystujący interfejs OTG-USB,
  • wykorzystanie joysticka dołączonego do mikrokontrolera jako myszki USB,
  • urządzenie mass-storage obsługujące polecenia SCSI,
  • emulowany na USB port COM, który umożliwia jeden z najprostszych sposobów komunikowania się aplikacji na PC z zewnętrznym systemem wykonanym na mikrokontrolerze z rodziny STM32,
  • urządzenie klasy HID (Human Interface Device), komunikujące się z PC za pomocą standardowego sterownika systemowego HID w Windows,
  • DFU (Device Firmware Upgrade)
  • zestaw oprogramowania umożliwiającego wymianę oprogramowania przechowywanego w pamięci Flash mikrokontrolera poprzez USB.

Rys. 3. Zestawienie wewnętrznego wyposażenia dostępnych obecnie mikrokontrolerów z rodziny STM32

Aplikacje przygotowane przez inżynierów firmy STMicroelectronics są nie tylko efektowne, ale także - dzięki ich uporządkowaniu - użyteczne w praktyce, łatwe w zrozumieniu i podatne na uzupełnienia oraz samodzielne modyfikacje.

Jedyną "niedogodnością" jest brak zaimplementowanej w nich obsługi trybu USB host oraz pełnego trybu OTG, ale programiści zainteresowani wykorzystaniem interfejsu USB w trybie OTG mogą wykorzystać inny zestaw opracowanych przez STMicroelectronics bibliotek (także dostępnych bezpłatnie) o nazwie STM32_OTG_LIB, których możliwości i sposób korzystania opisano w dokumencie UM0721.

Ten krótki przegląd wyraźnie dokumentuje intensywne starania firmy STMicroelectronics, mające na celu maksymalne uproszczenie pracy programistów, którzy dzięki bezpłatnym bibliotekom nie muszą łamać sobie głowy nad tajnikami USB i mogą w tym czasie pisać aplikacje skupiając się całkowicie na potrzebach zleceniodawcy projektu.

Rozpowszechniane bezpłatnie przez STMicroelectronics biblioteki "STM32F10xxx USB-FS-Device firmware" mają certyfikat konsorcjum USB dla klasy aplikacji USB 2.0 FullSpeed.

Większość mikrokontrolerów z rodziny STM32 jest wyposażona w wewnętrzny interfejs USB (podrodziny F102 i F103) lub USB-OTG (podrodziny F105 i F107). Opisane w artykule biblioteki programowe i przykładowe projekty przygotowano w taki sposób, że mogą być implementowane w mikrokontrolerach bez konieczności jakiejkolwiek ich adaptacji.

Biblioteki opisane w artykule są w pełni zgodne ze standardem CMSIS firmy ARM.

Piotr Zbysiński
STMicroelectronics

www.st.com

Zobacz również