Wiec od konca. Adresy pamieci FLASH, EEPROM i SRAM pokrywaja sie. W zwiazku z tmy istnieja inne instrukcje assemblera umozliwiajace dostep do FLASH i SRAM. EEPROM nie jest mapowany w przestrzen adresowa procesora, do niego dostep odbywa sie za pomoca specjalnych rejestrow (z wyjatkiem XMega, gdzie EEPROM jest w przestrszeni adresowej). Dlatego nie istnieje...
Przepraszam, ze nie odpowiadam zbyt szybko, ale raczej jestem dosc zajety. Mam nadzieje, ze ten projekt nie jest "na wczoraj"... Od osoby zlecajacej dostalem bardzo prowizoryczny schemat... Moze nie wyrazilem sie scisle... Rysujac schemat blokowy mozesz w kazdej kolejnej wersji "wchodzic" coraz bardziej w strukture (coraz wiecej szczegolow, otrzymujac...
Jestem początkujący więc proszę o wyrozumiałość. Od kilku dni wertuję Internet bo chciałbym się dowiedzieć w jaki sposób mogę zaadresować pamięć EEPROM powyżej adresu 0FFH, np jak adresować komórkę o adresie np. 7CC poprzez I2C? W każdym datasheet'ie jest napisane że adres komórki musi być 8 bitowy, nie do końca rozumiem o co chodzi ze stronicowaniem,...
Doświadczenie uczy mnie, że dyskusja o wyższości 8bit nad 32bit (czy odwrotnie) będzie trwała tak długo, jak długo obydwa rodzaje procesorów będą dostępne. mam wiaderko AVR-ów i podobne wiaderko ARM-ów, głównie STM32 choć też LPC. Znajdą się też malinki czy wcześniejsze dwurdzeniowe A20. Jak pewnie większość (przynajmniej tych starszych) zaczynałem...
Jak z etykiety eeprom wydobyć liczbową wartość adresu i przypisać ją do zmiennej? Można zadeklarować prawidłowo zmienną eeram W ten sposób Dim Adres_er(size_t_mac) As Eram Byte At Adres_p_mac Poprzez komende AT znam adres, po jaki będzie się odwoływać zmienna eeram w pamięci. Następnie Deklaruje, jakie wartości powinny być zapisane w eeram...
Witam, potrzebuję w pewnym układzie użyć zaprogramowanej kości eeprom ( koniecznie równoległej ) ok. 65 tys możliwych adresów. Szyna adresowa 14 bitowa. szyna danych 8 bitowa. Mam jednak na stanie programator tylko do procesorów AVR. Z pamięcią szeregową bym sobie jakoś jeszcze poradził ale równoległa - nie ma szans. Chciałbym więc użyć pamięci eeprom...
Od czego zależy adres EEPROM i jak go ustawić
Przykłady bardziej zaawansowanego użycia EEPROM masz w przykładach do moich książek o XMEGA, tam też jest to dokładnie opisane. W skrócie - możesz w XMEGA korzystać z EEPROM dokładnie tak jak w ATMega (czyli funkcje z eeprom.h), lub możesz wykorzystać dodatkowe możliwości jakie daje kontroler w XMEGA. Czyli możliwość mapowania EEPROM w obszar SRAM,...
Witam! Mam problem z zaprogramowaniem kości 24c32. Jest ona podłączona do atmegi8 do lini sda i scl. Pozostałe linie eepromu są: a0, a1, a2, wp, vss do masy i vcc do plusa. Atmega odczytuje tylko 255 więc komunikacja chyba jest ale oczywiście pamięć pusta, a gdy próbuje coś wpisać to to samo.. Przykładowy program: 'początek i2cstart i2cwbyte 160 'adres...
Witam Czy EEPROM o pojemności 256kB ma adresy od 0 do 262143 ?? Jeśli się mylę poprawcie mnie :).
Witajcie. Avrgcc i plik nagłówkowy eeprom.h. Nie znalazłem prostego sposobu. Czy da się umieścić zmienne w pamięci EEPROM pod konkretnym adresem nie zostawiając pola dla linkera? Potrzebuję tablicę uint16_t Tablica[16] EEMEM umieścić (a potem odczytywać) od pierwszej komórki pamięci EEPROM (czy jakiejkolwiek innej). Da się to zrobić prosto bez pisania...
Witam. Chcę aby w epromie powtarzac kilka razy dany adres np. 5 razy adresy po kolei od 0 do 30, potem 5 razy od 31 do 50 itd... Trzeba użyc jakiegoś procesora?
Podpowiedzcie mi prosze, jak zadeklarowac zmienna w pamięci eeprom po adresem 0x01?? bo: #define EEMEM __attribute__((section(".eeprom"))) EEMEM unsigned char ZMIENNA; lokuje ja w pierwszej wolnej komorce czyli 0x00. Moge zadeklarowac wczesniej inna zmienna PUSTĄ tak aby kompilator ulokowal ja pod 0x00 ale nie jest to elegancke. W '51 robilo sie to...
Witam. Chciałem pobawić sie w symulacje EEpromow np. 24cxx dostępnych w programie Proteus 7. Zgodnie z notami katalogowymi układów, posiadają adres w postaci: 1 A2 A1 A0 B2 B1 B0 R/W, gdzie A2,A1,A0 sa ta linie definiujące adres poprze odpowiednie podłączenie do Vdd i Vss. W programie pamięci te wyprowadzone maja tylko linie SDA SCL. Moje pytanie do...
Problem w jak w temacie, Ni diabłą nie moge znalexc tego w nocie katalogowej, tak samo zreszta jak konfoiguracji wejśc adrespwych. Jedyne co mi prsyszło do głowy to napisanei prostergo programiku sprawdzającego komunikacje po I2C i wtświetlajacego pod jakim adresem jest pamięc...ale nie mam aktułalnei zadnego wyswitlacza dlatego prrosze o pomoc. Pozdrawiam
Witam Wpisuje sobie do eeprom wewnętrznego dane: $eeprom Data 140 , 134 , 136 , 198 , 134 , 255 , 142 , 163 , 175 , 255 , 136 , 199 Nie do końca rozumiem gdzie to polecenie pakuje pierwszą daną? Czy 140 będzie w adresie 0 czy 1? Gdzie będzie zapisana długość(ilość) danych? Pozdrawiam Pawli
O ile nie jest uszkodzona linia adresowa to raczej tak było. Często się zdarza że nie cała pojemność pamięci jest użyta. Uszkodzenia "ze starości" to raczej zmiany pojedynczych bitów. Siedzi tam dość egzotyczny procesor Hitachi HD64B180R0P. Bardzo ciężko ocenić poprawność zawartości pamięci EEPROM nie wiedząc co tam miało być. Może tam siedzieć program...
Bo w procesorach ARM mamy adresowanie ciągłe. Nie tak jak w AVR, że EEPROM zaczyna się od adresu 0, FLASH od adresu 0, rejestry od adresu 0 itd. Tu jest po prostu ciągła szyna adresowa 32-bit i mamy na niej umieszczone zakresy adresów odnoszące się do danych elementów. Np. (rzucam zmyślone dane) FLASH będzie miał adresy 0x00000000-0x00010000, potem...
Ten przykład pokazuje jak prosto zrealizować ciągłość kilku małych kości pamięci w jedną. Podsumuje ci to. Podałeś 3 przykłady każdy stosuje się w innym przypadku. 1 dla małych pamięci poniżej 256kb 2 dla dużych pamięci od 256kb 3 dla kilku układów małych pamięci, gdzie jako programista nie musisz martwic się wyborem układu. przestrzeń adresowa została...
Xmega obsłuży do 16MB RAM ? To byloby świetnie - jeszcze ich nie stosowalem. Czy ktoś ma schemat jak to podłączyć do procka ? EEprom i Flash nie moze byc, to ma być szybka normalna ram widziana najlepiej jako przestrzeń adresowa lub szybka szeregowa RAM.
Tak, to dobry tok myślenia. MSB adresu 0x100 będzie na pozycji P0.
Generalnie pozamieniane PIN-y to mały problem zrobienie adaptera aby pasowal pod jakis eprom 27xx nawet w profesjonalnej firmie zajmującej się PCB to jakieś grosze (mowa o firmach zajmujących się prototypami) ot np. Elmax/Satland itp. Pamięć może być nawet większa nie podpinasz wtedy wszystkich adresów, albo użyjesz sobie dodatkowe piny adresowa do...
Dziękuje za odpowiedz Widzę po formie zapisu liczby że kolega programuje w języku C . Przestrzeń adresowa tego kładu to od 0 do 4095 (w systemie dziesiętnym) , jeżeli pierwszy adres będzie 0 to mogę kolejno wysłać 4095 bajtów gdzie adres będzie inkrementowany .Taimouty stosuje chyba się w C bo w Bascom sę biblioteki do obsługi . Tak to zrozumiałem ....
he he na logike jasne że nie :) Tu chodzi jedynie o wadę układu... to są tanie podróbki sprzętu SONY. Taki pen drive składa się jedynie z kontrolera (klon Lattice) i pamięci flash + pare drobiazgów pasywnych. Taki kontroler jest układem programowalnym, producent wpisując odpowiedni soft ustala jak kontroler będzie się zachowywał ile pamięci obsługiwał...
Ad.7 Chyba o to Ci chodziło http://sciaga.nauka.pl/index.php/id=inde... Jakby coś link nie działał to tutaj podaje jego zawartość Rodzaje pamięci. 1. Pamięć ROM W pamięciach nieulotnych typu ROM umieszczone są informacje stałe. ROM jest najbardziej niezawodnym nośnikiem informacji o dużej gęstości zapisu. Zapis informacji...
Robi się "lekka" przesada...
27C210 na znanym portalu za 15zł.
Funkcja odczytuje bajt z EEPROM, porównuje z bajtem do zapisania i jeśli są różne to zapisuje, jeśli takie same, to przechodzi dalej nie robiąc nic. Ponieważ w XMEGA dostęp do EEPROM jest znacznie bardziej zaawansowany (m.in. możliwość jednoczesnego zapisu całej strony EEPROM i odczytu EEPROM przez region zmapowany w przestrzeń adresową MCU, warto się...
To wiem :D Ale ja bardziej pytam czy zanik zasilania niczego nie zepsuje poza niekompletnym zapisem. Nie zawsze niezapisane dane są cenne, ważne żeby to co już zapisane poskładać sensownie i nie uszkodzić elektroniki. Procesor nigdy nie powinien pracować przy nieodpowiednim (niewystarczającym) zasilaniu. Dlatego warto włączyć BOD. Przy niedostatecznym...
Problem z komórką zero zapewne wynika z tego, że szczególnie starsze ATmegi, przy niepewnym zasilaniu lubią nadpisywać tą komórkę - rejestr adresowy EEPROM zawiera zero, stąd ten problem. Ale rozwiązaniem jest raczej zabezpieczenie procka, przed działaniem przy napięciu spoza zakresu poprawnej pracy, czyli wykorzystanie układu BOD. Wtedy problem znika....
Nie sądzę abyś znalazł po polsku - niestety świat elektroniki to przede wszystkim angielski. Ale możesz poczytać to: http://radzio.dxp.pl/eeprom/24c32-24c512... a dane znaleźć w datasheet: http://www.atmel.com/dyn/resources/prod_... + tłumacz Google: Datasheet przetłumaczony
Czy to znaczy, że zmienne statyczne czyli zadeklarowane ze słowem static i zmienne globalne znajdują się w pamięci FLASH i są później kopiowane do RAM? Dotyczy to tylko zmiennych globalnych (statycznych w scope funkcji), które są zainicjalizowane. Zmienne globalne niezanicjalizowane są umieszczane w sekcji .bss i inicjalizowane wartością 0. Gdybym...
Inny sposó wyznaczenia tego adresu A = x+100*(y+100*z) 100x100x100 = milion komórek (bajtów, słów) Najprościej użyć jakiegoś sporego kawałka pamięci zewnętrznej (w stosunku do procesora) szeregowej (np DataFlash AT45DB161) lub zwykłej równoległej, nieulotnej (zwykły eprom/eeprom, SRAM z podtrzymaniem, pamięć FRAM). Gdybyś chciał pamiętać gęściej i dokładniej,...
Próbując dostać się do drugiej połówki pamięci zrobiłem taka poprawkę ustawiającą "Block select bits" czyli zamieniłem #define EEPROM_BUS_ADDRESS 0xA0 na #define EEPROM_BUS_ADDRESS 0xA8 ale to nie działa.:cry: To jest poprawny sposób adresowania całej pamięci. Natomiast jeśli EEPROM_BUS_ADDRESS jest stałą programu, a nie zmienną, to adresowany jest...
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.
Może nie traci - odczytaj EEPROM i porównaj. Prawdopodobnie przekłamanie dotyczy jednego bajtu EEPROM, tego na który aktualnie wskazuje rejestr adresowy EEPROM. Stąd też, ustaw wartość tego rejestru na nieużywaną komórkę pamięci EEPROM zawsze kiedy się do tej pamięci nie odwołujesz, możesz np. na 0 i pominąć tą komórkę pamięci przy zapisie (zapisywać...
Jesli chodzi o pamięć to trzeba zachować zależności czasowe i sygnały na odpowiednich wejściach. Niestety nie ma dokumentacji po polsku. Można ewentualnie skorzystać z translatora na elektrodzie, http://www.elektroda.pl/rtvforum/transla... ale jeśli chodzi o teksty techniczne to wielu rzeczy trzeba się domyślać. Jeśli chodzi o 191 to jest to układ...
EEPROM i PCF łączysz równolegle na szynach SDA i SCL i nogi adresowe A0, A1, A2 łączysz tak żeby utworzyć dla każdego urządzenia osobny adres (format adresu urządzenia jest objaśniony w PDF"ie do niego). Pin Dallasa oznaczony jako DQ łączysz pod dowolny port mikrokontrolera i podciągasz do zasilania przez jakiś opornik (schemat jest w PDF'ie do tego...
Tak mają organizację peryferiów podobną do XMEGA oraz liniową przestrzeń adresową (FLASH,RAM ,EEPROM,IO są w tej samej przestrzeni adresowej). Właśnie kończę dwa niewielkie projekty oparte o ATTINY204 i ATTINY804. I na dokładkę piszę bootloader z szyfrowaniem AES128, staram się go upchnąć poniżej 1kB.
Pewnie eeprom pomija najstarsze bity adresowe i wykorzystuje tylko tyle bitów ile jest potrzebnych do zaadresowania 8kB. Chcąc odczytać komórkę o adresie (8kB+1B) odczytywałeś pierwszy bajt pamięci.
To co znalazłem w pliku *.lss nie jest dla mnie w tej chwili zrozumiałe: To sbic oraz rjmp zajmuje się testowaniem flagi zajętości EEPROM. W opisie do eeprom.h autorzy zaznaczyli, że funkcje najpierw sprawdzają zajętość podsystemu odpowiedzialnego za EEPROM. Szczegóły implementacji będą w źródłach AVR-libc, one się trochę różnią pomiędzy procesorami,...
Wszystkie nóżki adresowe są podłączone do masy?
Jeszcze z ciekawostek, to w niektórych wersjach AVR (np atmega128)przy niestabilnym zasilaniu (miękkie z tendencją do sporych spadków) i pracy z pamięcią EEPROM, możliwe jest, że właśnie w tej pamięci nadpisane przypadkowymi danymi zostaną pierwsze 2, 3 bajty. Zazwyczaj pomaga ustawienie bitu brownout (choć nie zawsze). Ja z praktycznego punktu widzenia...
W plikach nagłówkowych są zdefiniowane etykiety określające adresi wielkość EEPROM. Także przejrzyj i użyj odpowiedniej. Samo liczenie CRC dla EEPROM niestety polega na odczycie i wrzuceniu do modułu CRC, tego procesu nie zautomatyzujesz. Chyba, że dla 32 bajtowych bloków - możesz mapować EEPROM do przestrzeni adresowej MCU i wrzucać do modułu CRC przez...
Ja na twoim miejscu zacząłbym od nauki podstaw C, a potem ogarnięcia tego języka na AVR. To po pierwsze, a po kolejne: - do zliczania nie używaj float, wbrew pozorom to nie jest obojętne, czy będzie float, czy int. Poczytaj o tym jak float jest reprezentowany w pamięci, bo możesz się zdziwić, kiedy np. x+1 będzie ciągle równe x. - EEMEM nic nie zapisuje...
Zgaduję, że zapisujesz pierwszą komórkę w pamięci EEPROM i tam są błędy? Jeżeli tak, to nic nowego. Nie używa się pierwszej komórki, ponieważ jakikolwiek błąd zasilania, zapisu, kontrolera (timing) powoduje, że automatycznie jest zerowany rejestr adresowy i zapis jest prowadzony do komórki z adresu 0x00. Zacznij zapisy od komórki 0x01 i powinno być...
EEPROM pracuje przy takim zakresie napięć jak MCU. Skoro przy BOD na 3V i zasilaniu procka 3,3V masz resety to znaczy, że coś jest nie tak z zasilaniem. Masz wszystkie wymagane kondensatory filtrujące przy MCU? Odczyt z EEPROM jest szybki, tak jak z innych rodzajów pamięci, mapowanie znacznie przyśpiesza zapis (zapisujesz od razu blok 32 bajty, a nie...
(at)excray Podałem konkretnie. Mam zrealizować układ 8051 z zewnętrzną pamięcią danych 64kB (1 kość) oraz zewnętrzną pamięcią programu 32kB (1 kość).
Witam was w kolejnym cyklu, który tym razem będzie dedykowany osobom, które dopiero rozpoczęły lub chcą rozpocząć przygodę z mikrokontrolerami. Stąd też przedstawiam zupełnie podstawowe informacje, które mam nadzieję pomogą początkującym. W tym odcinku w 30 minut chciałbym odpowiedzieć na pytanie „Jak zacząć przygodę z mikrokontrolerami najprościej...
Dziwna sytuacja następuje. Podpowiedzcie co myślicie. Po około 7 000 000 zapisów jedej konkretnie wybranej komórki sytuacja jest taka: daje si e zapisać do tej komurki ale inne bliskie adresowo komurki nie dają się zapisac lub zapisują sie niepoprawnie. Czego tak się dzieje?
Zajrzyj np. tu: http://katalogi.iele.polsl.gliwice.pl/d....
Jak dokładasz drugi czujnik pod I2C to musisz inaczej go zaadresować, czyli wejścia adresowe musisz inaczej podłączyć. Wtedy każdy z nich będzie miał swój inny adres. Odczyt każdego z nich musi wiązać się najpierw z zaadresowaniem właściwego czujnika.Najprawdopodobniej w układzie wyżej masz 2 czujniki o tym samym adresie. Dane zapisujesz sobie jak chcesz,...
Czy dobrze rozumiem, że dostęp do pamięci flash oraz EEPROM w xmegach zawsze wykorzystuje kontroler NVM? Zawsze wykorzystuje hardware NVM, ale niekoniecznie modyfikuje stan tego układu. Odczyt FLASH odbywa się bez konieczności modyfikacji NVM (o ile mówimy o odczycie bajtów/słów), więc dostęp do EEPROM nie powinien tu robić problemów. Problem zaczyna...
Zależy jakie EEPROM-y ? Zasadniczo ustawiasz adres na wejściach adresowych, następnie podajesz na szyne adresową wartość, a potem ustawiasz impuls napięcia na wejściu programującym. Długość tego impulsu oraz wartość napięcia jest różna dla róznych EEPROM-ów. Jaka to dowiesz się z "Data Sheet"-ów danego EEPROM-a. Jacek "Plumpi"
Nie ma żadnych. W starych AVRach był problem z komórką o dresie 0 - przy niestabilnym zasilaniu lubiła się nadpisywać - domyślnie rejestr adresowy EEPROM zawiera 0 i jeśli coś się poknoci to ta komórka cierpi. W poprawnie zaprojektowanych konstrukcjach, po włączeniu BOD problemu nie powinno być. A nawet jeśli jest to nic nie stoi na przeszkodzie, aby...
Takie XMEGA tylko z zasilaniem do 5V i zegarem do 24 MHz. Z wad: nie widzę USB (pewnie z powodu zasilania 5V) i nie widzę DMA. Za to dużo poprawionych timerów, rozbudowany event system, custom logic i sensory pojemnościowe. Jeśli utrzymają podane ceny, to będzie to bardzo fajna alternatywa dla klasycznych ATMega i ATTiny. Z innych zalet, to podobnie...
Nie męcz się i podmień Freią eeprom. Potem unlock itp.
Rejestrem EEWE? Nie myl takich rzeczy bo łatwo kogoś (albo nawet samego siebie) wprowadzasz w błąd. EEWE to bit z ATtiny26. Przypuszczam że chodzi ci o rejestry EEARH i EEARL. Jest to adres komórki którą chcesz zapisać lub odczytać w pamięci EEPROM. W przypadku ATtiny861, który ma 512 bajtów EEPROM starszy rejestr adresowy (czyli EEARH) będzie przyjmował...
Chyba najprościej przerobić bootloader. Po pierwsze dodając funkcjonalność zapisu do tego EEPROM. Po drugie, jako że prosty plik Hex ma przestrzeń adresową 64kB, natomiast ta Atmega nie ma tyle pamięci, to przypisać część niewykorzystanej przestrzeni "wirtualnie" do zewnętrznego EEPROM, aby bootloader "wiedział", że część danych ma tam wylądować. A...
Witam Generalnie na magistrali I²C może pracować więcej tych samych układów np. pamięci EEPROM ale mają one zewnętrzne wejścia adresowe. Ten układ takowych nie posiada i stąd problem. -- pozdrawiam
GCC jakimiś protezami obsługuje przestrzenie adresowe, nie zawsze sprawnie mu to wychodzi To chyba nie dotyczy też tiny 1 series i atmega 0 series gdzie całość (eeprom, sram, flash) jest w jednolitym obszarze adresowym. brak priorytetów przerwań (nie dotyczy xmega) j.w. brak sprzętowego dzielenia Cortex M0 też ;)
grupa adresowa excel adresowa atmega128 adresowa
próbnik wtryskiwacza paliwa klima czujnik temperatury vectra odlew gipsowy
tester napięcia opentherm termet
Kolory przewodów otwierania klapy Audi A8 D4 Serwis i naprawa wideodomofonu Kantich 855