Trips&Tricks: kinetisowe FAQ

Przedstawiamy ekspresowy przegląd uwag i zaleceń dla użytkowników mikrokontrolerów z rodzin Kinetis L i K, podzielonych na poszczególne peryferia. Jest to zbiór uwag, jakie powstały w odpowiedzi na pytania zadawane przez użytkowników supportowi technicznemu firmy Freescale.

 

Przetworniki analogowo-cyfrowe (ADC)

Dla przetworników ADC istnieją dwie różne specyfikacje - statyczna oraz dynamiczna. Specyfikacja dynamiczna jest określona przez efektywną liczbę bitów (ENOB). Jest to właściwość systemu. Freescale tworzy płytki testowe specjalnie do pomiaru ENOB. Są one projektowane tak, aby zredukować wpływ zewnętrznych szumów do minimum.

Specyfikacja statyczna jest określona przez całkowity błąd niedopasowania (total unadjusted error, TUE). Specyfikacja ta odzwierciedla wpływ układu scalonego na błąd. Wszystkie parametry są opisane w nocie aplikacyjnej

Z powodu wewnętrznych szumów, 16 bitów rozdzielczości jest dostępnych tylko na kilu dedykowanych wyprowadzeniach. Lista wyprowadzeń znajduje się w punkcie 6.6.1 „ADC electrical specifications” karty katalogowej każdego konkretnego układu.

Rezystancja źródła analogowego (Ras) podana w specyfikacji to wartość potrzebna by uzyskać najwyższą szybkość konwersji. Jeśli dopuszczalna jest niższa szybkość pracy systemu, rezystancja może być znacznie większa. W rozdziale 6.2.1 „Sampling Error” instrukcji znajduje się szczegółowy opis obliczenia maksymalnej rezystancji wejściowej.

Wzmacniacz PGA (jeśli jest dostępny) jest związany z określonymi kanałami różnicowymi; większość kanałów nie może być wzmocniona wewnątrz układu.

Kalibracja jest konieczna w trybie 16-bitowym. Parametry trybu 16-bitowego określone w specyfikacji zakładają kalibrację. Nie jest ona wymagana w trybie 8, 10, lub 12-bitowym.

Kalibracja koryguje pojemność kondensatora, której nie można precyzyjnie kontrolować w procesie produkcyjnym. Kalibracja jest jednorazowa, a jej ustawienia są przechowywane w pamięci Flash. Po resecie wartości te są kopiowane z pamięci do rejestrów kalibracji.

 

CAN

Protokół CAN wymaga, aby każdy z nadajników zwolnił magistralę, jeśli dane na magistrali nie są przeznaczone dla niego. Z tego powodu peryferia CAN muszą nasłuchiwać linii Rx w celu wykrycia sygnału Tx. Jeśli urządzenie CAN nie nadaje poprawnie w czasie testów, należy się upewnić, że CAN lub zewnętrzny układ wysyła sygnał Tx na linię Rx, lub też przeprowadzić test ze sprzężeniem zwrotnym.

Liczba buforów wiadomości dostępnych w peryferiach FlexCan zależy od urządzenia. Informacje na ten temat znajdują się w rozdziale Chip Configuration instrukcji.

 

Przetworniki cyfrowo-analogowe (DAC)

6-bitowe przetworniki DAC są częścią analogowego układu komparatora z regulowanymi progami. Analogowe wyjścia nie są dostępne wewnątrz układu. Aby skorzystać z analogowych sygnałów zewnętrznych, należy użyć przetwornika 12-bitowego.

12-bitowy DAC używa dwóch 8-bitowych rejestrów, aby ustalić napięcie wyjściowe. Zmiana każdego z rejestrów spowoduje natychmiastową zmianę napięcia na wyjściu. Aby zmienić napięcie w sposób atomowy, można wykorzystać program lub DMA do wpisania słowa 16- lub 32-bitowego do rejestrów DACx_DAT lub użyć bufora DAC, jeśli taki jest dostępny.

 

Kontroler DDR

Jeśli kontroler pamięci DRAM nie jest używany, należy odłączyć piny DDRx. Kontroler DRAM jest domyślnie wyłączony po uruchomieniu systemu.

Nota aplikacyjna AN2482 omawia szczegółowo problemy związane z warstwą sprzętową I topologią układu.

Kontroler nie obsługuje pamięci z dwoma bankami. Możliwa jest tylko obsługa pamięci z liczbą banków 4 lub 8.

Wewnętrzny sygnał terminujący (ODT) i DDR_ODT są używane tylko z pamięcią DDR2. W przypadku pamięci DDR1 lub LPDDR pin DDR_OUT powinien być niepodłączony.

Poziom napięcia referencyjnego DDR_VREF powinien być równy VDD_DDR/2. Tak samo w przypadku pamięci LPDDR, która nie wymaga napięcia referencyjnego, jednak DDR_VREF jest wykorzystywane przez układy wejścia/wyjścia mikrokontrolerów Kinetis DRAM do przesyłania sygnałów różnicowych. Użycie napięcia odniesienia jest lepsze od dzielnika napięciowego z opornikiem, który może wprowadzać szumy oraz powodować problemy z integralnością sygnału.

Interfejsy debugowania

Niektóre mikrokontrolery Kinetis obsługują interfejsy JTAG oraz SWD, pozostałe tylko SWD. Niektóre urządzenia korzystają też z interfejsu ARM do śledzenia w czasie rzeczywistym. Informacje na ten temat można znaleźć w rozdziale Debug instrukcji.

Informacje o standardowych złączach można znaleźć w dokumentacji kart systemu Tower.

Podczas stosowania interfejsu JTAG zalecane jest podłączenie dużego rezystora podciągającego do sygnału JTAG_TMS. Karty Tower używają rezystorów 10 kΩ.

W interfejsie SWD występuje wewnętrzny układ ściągający linie SWD_CLK w dół, a SWD_DIO w górę. Nie należy dołączać dodatkowych rezystorów do sygnału SWD_CLK. Dwukierunkowa linia danych SWD_DIO może korzystać z dodatkowego rezystora podciągającego o wartości ok. 10 kΩ w środowisku pełnym zakłóceń.

W urządzeniach z funkcję EzPort sygnał EZP_CS_b musi być w stanie wysokim podczas zwalniania sygnału reset, aby mikrokontroler się uruchomił lub aby użyć debuggera. Więcej informacji można znaleźć w rozdziale EzPort.

 

EZPort

Pin PTA4 jest współdzielony z sygnałem EZP_CS. Pin musi osiągnąć poziom zasilania, by pracować normalnie, w przeciwnym wypadku układ przechodzi w tryb EZPort. Alternatywą jest wyłączenie funkcji EZP_CS za pomocą rejestru FOPT.

Jeśli EZPort ani NIMI nie są używane, należy je zewrzeć do VDD. Jeśli EZPort nie jest używany, ale NIMI jest, należy się upewnić, że obciążenie obwodu umożliwia osiągnięcie poziomu VDD podczas uruchamiania. Inną możliwością jest wyłączenie funkcji EZP_CS programowo.

Jeśli tryb EzPort jest aktywny, a sygnał EZP_CS_b jest w stanie niskim po resecie, urządzenie pozostanie w trybie EzPort. Mikrokontroler nie rozpocznie pracy, a debugger nie będzie miał do niego dostępu.

Jeśli projekt stanowi kopię jednej z płyt Tower używajacej JTAG, należy sprawdzić połączenie z pinem 9 (PTA4_EZP_CS_b). Na niektórych schematach pin ten jest zwarty do masy, przez co urządzenie przechodzi w tryb EZPort.

 

FlexBus

Został omówiony w nocie aplikacyjnej.

FlexBus obługuje pracę niemultipleksowaną, ale nie ma bitu, który określałby, czy FlexBus znajduje się w trybie niemultipleksowanym. Zamiast tego opiera się na używanych sygnałach FlexBus. Niektóre mikrokontrolery Kinetis oferują magistralę FB_A[], która jest magistralą niemultipleksowaną dla sygnałów adresowych. FB_A[] jets multipleksowana – najpierw wystawiany jest adres, a następnie dane. W mikrokontrolerach Kinetis nie ma magistrali FB_D[]. Wyrównanie bajtów danych I szerokość portu mogą być skonfigurowane w FlexBus w taki sposób, że sygnały adresowe nadawane do urządzenia podrzędnego FlexBus nie są multipleksowane dla kombinacji sygnałów FB_A[] I FB_AD[]. W takim wypadku sygnały danych będą sterowane z drugiego końca FB_AD[].

FlexBus wykorzystuje sygnał ALE do zatrzaśnięcia adresu. Sygnał ALE oraz adres muszą być utrzymane przez co najmniej jeden cykl zegara FlexBus, a następnie unieważnione na koniec cyklu zegara. Aby uniknąć wyścigu z ALE zatrzaskującym adres, możliwe są dwie opcje:

Zaprogramowanie FlexBus tak, aby wystawiał adres przez czas dłuższy, niż cykl zegara. Sygnał ALE zostanie unieważniony po jednym okresie I pozwoli zatrzasnąć ustrabilizowany adres.

Wykorzystanie zewnętrznego układu do zatrzaśnięcia adresu na narastającym zboczku FB_CLK, gdy ALE jest ważny.