Raczej tak. [syntax=c]uint8_t eeSEast EEMEM = 00; uint8_t s; eeprom_write_byte(&eeSEast, s); // zapis do eepromu s = eeprom_read_byte(&eeSEast); // odczyt z eepromu [/syntax]
Ustawiłem wielkość EEPROM na 512 i zwiększyłem wykorzystanie do 380. Pokaż, jak wygląda ta inicjalizacja emulowanego EEPROM w setup(), w szczególności to "zwiększenie".
Pokazać plik "eeprom.h", to chyba oczywista oczywistość! W jakim celu? Po pierwsze ten plik jest powszechnie dostępny Jaką wersję ma autor postu? Będę zgadywał, no próbuję ale szklana kula nie działa. Powszechnie dostępne są też moje biblioteki, "Radzia", z ATNELA, itp itd i co mam zgadywać? Mam znać je wszystkie? PS Były błędy w bibliotekach AVR-GCC...
.. Nie wiem tylko jak sprawdzić czy układ daje ACK po zaadresowaniu..? Eh , leniuszek ;) I2cstart I2cwbyte Adres_urzadzenia If Err=1 Then Print "Device not present !" Else '... Endif Piotrek
W datasheet jest zapisana przykładowa procedura zapisu i odczytu pamięci EEPROM. O ile nie zaznaczyłeś odpowiedniego bitu w fusebits to pamięć EEPROM jest standardowo kasowana przy programowaniu kości.
...Nawiązując do sugestii kolegi wrzuciłem linijki do programiku i na nieszczęście nawet wyświetlacz lcd przestał wyświetlać, a tylko mruga pierwsza linijka. Nie no , jasnowidzem to nie jestem :D Poza tym , to tylko "pomysł na ..." , a nie gotowiec.Pokaż(załącznik) cały kod , to może cosik się zaradzi :D Piotrek
Jeśli ta funkcja eeprom_write_block jest z atmelowej biblioteki to nie musisz na nic czekać.
A nie prościej wykorzystać przerwania EEPROM? Inicjować je flagą potrzeby zapisu struktury? A w przerwaniu "lecieć" po kolejnych elementach struktury? robiw Można tak, albo dodać kopiowanie struktury do bufora tymczasowego z którego odbędzie się zapis. Ma to sens jeśli w czasie zapisu pola struktóry moga się zmienić - dojdzie wtedy do uszkodzenia danych....
Mogę się zapytać w jakim celu potrzebujesz podłączyć osobną pamięć 4kb? Jedna pamięć w ESP8266 12F już jest i ma 4Mb, a jak tego Ci mało to ESP8266 13 ma jej 16Mb. W Lua wystarczy utworzyć plik, np z rozszerzeniem txt, lub każdym innym, zapisać go do pamięci i pobierać dane czy zapisywać, dopisywać, jednym poleceniem. http://nodemcu.readthedocs.io/en/master/...
To w tym złego, że ilość zapisów do EEPROM jest ograniczona. Zapis do RAM jest problematyczny, bo co jak wysiądzie zasilanie? Trzeba robić sygnalizację i podtrzymanie na czas zapisu danych do EEPROM i specjalną obsługę tej sytuacji w programie. Dlatego albo zastosuj programowe rozwiązanie - wear leveling, albo wsadź pamięć FRAM.
Najlepiej nigdy, przenigdy nie rób takich rzeczy ;) Argumentem tej funkcji powinien być wskaźnik ale ty stosujesz tu rzutowanie i na własną rękę numerujesz komórki pamięci w EEPROM. To doprowadzi cię kiedyś do zagłady ;) jak już to najpierw zdefiniuj sobie zmienną w pamięci EEPROM: unsigned char zmienna EEMEM; a potem np: mem_year = eeprom_read_byte(...
Pod koniec pętli inkrementujesz b potem w if sprawdzasz temp[b) które nie istnieje ponieważ dopiero po tym kroku je wyczytujesz z eepromu
Są oczywiście takie moduły zespolone z pamięcią. Mozna tam zapisywać i czytac po bajcie, ale można też sekwencyjnie całe łańcuchy i tablice nawet serializatorem. Dwie pierwsze funkcje podpowiem. Wygląda na to ze działaja ;) Możnaby dodać jakieś zabezpieczenia na wypadek braku komunikacji. https://obrazki.elektroda.pl/8549538400_...
Witam! Zacząłem pisać program który odczytał by mi z układu 24c02 dane i zapisał je do pliku. Eprom się odczytuje i zapisuje mi do pliku tylko ,że każdy bajt w oddzielnej linii a nie w jednej. Oto kawałek kodu: Cls Lcd "odczyt epromu" K = 0 Buf2 = "" 'For Addressw = 162 'S=Dir( "*.txt") Open "i2c.txt" For Append As #3 ' Addressw = 172 For I = 0 To 255...
Zawsze wpisywałem konkretny adres, ale sam możesz zobaczyć. Wpisz dane do eeprom dane, bez określania adresu, a później odczytaj jedną z komórek. Zobaczysz wtedy, jak twoje dane zostały umieszczone w pamięci eeprom. Pamiętaj, że kolejne wpisywanie/odczytywanie danych może rozpocząć się na końcowym adresie, jaki został użyty. Dlatego lepiej wpisać konkretny...
Dlaczego pokazuje -1 na wyświetlaczu a nie np 255 jak jest dla zmiennej typu Byte. Bo Integer to zmienna ze znakiem, FFFF to właśnie -1. Byte jest zmienną bez znaku (zawsze dodatnią). Dwubajtowa zmienna bez znaku to w Baskomie "Word". Na wyświetlaczu po resecie będzie wówczas 65535. 2. Czy taki zapis eeprom będzie poprawny przy pierwszym sprawdzeniu...
masz uwalony zapis danych adaptacyjnych z pamięci RAM do pamięci EEPROM.
czy dostęp do pamięci z zakresu flasch jest tymi samymi komendami co eeprom czy ram ?
Mój edytor pokazywał błąd, więc zmieniłem na Stringsize i nie było błędu. Czy to ma teraz prawo działać(chodzi o zapis)? Tak, błąd był w "źródle" :)
eeprom to nie jest pamięć ram, po sekwencji wysyłania danych zapis następuje po otrzymaniu znaku stopu i trwa około 10ms.. musisz wstawić opóźnienie 10ms pomiędzy stopem jednego zapisu a startem kolejnego.
a czy odczekujesz, aż pamięć zdąży wykonać operację zapisu? Potrzeba jej na to ok 10ms. Byćmoże symulator to tego nie uwzględnia. Wstaw delay między poszczególne operacje zapisu do pamięci, lub testuj flage zakończenia zapisu do pamięci.
tak, stosuj tablice. Ulatwi ci to robote.... ALE pamietaj zeby NIE ZAPISYWAC DANYCH W KOMORCE EEPROMA O ADRESIE 0. Jesli zaczniesz deklarowac zmienne w bascomie to : ...jakies zmienne... .... .... .... 'EEPROM dim foo as eram byte 'to ci zalatwia komorke 0, bo tu bascom umiesci tą zmienną, i z niej niekorzystasz dim tablica1(3) as eram byte dim tablica2(3)...
Podział pamięci stałych .Budowa pamięci ROM, PROM, EPROM, EEPROM, SRAM, sposób odczytu/zapisu danych itp. Gdzie można tego szukać. Ma ktoś jakieś materiały na ten temat ?
znaczy ze z pamieci SRAM dane same znikaja w trybie idle lub sleep? skoro piszesz w C, to co cie obchodzi w jaki sposob realizowane jest adresowanie posrednie? 4\/3!!
Podczas programowania warto trzymać się starych, sprawdzonych standardów. Np. Intel HEX. Ten standard ma rozwiązane już te problemy o których piszecie, np. jak wieki bufor, kedy rozpocząć zapis eepromu, adresowanie + jeszcze kontrole poprawność danych CRC.
Na początek to wyłącz Caps Locka i przeczytaj http://www.elektroda.pl/rtvforum/faq.php punkt 9/8.
jeśli a zadeklarowane jest jako tablica: char a[128]; to adresem danych w tej tablicy jest: - a - &a[0] &a to ... w sumie nie wiadomo co [; 4\/3!!
A nie możesz użyć malutkiego przekaźnika? Mam tak zrobiony komputerek do samochodu. Zasilanie po stacyjce jest podawane na układ przez diodę. Po uruchomieniu, uC załącza przekaźnik, który podaje napięcie bezpośrednio z akumulatora. Po wyłączeniu stacyjki układ zasilany jest dalej z akumulatora, a dokładnie uC przechodzi w stan zapisu danych do EEPROM...
Witam! Mam takie pytanie jaki potrzebny jest program i programator do zaprogramowania zewnętrznej pamięci eeprom (np.24C02), żeby potem można było odczytać z niej dane np.tekst i wysłać go na wyświetlacz, czy potrzebny jest jakiś specjalny zapis tych danych do pamięci (jakaś struktura zapisu, tego co chcę tam umieścić i potem odczytać?) proszę o odpowiedzi...
(...) rony jak i dowolnej liczby bajtów mniejszej od rozmiaru strony. Czy jeżeli zrobię zapis 2 bajtów na środku 64-bajtowej strony, to czy pozostałe 62 bajty zostaną "przepisane", a więc ich żywotność obniży się o cykl zapisu? Czy może EEPROM faktycznie wewnętrznie dokona wymazania i zapisania tylko 2 bajtów. Algorytm bufora cyklicznego jest powszechnie...
Super świetnie ale czy dla linii SDA i SCL dałeś rezystory podciągające do 3V3? Przydałby się też kondensator przy nodze VCC pamięci. Czy pin WP jest poprawnie spolaryzowany aby umożliwiał zapis danych do eeprom?
Witam grono szanownych kolegów. Temat byl wielokrotnie poruszany na forum ale dotyczyło to przeważnie środowiska winavr. Niestety co kompilator to inne zasady operowania na zmiennych w pamięci. W związku z tym proszę o uprzejmą pomoc. Szukałem w manualu kompilatora ale już skończyły mi się pomysły:/ Problem polega na tym, że gdy zgłaszam zmienna w taki...
Te 4 eepromy jak mają ustawione adresy? Piny adresowe zwarte do masy, czy wiszą? W jakiej kolejności program je obsługuje? Czy zostawienie jednego rozwiązuje problem? Błąd ten to wystąpienie 0 na lini SDA gdy master wystawia jedynkę. Albert
To ma byc timer/stoper ktory po zaniku napiecia bedzie pamietal czas stąd potrzebuję zapisywania danych co sekundę bynajmniej tej jednej zmiennej jaką są sekundy, minuty co 60 sekund wiadomo.. A zegar RTC w tym projekcie jest juz użyty. To, że jest użyty nie znaczy, że przy okazji nie można go użyć do tego celu. Skoro zapisujesz co sekundę jeden bajt,...
SaveToEeprom(1, current, voltage); zapisuje zmienną "current" w komórkach 1 i 2 i zmienną "voltage" w komórkach 3 i 4 EEPROMu. Następnie SaveToEeprom(2, current, temperature); zapisuje zmienną "current" w komórkach 2 i 3 i zmienną "temperature" w komórkach 3 i 4 EEPROMu. itd. Nadpisujesz dane (komórka 3), więc odczytujesz później "śmieci", czyli wartości,...
Źle podchodzisz do tematu. Tworzysz sobie typ danych w postaci struktury z ustawieniami wraz z polami na CRC. Alokujesz takie typy w RAM, ROM i EEPROM. Strukturę w ROM inicjujesz wartościami domyślnymi. Przy każdej zmianie danych w RAM w tej strukturze aktualizujesz sumę kontrolną. Tworzysz funkcję zapisu całej struktury z funkcjami update do EEPROM....
ad 1. Zapewne żaden. ad 2. Dokładnie. Podczas odczytu zwracana jest zawartość EEPROM (skopiowana do bufora lub ostatnio zapisana), podczas zapisu, zapis odbywa się do bufora. Pomyśl o tym tak, że masz np. 32 bajtowy bufor, do którego możesz zapisywać. Po uzupełnieniu w nim danych, możesz je skopiować na raz do EEPROM, na dowolną stronę, której adres...
Witam Chciałbym przez rs232 zapisywać zmienne z pliku txt do zewnętrznej pamięci eeprom np. 24Cxx z których będzie korzystał mikrokontroler atmega128. Od czego zacząć? Czy to będzie bardziej rozwiązanie polegające na programie w mikrokontrolerze zasysającym dane z txt i wczytującym je do eeproma czy zrezygnować z drogi mikrokontrolera i programować...
Witam Mam pytanie odnośnie rozdziału z książki: "Język C dla mikrokontrolerów AVR", być może ktoś czytał i mi coś wyjaśni lub sam autor się wypowie. W książce autor przedstawia funkcję do zapisu danych w EEPROM wykorzystując podstawową funkcję eeprom_write_word() z AVRlib. Tylko funkcje te działają na tej zasadzie że kasują komórkę pamięci, a następnie...
Nie ma bufora. Operacja (od wywołania funkcji do jej zakończenia) trwa tyle, ile potrzeba na zapis do EEPROMu całego bloku danych podanych w argumencie. Dla przykładu, wywołujesz zapis: [syntax=c]#include <EEPROM.h> void setup() { uint8_t var[5] = {1,2,3,4,5}; EEPROM.put(0, var); } void loop() {}[/syntax] Wtedy kompilator tworzy funkcję z szablonu...
Hmmm. Chyba nie ma innego sposobu niż opisany w podręczniku. Ma on pewna wadę - można w trakcie jednej operacji zapisać max double word (można mniejsza porcje word, byte) Wykorzystuje się do tego obszary systemowe. W SMW32 wpisujesz o obszar danych do zapisu jako offset od VB0. W SMB 31 odpowiednio SM31.0 i SM31.1 sterują rozmiarem danej do zapisu (00-byte,...
Nie wiem jak koledzy ocenią mój pomysł natomiast kiedyś zrobiłem to tak że w obwodzie zasilania 5V wstawilem dość duży kondensator 1000 uF, Magazynował on na tyle dużo energii że nawet po zaniku zasilania starczał na kilka sekund. Dorobiłem układ sprawdzający poziom napięcia na transoptorze podłączonym pod napięcie niestabilizowane. Zanik napięcia generowal...
Tego czy zapisuje też do eeprom się nie dowiesz bo jak zapisuje to pewnie same 0xFF. A write eeprom służy do... zapisu danych w eepromie ;) Oczywiście pony jest na tyle cwany że są dwa okienka z programem dla flasha i eepromu więc nie wgrasz na odwrót, chyba że specjalnie ;]
To wszystko kewstia programu a nie samego układu. Moza przecież przed zapisem pobrac częsc całkowitą z liczby podzielonej przez 256 i zapisac do drugiej komórki. A w czesie odczytu odczytac jedna i dodac do niej zawartośc drugiej komórki*256. przykład: 1750 = 214 + (6*256); W jdenej 214 a w drugiej 6 A doczytujesz to tak: 6*256+214=1750. Kompilator...
Widzę, że zapisujesz w koło w jednym miejscu: "eeprom_write_byte(1, humidity+1)". Zwiększ adres po zapisie do eeprom, to będziesz miał więcej danych do analizy. Dodane: (at)gps79, tak, tylko te "print() i println()" mogą autora zmylić. Może "printf("pomiar: %d temperatura: %d wilgotność: %d%%\n", numer, temperature, humidity)"?
Nie znam dobrze tego procesora. Jeżeli ma on wewnętrzny eeprom to jak najbardziej się nadaje. Może dobrze byłoby zająć się jakimś popularnym procesorem (w tej chwili atmega8 jest chyba najpopularniejsza i spokojnie poradzi sobie z twoim zadaniem). Jedno co musisz pamiętać to do eeproma nie można robić zbyt wielu zapisów(jest to przeważnie kilka-kilkadziesiąt...
Przy 40kB zastanów się jednak nad zastosowaniem zewnętrznej pamięci np. flash SPI typu M25Qxx, W25Qxx, AT45DBxx. Strony w STM32F1 są dość małe (2kB) do tego w emulacji używasz 2 stron na 2kB danych. Kasowanie takiej ilości też trwa kilka sekund. Sprawa naprawdę do przemyślenia.
Ogólnie (AT25040/M95040/93Cx6/AT90SXXX/ATmegaX/A... SCK, C, CLK - zegar transmisji szeregowej SI, D, DI, MOSI - wejście szeregowe SO, Q, DO, MISO - wyjście szeregowe Reszta pinów w M95040/AT25040 to zasilanie, piny wyboru chipa(/S,/CS - do GND - chip wybrany, no bo jak inaczej ?), blokady zapisu (/W,/WP - do Vcc - nie blokujemy zapisu), zatrzymania...
Co rozumiesz pod pojęciem "czytanie i zapis całych struktur danych"?
Może za szybko zapiszujesz albo niepełny ten zapis? ;ldi r18,128 clr r16 cli ;eeprom_zapis: ;out eear,r16 ;adres w eeprom ;out eedr,r16 ;zmienna w eeprom ;sbi eecr,2 ;ustawienie EEMWE ;sbi eecr,1 ;impuls EEWE ;test: sbic eecr,1 rjmp test ;inc r16 ;cpse r16,r18 rjmp eeprom_zapis sei ;sprawdz czy adres rowny Jak widać służyło do zapisania kolejno...
Z EEPROM jest wiele zabawy. Najprościej nie zapisywać co 1-2m dystansu, jak miałeś w programie, czy co 1s, jak się zrobiło gdy przeniosłem Ci to do loop. Masz odmierzanie czasu tym nieszczęsnym delay 1000, to definiuje najmniejszą jednostkę czasu w tym programie. Naucz się millis() i usuniesz to ograniczenie. Ale tu też można coś wyrzeźbić, po tym delay...
Wystarczy, że ustawisz odpowiedni bit w rejestrze EECON i pamięć EEPROM jest widoczna jako zewnętrzna pamięć danych i obsługiwana rozkazem movx. Odczyt (adres w DPTR): movx A,(at)DPTR Zapis (adres w DPTR, dana w ACC): movx (at)DPTR,A Po zapisie (lub przed nim) trzeba sprawdzić flagę zajętości EEPROM i to wszystko.
przy każdorazowym wygraniu programu pamięć jest czyszczona jak i również wszystkie zapisane dane, łącznie z tymi na emulowanym eepromie. Zgadza się? Niezupełnie. Dane są zapisywane do innej partycji flash niż program. Oczywiście istnieje opcja, że będą kasowane przy każdorazowym wgraniu programu. Wszystko zależy od intencji programisty. Zapis i odczyt...
Mozesz prosto zaprogramowac sobie mechanizm typu key-value. Mianowicie poswiecasz 2 strony pamieci zewnetrznej (albo oglonie 2xN). Dla przypadku z 2 stronami robisz cos takiego: - pierwsze 4 bajty strony zawieraja licznik mowiacy ktora ze stron jest aktualnie w uzyciu np: STRONA 1 STRONA 2 --------------- --------------- ID=0x00000001 | ID=0x00000002...
"Dane jakie będę obierał po CANie nie zawsze będą miały prawidłowy format ramek CAN (często będą zakłócenia lub niepełne ramki)." Magistrala CAN została zoptymalizowana pod kontem arbitrażu, kontroli błędów, odporności na zakłócenia. Ramki są zabezpieczone sumą kontrolną CRC. Jak dobrze pamiętam prawdopodobieństwo odebrania błędnej ramki szacowane jest...
Podejrzewam, iż źle odczytuje z tablicy danych. Zrób test - zamiast zer wpisz kolejne liczby od 0 do 255 lub daj cztery zera w zapisie danych.
Z racji że STM32 ma liniową pamięć oraz możliwość zapisu do flasha danych z poziomu aplikacji postanowiłem wykorzystać go do symulacji eeprom. Zapis danych do flash działa OK. Natomiast mam problem z zainicjowaniem struktury pod konkretnym adresem. const D DFLASH __attribute__ ((section(".variables&q... = { {{40,20},26},...
Tylko właśnie nie wiadomo czy to nie jest taki "skrót myślowy". Nie sądzę. W dokumencie dotyczącym żywotności danych w pamięciach STM wyraźnie jest napisane: – the max cycling value defined in the datasheet is the max number of cycles for each byte; – the overall number of cycles is the number of cycles correctly decoded and executed by...
W jaki sposób trwale zapisać wyniki kalibracji ADC w ESP32, bez konieczności ponownej kalibracji po każdym restarcie ESP32? Można zapisać wyniki kalibracji ADC w tzw. pamięci niestandardowej (ang. non-volatile memory, NVM). W przypadku ESP32 pamięć niestandardowa to EEPROM (ang. Electrically Erasable Programmable Read-Only Memory), która jest bardzo...
Ponieważ to ESP to jest WiFi. Wysłać na zewnątrz do dowolnego serwera.
To tzw szybka budżetówka remontowa maszyn. Array APB i DWIN . Żadnych skomplikowanych danych, jedynie zapis rejestrów DW i markerów M . Pamięć rejestrów sterownika jest sporo za mała więc szukam rozwiązania. A co do ilości- mam do dyspozycji 12 rejestrów i 64 Markerów tylko a przydałoby sie przynajmniej do 100 rejestrów. Zakładam, że skończy sie na...
To oznacza brak możliwości zapisu konfiguracji. Zamieniłeś kość biosu i komputer nie jest w stanie zapisać w niej danych ( inny algorytm zapisu ). Poszukaj innego układu bardziej kompatybilnego z tym co był lub daj dokładnie taki sam. To jet błąd wynikający właśnie z zamiany kości.
Dlaczego w oknie profili jest dostępna (zaciemniona) opcja FLASH i EEPROM ? skoro program i tak niezapsiuje danych związanych z zapisem/odczytem FLASH i EEPROM.
Jest tylko jeden bufor dla całego EEPROM. W efekcie to gdzie jego zawartość zostanie zapisana zależy wyłącznie od rejestru adresowego NVM. Danych nie zapisujesz do rejestru danych NVM ale bezpośrednio w obszar pamięci do której jest mapowany EEPROM (niezależnie czy mapujesz, czy nie). Adresacja w tym obszarze jest normalna dla odczytu EEPROM, przy zapisie...
Autor tego programu stwierdził, że plik pamięci danych (z EEPROM) będzie miał rozszerzenie eep i tak zostało. W rzeczywistości to plik o takiej samej strukturze i formie zapisu danych, jak te z rozszerzeniem bin. Jak odczytywał pamięć programu procesora (ROM) to jego plik ma bodajże rozszerzenie rom. Pisano Panu - wybór procesora NIE 705 a 05, czyli...
1. Moze nie zapisales danych, a masz fusbity ustawione na kasowanie eepromu przy flashu? Wiec poprzednio zpisanych danych nie ma.
Biżesz sygnał z elektrolita zasilacza, jeszcze przes stabilizacją, robisz dzielnik oporowy z diodą zenara, który będzie za zadanie miał wykryć zaniżenie napięcia zasilania i wygenerowanie sygnału, który będzie wykonywał przerwanie w procku do zapisu danych w EEPROM-ie. Tak ja bym to widział.
Tylko dlaczego wybieranie ma powodować zapis? Albo dlaczego wybieranie ma być dokonywane przyciskiem zapisu?
Testowalem pare godzin a nie 4lata :D A tak wogole to racja, nie pomyslalem z tym trzymaniem przez 10lat. A zeby bylo ciekawiej to w tym samym czasie zetknąłem się z FRAM i wydaje się że problem jest rozwiązany :-) nieograniczona ilość cykli zapisu i 45 lat trzymania danych.
[syntax=c] ISR(ADC_vect) { register uint8_t Voltage = ADCH; if(Voltage>TRESHOLD) { //Zapis krytycznych danych do pamięci EEPROM } _delay_ms(100); }[/syntax] Czy delay nie powinien być wewnątrz ifa?
Witam Szukam i szukam i mam ten sam bład z eepromem oczywiście szukam jak kolega powiedział schematu kabelka ale nie znalazłem. (Błąd zapisu danych do EEPROM, przekroczyłeś ilość dostępnej pamięci) Podajcie linka czy też oświeccie mnie jak mozna RS232 połaczyć aby nie było błedów. Mam prosty kabelek zrobiony dzieki z góry
Witam Jestem bardzo poczatkujacy w programowaniu mikrokontrolerow i chcialem sie dowiedziec jaka jest roznica w zapisie do EEPROmu i SRAMu? Czy mozna stosowac zamiennie jedno z drogim? Czy ktos moglby mi podrzucic procedury do zapisu do SRAM i do EEPROM (chodzi o wewnetrzny sram i dane z ADC). Urzywam WinAVR. Dzieki za info DZIK
Czy tym układem dam radę przesyłać dane przez I2C ? I do czego służy ten dodatkowy eeprom ? :) Nie da rady przesyłać danych, eeprom miał być użwany do zapisu pozycji ale nie dało się tego w przystepny sposób zrobić i porzuciłem tą opcję
Witam, Chcę zrobić podtrzymanie zasilania przy wyłączeniu na czas zapisu danych do pamięci trwałej EEPROM. Muszę chociaż wstępnie oszacować jaki kondensator będzie potrzebny na wejściu zasilania. Nie mogę w dokumentacji znaleźć jaki jest prąd pobierany podczas zapisu danych i ile trwa ten zapis. Procesor z wyłączonymi peryferiami (wyłączę wszystko po...
W wyszukiwarce wpisz "stm32 eeprom emulation".
Do czego można ją wykorzystać? Wydawało mi się że pamięć EEPROM nadaje się jedynie do wykorzystania jako pamięć porgramu. Do przechowywania danych , których nie chcemy stracić po wyłączeniu zasilania.Możesz potraktować ją jak non-volatile RAM , z ograniczoną ilością zapisów ;) Piotrek
A po co? Masz dwie struktury, do nich możesz uzyskać wskaźnik, prawda? Długość struktury uzyskujesz przez sizeof, robisz typecast wskaźnika na char*, co da ci dostęp do poszczególnych bajtów (albo robisz unie) i sobie kopiujesz bajt po bajcie. Jak do tej pory kopiowałeś strukturę do RAM? Przecież dokładnie tak samo, tyle, że używałeś odczytu blokowego...
Przerwanie "Receive Complete" jest generowane po odebraniu każdego pojedynczego bajtu danych, czyli nawet dla dosyć niskiego transferu 9600bps co ok. 1ms. Zapis do EEPROM trwa ok. 8,5ms, więc policz sobie, ile bajtów "zgubi" USART, zanim skończy się Twoja obsługa przerwania. Podstawowy błąd masz w założeniach. Dane z USART należy odbierać do bufora...
Sprawdź czy od strony spodniej płytki pod epromem jest dolutowany 3 pinowy element , jest to reset. Probelem tej wagi jest zapis danych w pamięci EEPROM i błędny /uszkodzony/ sygnał resetu. Do naprawy.
Dzięki juntom ale, to nic nie dało zapisuje mi od adresu 200 kolejne komórki: |00|FF|00|FF|00|FF|00|FF|00|FF|00|FF|00|... a nie od 1 do 255. Czy ktoś oswajał EEprom w at89S8252. POMOCY! Czy pozostałe bity w WMCON oprócz EEMWE EEMEN mają wpływ na zapis do EEPROM?
Witam, czy fuse EESAVE w ATTiny26 zapobiega skasowaniu zawartosci EEPROM-a w trakcie kolejnego programowania układu czy również blokuje dostęp programu do zapisu/zmiany nowych danych? Chcę umieścić w EEPROM-ie stałą tablicę wartości (tylko do odczytu) i dodatkowo ją zabezpieczyć przed skasowaniem w wyniku np. mylnego zadziałania programu, czy ustawienie...
Czy jest jakiś sposób użycia współcześnie produkowanych EEPROM na magistrali szeregowej? A nie możesz użyć EEPROM z równoległą magistralą danych? Gdzieś tam jeszcze takowe znajdziesz. Zaprogramować możesz łatwo przy pomocy jakiegoś MCU, a i Z80 da radę. Z drugiej strony polecałbym ci raczej zbudować symulator EEPROM na SRAM - szybciej się zmienia zawartość,...
Posiadam schemat płytki AVR, autr twierdzi, że nie da się wykorzystać pamięci EEPROM (zapis i odczyt danych z mikrokontrolera ATMEGA16) z powodu złego podłączenia. Nie posiadam żadnego sprawdzonego programu, który miałby testować lub zademonstrować działanie EEPROM. Po usłyszeniu, że jest błąd, stwierdziłem, że nie ma po co poświęcać czasu na analizę...
Witam Chciałem poszerzyć pole swojego działania w ATMEGA8 o zapis i odczyt danych z pamięci wewnętrznej uC EEPROM. Otóż znalazłem na 20 i 21 str. manuala ATMEGA8 funkcje w C zapisu i odczytu danych z EEPROM uC. Oto one: Zapis do EEPROM: void EEPROM_write(unsigned int uiAddress, unsigned char ucData) { /* Wait for completion of previous...
Czysto teoretycznie - a może wyposażyć układ w jakiś rozsądnie duży kondensator (np. 2200uF) , a zasilanie poprowadzić do niego przez diodę i kontrolować obecność napięcia zasilania przed diodą - w przypadku zaniku generujemy przerwanie a w jego obsłudze zapis do EEPROM - trochę skomplikowane, ale na zapisanie danych powinno zupełnie wystarczyć 0,1s...
temat jest o zupie a wy o d... Pomijając wywody natury ogólnej masz kolego do wyboru wewnętrzną pamięć RAM od pcf-a i to nie małą bo 240 bajtów albo stałą od eeproma. Jedno i drugie jest dobre bo pcf ma podtrzymywanie bateryjne (chyba go uzywasz) ale kiedy bateria padnie to zapisy znikną więc pewniejsze jest umieszczenie tych informacji w pamięci eeprom....
Odczyt ID klucza: Dim Key_id(8) As Byte 1wreset 1wwrite &H33 Key_id(1) = 1wread(8) Mozesz jeszcze sprawdzic chceck-sume: key_crc = Crc8(key_id(1) , 8) Wyswietlanie ID odczytanego klucza na LCD Sub Display_key_id() 'Lcd "ID: " For I = 8 To 1 Step -1 Lcd Hex(key_id(i)) Next...
W końcu po kilkunastu tygodniach udało mi się przesłać po IIC bajt danych. Złapałem się na naprawdę głupim błędzie. Program mi już dawno działał. Zapisywał do pamięci, a przy odczycie wyskakiwał bit ack = 1, bo nie dawałem czasu EEPROMOWI na zapis danych tylko od razu wymagałem od niego kolejnej operacji. Zapomniałem całkiem o Time Write Cycle (około...
2400baud to jakieś 240znaków/sek. W pamięć 24C potrzebuje na zapisanie bajta lub całej strony jakieś 5ms, aby przesłać 128 bajtów razem z zaadresowaniem potrzeba jakieś 1200 impulsów zegarowych, co przy zegarze 100kHz na I2C zajmie 12ms, czyli zapis strony zajmuje w sumie 17ms, co daje przepustowość 58stron/s lub 7500bajtów/sekundę, więc pamięć posiada...
Ciekawy tylko jestem, gdzie to wszystko jest zapamiętywane, bo chyba musi też być w pamięci EEPROM Gdybyś zerował wszystko przed "wlasciwymi danymi" to pierwszy niezerowy bajt byłby początkiem danych. Można by to raz przy starcie odczytać i po klopocie. Ew. zmieniać raz na dobę.
Spróbuję skorzystać z porad. Mam nadzieję, że to będzie skuteczne działanie. Urządzenie działa. Przyczyną okazał się nieprawidłowy zapis w EEPROM-ie, jakieś śmieci przez które rozpoznanie kasety było niemożliwe. Ponoć zdarzało się, że podczas kserowania urządzenie samoczynnie się wyłączało, szczegółów nie znam. Jeżeli wyłączenie następowało w momencie...
Witaj JacekCz. Dzięki za włączenie się do dyskusji.Na początek powiem, że nie sądzę, a żeby wątek się rozmył. Będę go kontynuował do momentu całkowitego zakończenia.Wiem, że jest to malutki projekcik i osoba znająca dość dobrze C napisałaby to w kilkanaście minut i zapomniała. Ja się uczę i jestem na samym początku.Potrzebuję czasu na napisanie czegokolwiek.Napisałem...
W pewnym urządzeniu muszę zapisywać do 512 zdarzeń do pamięci EEPROM. Z tym urządzeniem będzie się komunikować drugie, które kolejno będzie te dane odczytywać. Potrzebuję więc dodatkowo zapisywać dwa wskaźniki zapisu i odczytu danych. EEPROM ma 1mln cykli zapisu, więc przy standardowym zapisie (dane i wskaźniki zawsze pod tym samym adresem) zapiszę...
Zanim pomyślimy nad kodem jeszcze deklaracje zmiennych oraz pytanie o przerwania: Czy gdzieś w przerwaniach masz cokolwiek związanego z EEPROM i RTC?
Ściśle mówiąc 24C01 komunikuje się przez I2C (TWI), nie przez SPI - jakkolwiek jedno i drugie to interfejsy szeregowe :D Napisanie podstawowych funkcji obsługi I2C oraz funkcji dostępu do zewnętrznego EEPROM to raczej większy nakład pracy niż oprogramowanie IAP w DS89C450 - gdybyś obie rzeczy miał robić od zera:!: Jednakże dostęp do zewnętrznej pamięci...
To uszkodzenie z rodzaju albo się wie i robi szybko albo się szuka - może nawet długo. Ja niestety takiego zachowania tego radia nie spotkałem. Jeśli radio nie pamiętałoby też stacji sprawa prosta - RAM procesora - np. brak napięcia podtrzymującego. W przypadku tylko problemów z kodem jest więcej możliwości do analizy. Pamięć 2444 jest specyficzna....
Cześć. Jakiś czas temu występował problem z zerowaniem VID&PID w klonach FT232. Widzę, że nasi przyjaciele z Azji nie zasypują gruszek w popiele i zablokowali możliwość edycji eeprom. Czy komuś udało się to ruszyć? Potrzebuję zmienić kilka opcji ale zarówno FT Prog jak MProg nie zapisują danych pomimo zgłaszania poprawności zapisu. Pozdrawiam, Krzysiek.
witam! chce zrobić zapis do pamićcie eeprom 24c512 "podobno są takie" Chodzi konkretnie o to aby zapisywać ciąg znaków takich jak: R260120071330100 na końcu tego stringu będzie znak powortu karetki enter Z260120071345100 na koncu tego stringu będzie znak powortu karetki enter ale ten enter nie jest tak ważny jak to żeby mi te dane program napisamy w...
Jest to wyjście, możesz również zrobić pewne zabezpieczenie, które będzie zawsze w odpowiednim momencie odczeka czas zapisu strony. Tzn gdy twoja partia danych wejdzie na 2 strony odpowiednio zostanie podzielona i wysłana do pamięci. Inną drogą jest zadbanie o odpowiednia alokacje danych w pamięci. Tak by żadna partia danych nie była dzielona pomiędzy...
Po zapianiu jednej strony pamięci EEPROM z I2C musisz czekać, aż dane się zapiszą. Jeżeli chcesz robić to wydajnie to zastosuj w projekcie EEPROM z SPI. No tak, ale zapis do cache-u pamięci trwa chwilkę (~0,7ms przy 400kHz), a z niej do EEPROM 5ms. Uwzględniłem to.
zapis danych pamięci eeprom bascom zapis danych eeprom zapis danych pomiarowych
unreal tournament toshiba kanały cyfrowe bezpiecznik kuchni elektrycznej
Jak ustawić zegar w kuchence Beko CSM52323DW? Jak włączyć odnajdywanie sieci w Windows, macOS, Android i iOS