Pierwszymi mikrokontrolerami MSP430 z pamięcią FRAM produkowanymi przez Texas Instruments były układy z serii MSP430FR57xx. Następnie firma rozpoczęła realizację projektu pod nazwą Wolverine. W ramach projektu powstały nowe serie MSP430 z pamięcią FRAM o oznaczeniach MSP430FR58xx, MSP430FR59xx.
W porównaniu do układów z serii MSP430FR57xx mikrokontrolery z rodziny Wolverine charakteryzują się mniejszym poborem prądu (ok. 0,5 mA w trybie zegara RTC) oraz mają większe zasoby pamięci FRAM (do 128 kB pamięci).
Aby promować mikrokontrolery z serii Wolverin, firma Texas Instruments opracowała układ startowy LaunchPad wyposażony w mikrokontroler z serii MSP430FR59xx. Dodatkowo, zaprojektowano płytę rozszerzeń BoosterPack z wyświetlaczem LCD. W artykule zaprezentujemy możliwości nowego układu LaunchPad, oraz płyty rozszerzeń BoosterPack.
LaunchPad
Zestaw startowy LauchPad dla mikrokontrolerów MSP430 z pamięcią FRAM składa się z: płytki startowej LaunchPad, przewodu USB-A/mikro-B oraz skróconej instrukcji użytkownika. Zawartość zestawu pokazano na rysunku 1. Jego najważniejszym elementem jest płytka LaunchPad. Na płytce zainstalowano mikrokontroler z serii Wolverine o oznaczeniu: MSP430FR5969. Parametry mikrokontrolera umieszczono w tabeli 1.
LaunchPad to nazwa grupy płytek startowych produkowanych przez Texas Instruments. Wszystkie płytki produkowane są zgodnie z ustalonym standardem. Każdy LaunchPad zawiera mikrokontroler, podstawowe elementy peryferyjne oraz ma zintegrowany moduł programatora/emulatora. Dodatkowo, produkowane są różnego rodzaju płyty rozszerzeń BoosterPack kompatybilne z układami LaunchPad (kategorie: audio, wyświetlacze, sterowanie silnikami, itp.). Dotychczas wyprodukowano moduły LaunchPad dla mikrokontrolerów z serii:
Szczegółowe informacje na temat modułów LaunchPad znajdziemy na stronie internetowej związanej z tym projektem. Na stronie zamieszczono również wyszukiwarkę płyt BoosterPack. W wypadku, gdy żadna z oferowanych płyt BoosterPack nie spełnia naszych oczekiwań, to możemy zaprojektować własną płytę rozszerzeń. Komplet materiałów pomocnych przy projektowaniu płyt rozszerzeń BoosterPack dla modułów LauchPad znajdziemy na stronie poświęconej projektowi. Adres strony www dla projektu LaunchPad to http://www.ti.com/ww/en/launchpad/launchpad.html. |
Poza mikrokontrolerem na płytce startowej LaunchPad umieszczono 3 przyciski (dwa użytkownika oraz przeznaczony do zerowania), 2 diody LED ( zielona i czerwona), gniazdo USB (komunikacja UART przez USB), dwa złącza rozszerzenia (20-pinowe w standardzie BosterPack), kwarc zegarkowy o częstotliwości 32768 Hz, oraz superkondensator o pojemności 0,1 F (do podtrzymania zasilania po wyłączeniu głównego napięcia zasilającego). Płytka startowa ma zintegrowany układ programatora/emulatora eZ-FET. Wygląd płytki startowej LaunchPad MSP-EXP430FR5969 pokazano na rysunku 2.
Moduł startowy LaunchPad może być zasilany z jednego z pięciu niezależnych źródeł. Dostępne opcje konfiguracji źródła zasilania modułu opisano w tabeli 2.
Pobór prądu modułu LaunchPad (mikrokontrolera oraz modułu BoosterPack) mierzymy włączając amperomierz w miejscu zworki J9 (measure current). Aby linie UART nie miały wpływu na wynik pomiaru, należy w złączu J13 zdemontować zworki RTS, CTS, TX, RX.
BoosterPack
Płytę rozszerzeń BosterPack o oznaczeniu 430BOOSTSHARP96 wyposażono w energooszczędny wyświetlacz graficzny LCD produkowany przez Sharp Electronics (1,3", 96×96 pikseli).
Dodatkowo, na płycie zainstalowano wejścia pojemnościowe, które tworzą dwa paski nawigacji (slidery - suwaki, każdy złożony z trzech wejść pojemnościowych). Wygląd płyty rozszerzeń BoosterPack 430BOOST-SHARP96 pokazano na rysunku 3.
FRAM w MSP430
Pamięcią FRAM w MSP430 zarządza moduł RFCTL (FRAM Controller). Schemat blokowy modułu pokazano na rysunku 4. Dostęp do pamięci może być 8- bądź 16-bitowy (bajt/słowo). Operacja zapisu nie wymaga wcześniejszego kasowania komórki pamięci. Przypomnijmy, że w pamięci Flash można zmienić poziom logiczny z "1" na "0", natomiast zmiana z "0" na "1" wymaga wcześniejszego skasowania całego sektora pamięci, którego wielkość w MSP430 wynosi 512 bajtów).
W momencie przerwania zapisu do pamięci (zanik zasilania), dane (bajt/słowo) zapisywane są poprawnie. Kontroler pamięci wyposażono w mechanizm wykrywania i korekty błędów zapisu do pamięci ECC (Error Correction Code logic). Jeśli wystąpił błąd, który można skorygować, dane w pamięci są poprawiane i jest ustawiana flaga przerwania CBDIFG. Wystąpienie błędu, którego nie można poprawić powoduje ustawienie flagi przerwania UBDIFG. Obie flagi można "przechwycić" i w procedurze obsługi przerwania odpowiednio zareagować na błąd zapisu do pamięci.
Integralną część modułu FRCTL stanowi układ MPU (Memory Protection Unit). Korzystając z układu MPU możemy podzielić pamięć FRAM mikrokontrolera na sektory i nadać im prawa dostępu: wykonanie, tylko odczyt, odczyt/zapis. Po starcie mikrokontrolera MPU jest wyłączony, a pamięć FRAM ma prawa umożliwiające odczyt, zapis i wykonanie.
W momencie niedozwolonego dostępu do pamięci, np. przy próbie zapisu danych do sektora z prawami tylko do odczytu, jest ustawiana flaga przerwania informująca o zaistniałym zdarzeniu. Można też w taki sposób skonfigurować MSP430, aby naruszenie praw dostępu do pamięci wywoływało restart mikrokontrolera.
Maksymalna prędkość dostępu do pamięci FRAM (odczyt / zapis) wynosi 8 MHz. Transmitując dane 16-bitowe oraz korzystając z mechanizmu DMA możemy uzyskać prędkość zapisu danych równą 16 MB/s.
Dopuszczalna liczba cykli zapisu pamięci FRAM wynosi 1015. Trzeba jednak pamiętać, że odczyt komórki pamięci wiąże się z koniecznością zmiany pozycji ładunku w obrębie dipola, co jest tożsame z operacją wykonywaną podczas zapamiętywania danych, więc odczyt fizycznie zużywa pamięć. Przykładowo, gdyby komórka pamięci była odczytywana z częstotliwością 1 MHz, to uległaby zniszczeniu po około 3 latach.
W praktyce taka sytuacja jest mało prawdopodobna. Energooszczędne aplikacje (a w takich stosowane są MSP430) przez większość czasu swojego działania przebywają w trybie uśpienia. Uwzględniając to założenie inżynierowie z Texas Instruments przeprowadzili obliczenia, z których wynika, że w typowej aplikacji low-power trwałość pamięci FRAM to 80 lat użytkowania.
Podsumowanie
W jednym z najbliższych numerów EP zaprezentujemy projekt rejestratora temperatury z zapisem próbek do pamięci FRAM mikrokontrolera. Za bazę sprzętową posłuży nam moduł startowy LaunchPad oraz płyta rozszerzeń BoosterPack z modułem L CD omawiane w dzisiejszym artykule. Do zasilania rejestratora wykorzystamy superkondensator zamontowany na płycie LaunchPad.
Łukasz Krysiewicz, EP