Precision32 – nowe mikrokontrolery firmy Silicon Labs z rdzeniem ARM Cortex-M3
Drugie źródło sygnału zegarowego to LFOSC0. Może ono być wykorzystane zarówno do taktowania mikrokontrolera, jak również tylko jako zegar czasu rzeczywistego. Użycie LFOSC0 gwarantuje niskie zużycie energii, jednakże ograniczeniem tego rozwiązania jest niska częstotliwość (16.4 kHz) oraz niezbyt wysoka dokładność generowanego sygnału.
Trzecim źródłem sygnału zegarowego jest RTC0OSC. Generowany przez nie sygnał zegarowy ma częstotliwość równą 32.768 kHz i podobnie jak w poprzednim przypadku, może być użyty zarówno do taktowania mikrokontrolera, jak również może być wykorzystany tylko jako zegar czasu rzeczywistego. Korzystanie z tego źródła sygnału zegarowego wymaga podłączenia do mikrokontrolera zewnętrznego rezonatora kwarcowego 32.768 kHz. RTC0OSC cechuje się wysoką dokładnością generowanego sygnału zegarowego.
Kolejne źródło sygnału zegarowego to EXTOSC0. Zgodnie z nazwą, do jego działania konieczne jest podłączenie do mikrokontrolera rezonatora kwarcowego, którego maksymalna dopuszczalna częstotliwość to 50 MHz. Dzięki zewnętrznemu rezonatorowi kwarcowemu sygnał zegarowy będzie się charakteryzował wysoką dokładnością.
Następnym źródłem sygnału zegarowego jest USBOSC. Generuje ono sygnał zegarowy o częstotliwości 48 MHz, który może służyć do taktowania mikrokontrolera, ale przede wszystkim przewidziany jest do umożliwienia działania interfejsowi USB. Rozwiązanie to pozwala na projektowanie urządzeń USB bez konieczności integracji na płytce PCB dodatkowego rezonatora kwarcowego.
Ostatnie ze źródeł sygnału zegarowego – PLL0OSC – jest mechanizmem, który bazując na sygnale referencyjnym jest w stanie modyfikować jego częstotliwość (poprzez mnożenie i dzielenie wartości początkowej). Sygnał referencyjny dla PLL0OSC może pochodzić ze źródeł sygnału zegarowego RTC0OSC, LPOSC0, EXTOSC0 i USBOSC. PLL0OSC może przy ich pomocy wygenerować sygnał o częstotliwości od 23 MHz do wartości maksymalnej, z jaką pracować może mikrokontroler, a więc 80 MHz. Źródło sygnału zegarowego PLL0OSC może pracować w jednym z trzech trybów: free-running DCO, frequency-locked, phase-locked.
W kontekście sygnałów zegarowych mikrokontrolera Precision32 warto nadmienić jeszcze, że każde peryferium posiada swój indywidualny zegar. Wszystkie zegary peryferyjne są domyślnie wyłączone. Użytkownik może je włączać tylko w czasie, gdy korzysta z danego zasobu, co pozwala na ograniczenie zużycia energii przez mikrokontroler.
Blok peryferiów analogowych
Omawianie peryferiów analogowych rozpoczniemy od opisania przetworników A/C i C/A. Mikrokontrolery Precision32 wyposażone zostały w dwa przetworniki A/C typu SAR (Successive Approximation Register), nazwane SARADC0 i SARADC1. Konwertują one napięcie do postaci 12- lub 10 – bitowego słowa. W zależności od ustawionej rozdzielczości, prędkość próbkowania wynosić może odpowiednio do 250 KS/s i 1 MS/s. W zależności od modelu mikrokontrolera przetwornik SARADC0 może dysponować od 7 do 16, a przetwornik SARADC1 od 11 do 16 kanałami pomiarowymi.
W mikrokontrolerach Precision32 zintegrowano dwa przetworniki C/A, o nazwie IDAC0 i IDAC1. Nie są to konwencjonalne przetworniki, gdyż nie zamieniają wartości cyfrowej na napięcie, ale na prąd. Górny próg zakresu prądu może by ustawiony na jedną z trzech wartości: 0.5 mA, 1.0 mA i 2.0 mA. Dla rozdzielczości przetworników, która wynosi 10 bitów, wartość prądu może być ustawiona odpowiednio dla wymienionych zakresów z krokiem 2 µA, 1 µA i 500 nA.
Kolejnym peryferium analogowym mikrokontrolerów Precision32 jest przetwornik pojemnościowo-cyfrowy. Może on służyć do obsługi klawiatur pojemnościowych (obsługiwane są przez niego nie tylko przyciski, ale również suwaki pojemnościowe typu slider i wheel). Zależnie od modelu układu, przetwornik może posiadać od 12 do 16 kanałów.
Zasoby analogowe mikrokontrolerów Precision32 uzupełniają dwa komparatory analogowe CMP0 i CMP1 (od 3 do 8 kanałów na każdy komparator) o niskim poborze prądu (400 nA w energooszczędnym trybie pracy) oraz przetwornik prąd-napięcie IVC0 (dwa kanały, zakres prądu wejściowego od 1 do 6 mA).
Blok peryferiów cyfrowych
Pierwszą grupę peryferiów cyfrowych stanowią interfejsy komunikacyjne. Należą do niej interfejsy: USART/UART (z możliwością komunikacji w standardzie irDA i SmartCard), SPI, I2C oraz I2S. W serii układów SiM3U1xx producent zintegrował dodatkowo interfejs USB 2.0 Full Speed. Dzięki wbudowanemu w mikrokontrolerze źródle zegara USBOSC oraz kompletnemu interfejsowi USB (PHY, obwód terminujący, rezystor dołączony do linii USB D+), do działania USB nie jest potrzebne dołączenie do mikrokontrolera żadnych dodatkowych komponentów. Budowę modułu USB mikrokontrolera Precision32 przedstawiono na rysunku 8.
Rys. 8. Moduł USB mikrokontrolera Precision32
Drugą grupą peryferiów cyfrowych są układy czasowe (timers) i układy licznikowe (counters). Znajdują się w niej:
- Dwa 32-bitowe układy czasowe TIMER0 i TIMER1 (alternatywnie mogą działać jako 4 16-bitowe układy czasowe) z funkcją capture/compare,
- Dwa 2-kanałowe, 16-bitowe układy licznikowe PCA0 i PCA1 z funkcją capture/compare/PWM,
- 6-kanałowy (3 pary), 16-bitowy układ licznikowy EPCA0 z funkcją capture/compare/PWM,
- Energooszczędny 16-bitowy układ czasowy/licznik impulsów LPTIMER0, działający we wszystkich trybach pracy o niskim poborze prądu,
- 32-bitowy zegar RTC (RTC0),
- Licznik Watchdog (WDTIMER0).
Wśród peryferiów cyfrowych znajdują się dwa zasoby odpowiedzialne za zwiększenie niezawodności i bezpieczeństwa przesyłanych danych. Za pierwszą funkcję odpowiada moduł CRC (Cyclic Redundancy Check), a za drugą moduł AES (Advanced Encryption Standard). Moduł CRC poprzez dodawanie do przesyłanych danych (w pamięci Flash lub w protokołach komunikacyjnych) kodu nadmiarowego może wykrywać pojawiające się podczas transmisji błędy. Moduł CRC może korzystać z czterech wielomianów: jednego 32-bitowego (dla standardu IEEE 802.3) i trzech 16-bitowych (dla standardów CCIT-16, MBus, ZigBee i USB). Moduł AES odpowiedzialny jest z kolei za szyfrowanie danych. Mechanizm ten wykorzystuje klucze 128-, 192- lub 256-bitowe.
Kolejnym zasobem należącym do peryferiów cyfrowych jest moduł DMA. Umożliwia on, bez użycia rdzenia, transfer danych pomiędzy następującymi peryferiami mikrokontrolera: przetwornikami A/C, C/A i pojemnościowo-cyfrowym, interfejsami USB, I2C, I2S, SPI i USART/UART, układami czasowymi, układem licznikowym EPCA0 oraz modułem AES.