Mikrokontrolery Infineon XMC4500 w praktyce, część 2
Produkowane przez firmę Infineon mikrokontrolery XMC4000 (Cortex-M4) należą do najnowocześniejszych układów tego typu na rynku, a dzięki udostępnieniu przez producenta bezpłatnego, kompletnego pakietu narzędziowego – DAvE 3 – także do jednych z najwygodniejszych w praktycznym stosowaniu.
Z myślą o praktykach chcących poznać mikrokontrolery XMC4000 przygotowaliśmy kilkuodcinkowy kurs, w którym bazujemy na tanim zestawie startowym Relax Kit oraz bezpłatnym środowisku projektowym DAvE, od prezentacji którego zaczynamy.
| Poprzedni odcinek kursu jest dostępny tu. Następny odcinek kursu jest dostępny tu. Podstawowe informacje o zestawie Relax Kit firmy Infineon są dostępne tu. Artykuł o zestawie Hexagon firmy Infineon jest dostępny tu. Przegląd rodziny XMC4000 jest dostępny tu. |
DAvE 3 – tworzenie aplikacji w oparciu o gotowe komponenty oprogramowania i generator kodu
Mikrokontrolery to niezwykle dynamicznie rozwijający się segment rynku układów elektronicznych. Ważniejsze czynniki stymulujące taki postęp to między innymi zapotrzebowanie na coraz bardziej zaawansowane urządzenia elektroniczne, rozwój technologii i silna konkurencja. Sprawiają one, że kolejne wprowadzane do sprzedaży rodziny mikrokontrolerów są układami dającymi projektantom coraz większe możliwości. Bardziej rozbudowana struktura wewnętrzna mikrokontrolerów i możliwość realizacji przy ich pomocy bardziej skomplikowanych i zaawansowanych aplikacji powoduje jednak, że poziom trudności tworzenia oprogramowania staje się coraz wyższy. Producenci pakietów do tworzenia oprogramowania dla systemów wbudowanych mają tego świadomość, dlatego w oferowanych przez siebie narzędziach implementują mechanizmy ułatwiające i przyspieszające tworzenie kodu. W przypadku pakietu DAvE 3 dla mikrokontrolerów Infineon XMC4000 z rdzeniem ARM Cortex-M4 wykorzystana została idea tworzenia oprogramowania o nazwie CBP (Component-Based Programming), znana też jako CBSD (Component-Based Software Development) oraz wykorzystujący ją generator kodu.
Idea CBP/CBSD
Idea CBP/CBSD polega na tworzeniu oprogramowania korzystając z gotowych, prefabrykowanych modułów oprogramowania zwanych komponentami. Ważniejsze cechy komponentów [1]:
- każdy komponent ma zdefiniowaną funkcjonalność,
- komponent może mieć postać tak zwanej „czarnej skrzynki”, co oznacza, że użytkownik nie musi wiedzieć w jaki sposób funkcjonalność komponentu została zaimplementowana,
- każdy z komponentów może być wielokrotnie wykorzystywany,
- każdy komponent musi posiadać interfejs pozwalający na komunikowanie się z innymi komponentami i aplikacją użytkownika,
- komponenty są niezależne od siebie.
Więcej informacji o CBP/CBSD można znaleźć w literaturze dotyczącej tej dziedziny [2].
DAvE Apps
Firma Infineon wykorzystała ideę CBP/CBSD w swoim pakiecie do tworzenia oprogramowania DAvE 3 [3]. Zaimplementowane komponenty noszą nazwę DAvE Apps. Pojedynczy komponent DAvE App może reprezentować albo jeden zasób wewnętrzny mikrokontrolera XMC4000 (np. przetwornik A/C), albo też może reprezentować aplikację dla tego mikrokontrolera (np. system plików, serwer www). Aktualne repozytorium dostępnych komponentów DAvE Apps przedstawiono w tabeli 1.
Tab. 1. Nazwy i funkcje komponentów DAvE Apps
| Nazwa DAvE App | Rodzaj zasobu/aplikacji | Nazwa DAvE App | Rodzaj zasobu/aplikacji |
| adc001…adc003 | Analog to digital converter | ledts001 | LED and touch sense control unit |
| adcch001 | Analog to digital converter channel | libs | Library for PWMSP001…PWMSP002 apps |
| adccmp001 | Analog to digital comparator | lmm001 | App local memory manager |
| adcglob001 | Analog to digital clocks | lval001 | App logical value provider |
| adcgroup001 | Analog to digital group specific configurations | nvic001…nvic002 | Interrupt handler |
| aes001 | Advanced encryption standard | nvic_dma001 | DMA interrupt handler |
| can001 | Controller area network | nvic_scu001 | App specific handling of interrupt events |
| canglobal | Controller Area Network module clocks | poshl001 | Motor speed and position detection using hall sensors |
| cap001 | Period and duty cycle capture module | posqe001 | Motor speed and position detection with quadrature encoder |
| ccu4global | Four Capture/Compare Units for use as general purpose timers | pwmmp001 | Pulse width modulated multi phase signal |
| ccu8global | Four Capture/Compare Units for motor control and power conversion | pwmsp001…pwmsp002 | Pulse width modulated single phase signal |
| clk001 | SCU module system clocks | pwmsvm001 | Space vector pulse width modulated signal |
| cnt001 | CCU4 event counter | reset001 | Reset |
| crc001…crc007 | Cyclic redundancy code | rtc001 | Real time clock |
| dacwg001…dacwg005 | Digital to analog converter | rtos001 | CMSIS-RTOS API |
| dma001…dma004 | Direct memory access | sdmmc001…sdmmc004 | SD & MMC block layer |
| dsdglobal | Delta sigma demodulator | sltha001…sltha003 | Wrapper to FAT file system (Newlib) |
| dsdif003 | Delta sigma demodulator interface | snmp001 | Simple network management protocol |
| dsdrv001 | Delta sigma demodulator resolver | spi001 | Serial peripheral interface |
| eru001…eru002 | Event request unit | systm001 | System timer (Systick) |
| eth001…eth004 | Ethernet | tmps001 | Die temperature sensor |
| fatfs002…fatfs005 | FAT file systems (FatFs) | uart001…uart002 | Universal asynchronous receiver/transmitter |
| gmm001 | CPU global memory manager | usbbl001 | USB block layer |
| guikb001 | Gui keyboard (emWin) | usbcdc001 | USB CDC device |
| guilc001 | GUI OLED display controller (emWin) | usbcore001 | USB core driver (USB OTG host/device) |
| guims001 | GUI mouse (emWin) | usbhid001 | USB HID class |
| guisl001 | GUI Segger library (emWin) | usbjs001 | USB joystick |
| guits001 | GUI touchpad | usbld001 | USB low level driver |
| i2c001…I2c002 | I2C | usbms001 | USB mass storage device |
| io001…io004 | IO pins | usbvc001 | USB virtual COM device |
| iodbg001 | Debugger IO pins | webserver001 | Http webserver |


Technologie End of Life i bezpieczeństwo sieci – wyzwania Europy związane z tzw. długiem technologicznym
Najczęstsze błędy firm przy wyborze dostawcy energii i jak ich uniknąć
Fotorezystor, czyli czujnik światła dwojakiego działania. Przykład innowacji w automatyce i elektronice możliwej dzięki technologii fotooporników 



