Witam,
Potrzebuje pomysł na zgrabne programowanie zewnętrznej kości EEPROM podpiętej przez I2C z STM32F103RB.
Chcę żeby to się odbywało mniej więcej jak to ma miejsce w AVR, czyli jeżeli programuje procesor to i EEPROM.
W STM na początku programu mam funkcję która programuje mi EEPROM domyślnymi wartościami, ale wiadomo że tak nie może zostać na stałe, gdyż zmienione ustawienia będą wymazywane ilekroć program będzie uruchamiany od nowa - potrzebuję więc gdzieś ustawić jakąś flagę, która sygnalizuje że eeprom jest juz zaprogramowany i należy pominąć programowanie wartosciami domyślnymi.
Taka flaga musi się resetować w przypadku programowania, ale jednocześnie musi przetrwać zaniki napięcia.
Nie mam baterii więc przechowywanie flagi w rejestrach chronionych odpada, myślałem jeszcze o przechowywaniu we flashu, jednak musiałbym poświęcić na to całą stronę (1KB flasha po to żeby przechować 1 bit informacji :/). Mógłbym też przechowywać taką flage poprostu w EEPROMie, ale jeśli zmienię coś w programie co dotyczny eepromu, a w flaga jest juz ustawiona to muszę ręcze wymusić zaprogramowanie eepromu - to podowuje problemy przy aktualizacji oprogramowania, ta opcja nie jest idealna ale najlepsza ze wszystkich.
Jestem dosyć początkujący w tych procesorach i nie znam jeszcze wszystkich tajników, być może ktoś mi podsunie odpowiednie rozwiązanie.
Potrzebuje pomysł na zgrabne programowanie zewnętrznej kości EEPROM podpiętej przez I2C z STM32F103RB.
Chcę żeby to się odbywało mniej więcej jak to ma miejsce w AVR, czyli jeżeli programuje procesor to i EEPROM.
W STM na początku programu mam funkcję która programuje mi EEPROM domyślnymi wartościami, ale wiadomo że tak nie może zostać na stałe, gdyż zmienione ustawienia będą wymazywane ilekroć program będzie uruchamiany od nowa - potrzebuję więc gdzieś ustawić jakąś flagę, która sygnalizuje że eeprom jest juz zaprogramowany i należy pominąć programowanie wartosciami domyślnymi.
Taka flaga musi się resetować w przypadku programowania, ale jednocześnie musi przetrwać zaniki napięcia.
Nie mam baterii więc przechowywanie flagi w rejestrach chronionych odpada, myślałem jeszcze o przechowywaniu we flashu, jednak musiałbym poświęcić na to całą stronę (1KB flasha po to żeby przechować 1 bit informacji :/). Mógłbym też przechowywać taką flage poprostu w EEPROMie, ale jeśli zmienię coś w programie co dotyczny eepromu, a w flaga jest juz ustawiona to muszę ręcze wymusić zaprogramowanie eepromu - to podowuje problemy przy aktualizacji oprogramowania, ta opcja nie jest idealna ale najlepsza ze wszystkich.
Jestem dosyć początkujący w tych procesorach i nie znam jeszcze wszystkich tajników, być może ktoś mi podsunie odpowiednie rozwiązanie.