Tworzę aplikację pomiarową za pomocą TI MSP430 i chciałbym usłyszeć sugestie dotyczące tego, jakiego rodzaju pamięci mogę użyć.
Chodzi o to, aby użyć go do logowania przez określony czas, a następnie pobrać dane na komputer, gdy urządzenie jest podłączone przez USB. Szacuje się, że pomieści do 5 MB danych, przy czym każda próbka ma około 25 bajtów danych.
Czy wystarczy prosty układ EEPROM, czy może jest coś lepszego?
Odpowiedzi:
Użyłem AT45D serię chipów szeregowych flash. Posiadają wewnętrzny bufor SRAM do konfiguracji strony do kasowania / programowania. Interfejs SPI do wczytywania i wyprowadzania danych.
źródło
5 MB to dużo danych do przechowywania. Odczyt to przez USB oznacza, że używasz jednej z nowych części z wbudowanym interfejsem urządzenia USB. Jeśli nie, będziesz używać konwertera USB na szeregowy (FTDI lub podobny) i będzie ograniczony do asynchronicznego portu szeregowego szybkości przesyłania danych do odczytu danych.
Czy rozważałeś podłączenie karty pamięci SD do MSP, przechowywanie w niej danych, a następnie przeniesienie karty do komputera w celu odczytania zapisanych danych. Nie napisałem interfejsu do tego urządzenia, ale jest ich wiele.
źródło
Błysk szeregowy jest lepszy od EEPROM w tej aplikacji. Atmel stanowi świetny skład . Twój wybór będzie zależeć w dużej mierze od dwóch rzeczy: (1) Konieczności edycji / sektora dzienników na mikro i (2) Dostępność pamięci RAM na MSP430.
Flash, w przeciwieństwie do EEPROM, może być zapisywany tylko z 1 na 0. Zmiana danych z 0 na 1 wymaga usunięcia części części, która zazwyczaj jest dostępna tylko dla stron lub bloków danych. Musisz buforować tę stronę do pamięci RAM, usunąć stronę, dokonać edycji w pamięci RAM, a następnie zapisać ją z powrotem, jeśli chcesz coś zmienić.
Jak już wspomniano, seria AT45D oferuje szereg części, które mają bufory pamięci RAM na układzie, aby ułatwić ten proces bez użycia pamięci RAM na mikrokontrolerze.
Ostatecznie cała seria jest kompatybilna z pinami, więc po prostu odłóż 8-SOIC (150mil), a następnie możesz wymienić części, jeśli później będziesz potrzebować różnych opcji.
źródło
Sugerowałbym serię AT25D, ponieważ wydaje się nieco łatwiejsza w użyciu niż AT45D. Chociaż jest nieco wolniejszy i nie oferuje tylu opcji przesyłania danych ani buforów SRAM. Ma tę zaletę, że jest tańszy i wciąż jest wystarczająco szybki dla większości aplikacji, takich jak rejestrowanie danych.
Jeśli potrzebujesz 5 MB danych, mało prawdopodobne jest, że pamięć EEPROM będzie działać, ponieważ zazwyczaj są one dostarczane w pakietach <1 Mb. Chipy Flash firmy Atmel obsługują do 64-bitów lub 8 MB.
źródło
[Jest to odpowiedź na komentarze po odpowiedzi Iana].
Karta SD to tylko urządzenie SPI, więc nie jest potrzebny żaden układ / interfejs. Inne protokoły obejmują interfejs 2-przewodowy (jak I2C) i interfejs 4-przewodowy (ze złożonym CRC), ale najczęściej używany jest SPI.
Jest uwaga zastosowanie kart SD dostępne dla MSP430 z TI tutaj . Jest krótki, ale zawiera przykładowy kod. Obsługuje odczytywanie i zapisywanie w różnych sektorach na karcie SD, co może być wszystkim, czego nie chcesz, jeśli nie zamierzasz podłączać jej do komputera. Zobacz także implementacje Fousta (zalecane) lub Evansa z MSU.
Gdy będziesz mieć podstawowe funkcje do odczytu i zapisu sektora, możesz albo wyodrębnić prosty, niestandardowy system plików przez USB, albo użyć istniejącej biblioteki systemu plików. FatFS , EFSL lub DOSF to wszystkie opcje dla tego drugiego. Jeśli wdrożenie wszystkich wymaganych funkcji wydaje się zbyt trudne, pamiętaj, że wszystkie oprócz kilku mogą / będą skrótami.
Jednak system plików zostanie do pewnego stopnia wyodrębniony przez interfejs USB. Będzie to łatwiejsze, jeśli masz prawdziwą bibliotekę systemu plików, a twoja karta jest w czytelnym systemie plików, ale to wymaga pracy. Jeśli chcesz napisać własny „system plików” i zaoszczędzić pracę / czas / pamięć dla implementacji USB, możesz uczynić jego definicję tak prostą i nieelastyczną, jak log 1 zaczyna się od 0x0, log 2 zaczyna się od 0x10 0000, log 3 zaczyna się od 0x20 0000 i zaloguj 4 pod adresem 0x30 0000. Następnie możesz wysłać te dane przez USB.
Interfejs USB może być tak złożony, jak chcesz - od interfejsu szeregowego po urządzenie pamięci masowej.
źródło