Arduino Polska Forum
Pamięć FRAM 64Kb Adafruit - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Magazynowanie (https://forum.arduinopolska.pl/dzial-magazynowanie)
+--- Wątek: Pamięć FRAM 64Kb Adafruit (/watek-pami%C4%99%C4%87-fram-64kb-adafruit)

Strony: 1 2


Pamięć FRAM 64Kb Adafruit - D4rk0 - 04-04-2018

Witaj. Na początku się przywitam, bo jestem nowy na forum i świeży przy Arduino. 
Mam nadzieję że wątek nie narusza regulaminu i że dobry dział wybrałem. Otóż potrzebuję pomocy bo mam kłopot z pamięcią FRAM 64Kb od Adafruit, nie wiem jak stworzyć kod. Trochę przeszperałem w internecie ale nic nie znalazłem. Chodzi o to że potrzebuję kilka zmiennych z liczbami zapisać właśnie w tej pamięci, by móc je odczytywać kiedy trzeba będzie, zmienne to liczby całkowite do 100tyś, np.:
zmienna1 = 25000
zmienna2 = 35000 itp.
Działał ktoś z czymś takim? Prosiłbym o pomoc w zrozumieniu.
Pozdrawiam


RE: Pamięć FRAM 64Kb Adafruit - kaczakat - 04-04-2018

Nie bawiłem się tym, ale to arduino, procedura jest taka sama. Sprawdzasz czy masz FRAM na I2C czy SPI, instalujesz bibliotekę, Adafruit skoro sprzedaje to oczywiście dała do pobrania dla obu rodzajów, po instalacji jest w każdej przykład. Jeśli przykład nie wyczerpuje odpowiedzi to otwierasz najpierw keywords.txt potem pliki *.h, a na końcu analizujesz *.cpp. Jak na teraz wygląda Twój kod?


RE: Pamięć FRAM 64Kb Adafruit - Robson Kerman - 04-04-2018

Tu masz biblioteki i przykłady.
https://github.com/adafruit/Adafruit_FRAM_SPI/archive/master.zip
Obecnie działem na starych dobrych HY5118160 i myślę, że nie ma sensu bawić się w FRAM, skoro za darmo można nabyć te DRAM'y o większej pojemności.


RE: Pamięć FRAM 64Kb Adafruit - kaczakat - 05-04-2018

Fram to takie EEPROM raczej, po I2C szybkość nieco większa niż EEPROM, po SPI jeszcze większa i nie mają limitu 100 tys. zapisu.


Pamięć FRAM 64Kb Adafruit - D4rk0 - 05-04-2018

Dzięki za zainteresowanie tematem. Kość jest podpięta pod SPI, biblioteka została wgrana tak jak i przykład, z tym że przykładu nie rozumię. Kodu nie mam jeszcze, bazowałem na przykładzie i chciałem go przerobić pod siebie, a potem dopiero wykorzystać w dalszym projekcie.


RE: Pamięć FRAM 64Kb Adafruit - kaczakat - 05-04-2018

Cokolwiek ktoś tu napisze, to będzie bardziej skomplikowane niż użycie funkcji z przykładu do zapisania/odczytu 1 bajtu. Liczba 100000 mieści się np. w liczbie 32 bitowej, 4 bajtach, trzeba po prostu liczbę 4-bajtową zapisać w rozbiciu na 4 bajty w kolejnych komórkach, tak samo odczytać - cztery bajty doklejasz razem z powrotem w liczbę 32 bitową. Jak zapisać/odczytać bajt jest w przykładzie. Czego nie rozumiesz z przykładu?


Pamięć FRAM 64Kb Adafruit - D4rk0 - 05-04-2018

Masz na myśli te przykłady co są w linku powyżej do pobrania?


RE: Pamięć FRAM 64Kb Adafruit - kaczakat - 05-04-2018

Obojętne, jak masz jakieś inne to wklejaj inne i pytaj o to czego nie rozumiesz. Na razie nie wiem o co pytasz, może ktoś tu będzie wiedział i Ci odpowie.


Pamięć FRAM 64Kb Adafruit - D4rk0 - 05-04-2018

Jeśli dobrze rozumię, to jeśli chcę zapisać liczbę 1 bajtową, to po prostu ją zapisuję i mogę swobodnie ją odczytać, a jeśli natomiast mam liczbę większą np. dwu bajtową to muszę ją podzielić i zapisać w dwóch komórkach, a potem scalić razem by odczytać ją taką jaką zapisałem. Dobrze myślę?


RE: Pamięć FRAM 64Kb Adafruit - kaczakat - 06-04-2018

Tak, a do zapisania/odczytania bajtu masz już funkcję w przykładzie z biblioteki. Żeby odczytać musisz znać adres komórki pamięci gdzie zapisałeś. Najwygodniej napisać sobie funkcję (lub znaleźć gotowca w internecie) zapisującą od razu całość. Nawet tu masz przykłady w temacie EEPROM zapisu float, float to też 4bajtowa liczba w Arduino. Generalnie do wykorzystania jest zabawa z przesunięciami bitowymi, unia, tablice i wskaźniki, struktury, obiekty. W każdej ostatecznie wykorzystasz gotową funkcję odczytującą/zapisującą ten jeden bajt w taki sam sposób jak w przykładzie.