Pytanie:
Co należy wziąć pod uwagę podczas konfigurowania systemu zegara dla mikrokontrolera MSP430F5xxx?
Mahendra Gunawardena
2015-08-04 04:35:45 UTC
view on stackexchange narkive permalink

Muszę skonfigurować układy zegara dla mikrokontrolera MSP430F5528. Obecna płytka rozwojowa ma kryształ 24 MHz dołączony do pinów XT2 (XT2IN / XT2OUT). Obecny projekt będzie musiał obsługiwać następujące urządzenia peryferyjne.

  • UART
  • ADC
  • SPI
  • Timery

Niewiele GPIO będzie potrzebnych do uruchomienia systemu. System będzie częścią aplikacji małej mocy. Budżet mocy nie został jeszcze określony.


O systemie zegarowym MSP430

MSP430 ma w większości trzy wewnętrzne zegary

  1. MCLK - zegar główny - procesor
  2. SMCLK - zegar główny podrzędny - szybkie urządzenia peryferyjne
  3. ACLK - zegar pomocniczy - wolne urządzenia peryferyjne
  4. ol >

    enter image description here


    Pytanie: Co należy wziąć pod uwagę konfigurując system zegara w oparciu o powyższe kryteria?

Jeden odpowiedź:
Asmyldof
2015-08-04 19:01:09 UTC
view on stackexchange narkive permalink

To zależy trochę od jakości, jakiej oczekujesz od niektórych urządzeń peryferyjnych i ich właściwości przy danych częstotliwościach zegara.

Czy chcesz mieć bardzo szybki interfejs SPI i czy ten konkretny chip obsługuje to na szybkim zegarze pomocniczym? A może zamierzasz zrobić co najwyżej 1MHz SPI? Więc także dla wszystkich innych urządzeń.

Oczywiście miło się przechwalać móc powiedzieć, że wszystko działa z częstotliwością wielu MHz, ale jeśli nie jest to potrzebne, spowoduje to większe zużycie energii, więcej ciepła i więcej wysiłku programistycznego bez rezultatu. Może być kuszące, aby zrobić wszystko z maksymalną szybkością i najwyższą dokładnością, ale w prawie wszystkich przypadkach dobry projekt systemu zaczyna się od indeksowania minimalnej szybkości i dokładności, aby coś działało, a następnie uwzględnienia odpowiednich marginesów. (Uwaga: jeśli później będziesz potrzebować większej szybkości, korzystne może być skonfigurowanie sprzętu w taki sposób, że skalowanie w górę jest tylko problemem oprogramowania układowego).

Co do aktywacji kryształu; Właściwie nie znam tego konkretnego chipa, ale wydaje się kompatybilny w budowie z tymi, które znam, które mają konfigurowalne źródło zegara, które jest wybierane przy włączaniu, w którym to przypadku ustawienie kryształu jako źródła jest prosta konfiguracja i ewentualnie konfiguracja wszystkich innych zegarów jest również. Jeśli tak nie jest i musisz aktywnie przełączyć się, gdy już działa rdzeń, musisz upewnić się w 100%, że kryształ działa, zanim się przełączysz. Arkusz danych będzie zawierał bardzo wyraźną wzmiankę o procedurach potrzebnych do tego, jeśli tak jest. Zwykle jest to coś w rodzaju: Aktywuj zegar -> Poczekaj, aż rejestr zostanie ustawiony -> Przełącz.

W odniesieniu do ADC może to stać się bardzo skomplikowanym przypadkiem. Jeśli potrzebujesz bardzo niskiego jittera próbkowania lub bardzo dokładnego taktowania (dla bardzo dokładnego sterowania lub bardzo (bardzo) wysokiej jakości dźwięku), szybko przejdziesz do domeny używania Crystal jako źródła zegara. Tam również będziesz musiał wziąć pod uwagę pewne kwestie sprzętowe. Zarówno w domenie analogowej, jak i po stronie kryształu, ponieważ dokładność kryształu zależy od pojemności ładowania (która obejmuje ślady i szpilki).

Ale tych zastosowań jest niewiele.

W większości przypadków timery i UART określają zegary, których potrzebujesz, ponieważ są najbardziej wrażliwe na dryf i / lub przesunięcie zegara. Jeśli potrzebujesz timera tylko do pomiaru czasu przy niskiej prędkości, lepiej polegaj na szkiełku zegarkowym, ponieważ zarówno kryształ, jak i wewnętrzny obwód sterujący dla takich kryształów o niskiej częstotliwości są zwykle lepiej dostosowane do wysokiej dokładności i niskiego dryftu przez długi czas.



To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...