Błąd tkwi wszędzie :) Przede wszystkim - bufor zapisu do EEPROM to w zależności od typu XMEGA max 32 bajty. A więc nie jest tak, że masz zmapowane wszystkie konórki EEPROM do bufora. W danej chwili zmapowana jest jedna strona (max 32 bajty). Bufor zawiera informację, które bajty zostały zmodyfikowane i tylko te są zapisywane do EEPROM po wydaniu polecenia...
Chętnie bym ci pomógł, ale używasz stałych, zamiast symboli i trzebaby to teraz zdekodować czytając notę procesora, Ogólnie zapis do EEPRON w XMEGA odbywa się blokami - czyli po zmapowaniu EEPROM do SRAM, modyfikujesz odpowiednie komórki (co ważne, muszą one być w obrębie jednej storny EEPROM), a nastęnie dokonujesz zapisu strony. Symulator działa ok,...
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,...
Odczyt FLASH odbywa się bez konieczności modyfikacji NVM (o ile mówimy o odczycie bajtów/słów), If the application are using program space access in interrupts * (__flash pointers in IAR EW or pgm_read_byte in GCC) interrupts A czy to, co ja robię to nie jest ten __flash pointer? Co prawda korzystam z GCC, ale tutaj na forum doradzono mi, że nie trzeba...
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...
Rozumiem, w takim razie, że zawsze warto używać _update, zamiast _write? To zależy co chcesz zrobić. Jak zainicjować EEPROM domyślnymi wartościami to obowiązkowo write. Jak zapisać blok danych uprzednio odczytanych z eeprom to zdecydowanie update. Zawsze można dać _update. Jedyna różnica pomiędzy _write i _update polega na tym, że _update sprawdza,...
Witam Jak w temacie - wykonuję zapis danych do pamięci EEPROM, po ich weryfikacji wszystko jest ok. Mogę je odczytywać i wszystko działa. Problem się pojawia, gdy chce je odczytać po ponownym uruchomieniu procka - dane się "ulatniają"!? O co chodzi? Dodam, iż używam AVR Studio 4 i korzystam z bibliotek Atmel'a. Zapisuje dane w pojedynczych bajtach:...
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ę...
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...
(at)paluszasty Właśnie sprawdzałem jak wygląda kwestia dostępu do FLASH i jest tak jak pisałem. Definiujesz stałą z const i automatycznie ląduje ona we FLASH, a z programu masz do niej dostęp bez żadnych specjalnych udziwnień. Czyli definicja: const char tmpchar1 Chyba że z jakiegoś powodu chcemy umieścić zmienne zadeklarowane jako const w RAMie, jak...
(at)tme zgodzę się z Tobą i nie zgodzę. W nie najtańszym TME, pamięć 512bajtów[url=https://www.tme.eu/pl/deta... kosztuje 6,24 zł netto w detalu. Godzina pracy programisty, skromie licząc, 30zł. Czy w ok 20 minut da sie napisać obsługę EEPROM tak aby wydłużyć jej żywotność? Czy 20 minut wystarczy...
Jakoś ominąłem ten wątek i nie zauważyłem, że pojawiły się kolejne odpowiedzi. Jeśli odpalimy USB, to potrzebny jest zegar 48 MHz (lub 12 MHz). Powstaje on z podkręconego zegara 32 MHz (wpisanie innych wartości kalibracyjnych dla generatora umożliwia jego przestrojenie z 32 na 48 MHz). Zegar jest stabilizowany ramkami USB. Ponieważ max dla rdzenia to...
AVR1605: XMEGA Boot Loader Quick Start Guide Atmel AT03160: Migrating Bootloader from ATxmega128A1 to other Atmel XMEGA Devices Może ten http://alexforencich.com/wiki/en/xboot/s... ?
BOD się jako tako nadaje, bo zazwyczaj się go wykorzystuje do utrzymania MCU w stanie RESET kiedy zasilanie już jest niewystarczające. Można co prawda go ustawić na więcej, co da trochę czasu, przy okazji należy zmodyfikować wektor RESET tak aby domyślna funkcja zanim wystartuje program sprawdzała źródło RESET - jeśli jest nim BOD to wtedy może zapisywać...
Nie ma znaczenia jak fizycznie jest realizowana pamięć EEPROM. Zauważ, że proces kasowania i zapisu jest rozdzielny, nawet w niektórych ATMegach możesz konfigurując odpowiednio rejestr kontrolny EEPROM tylko skasować wybraną komórkę, lub tylko ją zapisać (bez kasowania). Domyślnie te operacje są połączone, zapis z programu wywołuje najpierw kasowanie,...
Dziękuję serdecznie za odpowiedzi, dodanie volatile i wyłączenie obsługi przerwań na czas porównania wydaje się naprawiać problem. Funkcje eeprom nie wymagają u mnie żadnej dodatkowej opieki, a przerwań używam dość sporo w moim projekcie, więc na pewno zauważyłbym, gdyby tak było. Zapis jest rzadki, chodzi tutaj po prostu o zapisanie sobie, że wystąpił...
To moje pierwsze starcie z protokołem I2C. Ściągnąłem biblioteki twi_master_driver.c i inne niezbędne, próbuję opanować jak to wszystko działa. Podłączyłem do Xmegi zewnętrzny eeprom "24LC08" i próbuję się tym bawić. Zapis chyba opanowałem. Fragment głównego pliku http://obrazki.elektroda.pl/1135586300_1... I po sprawdzeniu kostki w...
Witam Chce pewne dane z pracy ukladu zapisywac w epromie. Obecnie zrobilem taki programik: Dim X(7) As Eram Integer Dim Y(7) As Eram Byte X=9999 Y=100 Pytanie czy to wystarczy? Czy zadeklarowanie, ze dana zmienna ma byc przechowywana w epromie po czym przypisanie do tej zmiennej jakiejs wartosci automatycznie zalatwia sprawe ? Jesli...
I jest rezultat mej nauki Asemblera. LPM , zamiast ELPM . Owszem, w XMedze ELPM działa w SRAM, ale nie ma go chyba w ATmegach.
Witam , przejdę od razu do sedna , xmega32a4u programuje w bascomie przez klona avrmk2 bez żadnych problemów , xmega czyta wartości wewnętrznej eeprom i program działa ok ale gdy chcę podejrzeć zawartość eeprom przez bascoma pokazują się same 00 ( flash bez żadnych problemów ) i nie informuje o żadnych błędach . Próbowałem różnych prędkości itp. ale...
Witam Mam pytanie odnośnie metody zapisu stringów(char) do pamięci eeprom. Najlepiej abym mógł zapisywać i odczytywać całe zestawy danych. Robię dość skomplikowany budzik i chciałbym zapisywać do eeprom ustawienia. Skleciłem po wielkich potach coś takiego: SETTINGS.h typedef struct { uint8_t GODZINA; uint8_t MINUTA; uint8_t POWTORKI; uint8_t GLOSNOSC;...
Witam wszystkich Chcę wysyłać i odczytywać obrazki BGF do/z eepromu. Procesor Atmega 32, eeprom at24c32. Wyświetlacz DMF5005N. T6963C. Ewentualnie skorzystałbym z EEpromu atmegi 644p. Czy posiada ktoś sprawdzoną procedurę zapisu i odczytu grafiki.? Próbowałem na przykładzie gotowca z helpa BASCOMA, ale miałem tylko czarne tło. Pozdrawiam i proszę o...
Witam Męczę się już kilka godzin nad tematem i nie mogę sobie dać rady. O ile ręczny odczyt z tablicy jest ok tak z odczytem w pętli mam wielkie kłopoty. ADIW dodaje bezpośrednio jedynie do 63. Ja potrzebuję odczytać bynajmniej 120 bajtów w pętli o zmiennym adresie. Przypuszczam,że w grę wchodzi Z+ , lub nawet RAMPZ lecz nie mam pojęcia jak to zorganizować....
Drodzy koledzy... Napisałem niedawno program. Jest w innym poście. Nadal go rozwijam i aktualnie pisze funkcje do programowania. Poprostu chciałbym aby moje urządzenie było uniwersalne, programowalne :) Włącze urządznie, odpali się z parametrami domyślnymi, zaprogramuje je i jak zapamiętać je, żeby po wyłączeniu i ponownym włączeniu one nie zgineły....
Witam Jak programowo zrealizować bezpieczny odczyt i zapis do EEPROM, obojętne czy to zewnętrzny czy wewnętrzny Atmegi. Mam wartość początkową w pamięci eeprom i np chcę zwiększyć ją o 1 lub inną dowolną wartość a nie mogę utracić danych zawartych w eepromie przez przypadkowy reset podczas czytania lub zapisu. Póki co przychodzą mi na myśl dwa rozwiązania:...
Witam. Mam banalny problem podczas symulowania programu zauważyłem, ze nie mam zawartości pamięci wewn. eeprom. Jak włączyć pamięć eeprom by była widoczna podczas symulacji programu? Pytam bo w moim programie mapuje eeprom do ramu a tam mam same FF zamiast prawdziwa zawartość eepromu.
Tak próbowałem na kilku egzemplarzach XMega, nówkach sztukach. Właściwie zostaje chyba programator. Niedawno ufajczyłem Dragona, więc tymczasowo korzystam z AT90usb162+ GTL2003 z firmware LUFA151115.
No zgodziłbym się z Wami w 100% gdyby nie to, że niestety nie do końca to działa tak jak opisujecie. Jeżeli faktycznie Bit 0 – BBPODF: Battery Backup Power-on Detection Flag odpowiadało za sygnalizację, że bateria jest po wyłączeniu zasilania powinna być ustawiana ZAWSZE (przy podłączonej baterii), a tak nie jest. Ustawia się tak 50/50. I drugie....
Każdy klawisz joya masz podłaczony od osobnego portu czy osobnego pinu w jednym porcie? Jeżeli idzie o 32 MHz , spróbuj podkręcić go o ile warunki projektu pozwalają. Nie sprawdziłem zapisu eepromu ale timery, uart działały do 55Mhz (5 x 11.0592 Mhz) przy standardowym zasilaniu 3.3V. Jutro przetestuję eeprom po przetaktowaniu. Wracając do tematu, jeśli...
A po co ci te informacje? Bo one nie mają żadnego praktycznego zastosowania. Jeśli 20MHz to za mało to masz serię XMega do 32MHz. Jeśli to ciągle za mało to zmień rodzinę. Parametry z noty są określane tak, żeby założony odsetek układów pracował w podanych warunkach. To znaczy, że większość będzie pracować przy szybszym zegarze, a jak szybkim nie ma...
Koledzy, EBI w XMEGA to nie zabawka :) Zawiera układy logiczne generujące sprzętowo do 4 sygnałów CS dla ustawionych obszarów pamięci (początek, wielkość). W efekcie można połączyć pamięć (a nawet różne typy, np. jednocześnie SRAM i SDRAM) oraz LCD. Zapis pod jeden adres spowoduje aktywację pamięci, pod inny aktywację kontrolera LCD. Transfer typu EBI-EBI...
Dziękuję wszystkim za podpowiedzi. Zdecydowałem, że przy takiej liczbie danych najlepiej będzie dorobić pamięć FRAM do układu. Pozdrawiam. Nie ma jak sobie wziąć starego trupa i potem próbować go reanimować:) ATMega32 to historia, weź sobie np. ATMega328 i tam po pierwsze całkowity czas zapisu to już tylko 3,4 ms, w dodatku można go rozdzielić na kasowanie...
Witam, Jakieś 3 miesiące temu abudowałem programator AVRISP mkII na bazie wsadu LUFA i /usr/local/bin/avrdude -c avrispmkII -p x16a4 -vvv -U flash:w:xmega16a4u.output.test.h... avrdude: Version 6.1, compiled on Sep 26 2014 at 23:47:35 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright (c) 2007-2014...
To zastosuj XMEGA, bo: 1. Działa od 1,8V, a przy 3,3V masz 32 MHz, 2. EEPROM można zapisywać stronami, zapis strony 32 bajtowej trwa tyle samo co zapis 1 komórki. 3. To też AVR, więc generalna koncepcja jest podobna. Aczkolwiek przy 3,3V i zwykłej ATMega też zapewne się uda, pamiętaj tylko, żeby po detekcji zaniku zasilania wyłączyć wszystko, przestawić...
ad 1. Wear leveling robi się identycznie niezależnie od języka. ad 2. Po prostu zapisujesz wszystko podwójnie i przy odczycie przepisujesz tą kopię, która ma poprawne CRC. Warto też pomyśleć nad sprzętem - zapewnić detekcję zaniku zasilania i podtrzymanie na czas zapisu EEPROM. Prawdę mówiąc na twoim miejscu wybrałbym z AVR jakąś XMEGA, gdyż ma możliwość...
(at)mas24 Do tej pory wszystko masz w SRAM, więc możesz to używać jakkolwiek chcesz. Natomiast po skopiowaniu do EEPROM już nie. TFunkcja kol. (at)michalko12 oczywiście kopiuje wszystko do EEPROM, na lokalnej kopii w SRAM ciągle możesz pracować. BTW, o ile dobrze pamiętam działasz też na XMEGA? Tam masz fajnie, bo EEPROM można zmapować w obszar przestrzeni...
Sprawdź tez co działa, a co nie. Przypuszczam, że EEPROM się posypie prędzej. Z drugiej strony IMHO takie przetaktowywanie jest bez sensu, namęczysz się, stworzysz niestabilny układ i nic nie zyskujesz. Nawet przetaktowyrując do tych 64MHz raptem uzyskujesz 100% przyrost wydajności, przechodząc na ARM lub AVR32 zyskujesz na dzień dobry kilkaset procent.
Komparator jest w stanie wykryć zmianę a układ INT0 nie? To troche dziwne. Niespecjalnie dziwne. Zwykły pin przełączy się, gdy napięcie opadnie poniżej poziomu niskiego sygnału logicznego, który jest definiowany jako procent Vcc - problem w tym, że Vcc obniża się po zaniku i proporcjonalnie obniża się próg przełączenia pinu. W efekcie, gdy nawet w...
Transfer jednego bajta to w najlepszym przypadku 4 takty. Możesz sobie podłączyć DMA pod SPI, więc jak najbardziej można przesyłać z pamięci, do odpowiednio skonfigurowanej pamięci SPI poprzez ten interfejs. Dlatego też nie ma sensu rozpatrywać go na poziomie indywidualnych transferów, lecz transakcji. Mówiąc krótko, jeśli prawidłowo skonfigurujesz...
W złym miejscu szukałeś. Twój problem nie jest związany z Atmel Studio lecz z toolchainem - kompilatorem i linkerem. I w dokumentacji tych programów musisz szukać rozwiązań. Katalog w ktorym znajdzie się plik elf jest dowolny - określa to skrypt Makefile, akurat domyślnie dla celu Debug w AS plik ten znajduje się w podkatalogu Debug, dla celu Release...
Warto analizować kod bibliotek. Warto nie używać tych, które nie używają sprzętu i przerwań. Programowe interfejsy SPI, I2C czy co gorsza odbiór UART to wrzód na ..... Arduino. Fakt, że czasem, przy rozbudowie projektu, trzeba dodać jakiś układ peryferyjny po np I2C a wyprowadzenia I2C są zajęte. Nie bardzo opłaca się robić nową PCb z innym mikrokontrolerem,...
Źle do tego podchodzisz. Myślisz, że jeśli umieścisz dane w pamięci nieulotnej, to rozwiąże to twój problem? Otóż nie. Jeśli zależy ci na zachowaniu danych, to musisz projekt przemyśleć począwszy od części elektronicznej, a na końcu dodać obsługę programową. Czyli należy wykonać detekcję utraty zasilania i zapewnić procesorowi podtrzymanie do czasu...
jedyna zaleta jaką widzę to płaska przestrzeń adresowa, co wyeliminuje obsys związany z avr-g++, To jeden z wielu powodów, dla których zrezygnowałem z AVR na rzecz ARM. Te "PROGMEM" i "PSTR" czy tam "F" w Arduino, może doprowadzić do rozpaczy. Nie ma możliwości aby w np "sprintf" ("sprintf_P") mieszać stringi z FLASH i RAM. jedynym istotnym ograniczeniem...
Są też mikrokontrolery z pinem oznaczonym VBAT i podtrzymanie pamięci mają na pokładzie. W przypadku AVR (Xmega256A3Bx) będą to skromne 2 bajty, tak całe 16 bitów :), ale w przypadku STM32F4xx może to być znacząco więcej (np. 4kB). Ogólnie, zamiast dodatkowego elementu w układzie, masz wszystko w jednym i bez ryzyka, że braknie czasu na zapis do EEPROM.
Proponował bym Ci też procesor nieco mocniejszy - np ARM z większą ilością RAM-u i bogatszymi peryferiami. Jeśli już to pójdę w stronę Xmega. Na ARM robiłem (LPC i STM) w czasach gdy wymagały (przynajmniej LPC) zasilania 3..3,6V a potrzebny był zakres 3..5V przy pracy bateryjnej. Teraz przesiadka na ARM zaowocowała by kilkumiesięczna nauką. Nie wiem...
rj1307 napisał: I drugie pytanie, jeśli dobrze zrozumiałem, nie mogę adresować xram'u od 0 tylko od adresu powyżej końca pamięci wewnętrznej mikrokontolera. Jak więc zapisać pełne 64kB? Bezpośrednio sie nie da. W kontrolerze trzeba ustawić adresowanie 32 kB. Pamięć trzeba podzielić na dwa obszary po 32kB. Linią adresową A15 (nie musi to być PC7) wybieramy...
Teraz mam inny problem. Chcę robić pomiar temperatury i zapisywać na kartę SD. Używam do tego modułu prototypowego tego autora: Ponieważ post dotyczy innego tematu niż oryginalny wątek, temat podzieliłem. Na przyszłość proszę w przypadku napotkania problemów niezwiązanych z oryginalnym tematem postu zakładać nowy wątek. W ten sposób inni będą mogli...
Witam, Mam problem z modułem bazującym na ATxmega32E5 (AVT1807, > atprogram -t avrispmk2 -i pdi -d atxmega32e5 info Tool avrispmk2 has firmware version: 1.17 Target voltage: 3.30 V Device information: Name: atxmega32e5 JtagId: N/A CPU arch.: AVR8_XMEGA Signature: 0x1e954c Lockbits: 0xff Fuses: 0xffffffffffffff...
Witam , mam nadzieję iż nie zanudziłem bez reszty.. W zestawieniu z moimi "dokonaniami asm." kolega michalko12, jest najbliższy temu co ja kiedyś robiłem . Oto wersja asm z przełącznikiem kompilacji aby kompilować jako samodzielny plik - kto chce ->ten może :D ( ta wersja to 16-timerów, 16-nasto bitowych, każdy cztery tryby konfiguracji, oczywiście...
Hmm, po mojej przygodzie z jednym PICem z rodziny 18F nie jestem jakimś szczególnym ich fanem ;), ale może coś się zmienia w dobrą stronę? Czy ktoś jest w stanie wyjaśnić zagadkowe pojęcia typu Możliwość zwektoryzowanej obsługi przerwań Czy oznacza to, że w końcu po wystąpieniu przerwania nie trzeba "if-ować" po wszystkich możliwych flagach, żeby dowiedzieć...
Jak zrozumiałem, kolega chce szyfrować transmisję pomiędzy sterownikiem PLC a innymi elementami sieci przemysłowej. Szyfrowanie realizować będzie para układów montowana na końcach linii transmisyjnej. Jakiego typu to linia? Różnicowa skrętka, Ethernet? Domyślam się, że nie ma zagrożenia dla elementów końcowych linii, bo ewentualny haker wpiąłby się...
http://obrazki.elektroda.pl/4192018300_1... Witam! Postanowiłem przedstawić mój projekt urządzenia do rejestracji danych na karcie SD (tzw. data logger). Urządzeniu nadałem nazwę MADACU stanowiący skrót od szumnej nazwy Measurement And Data Acquisition Control Unit. Urządzenie miało być uniwersalne tzn. służyć do pomiaru temperatury,...
Witaj, Nie obraź się, ale Twoje pytanie: Do tej pory w swoich projektach wykorzystywałem młodszych "braci" sześćdziesiątki czwórki: m8, m16, m32 . Jednak "nadejszla wekopomna chfyla"... Czas sięgnąć po coś z większą ilością pinów, pamięci programu, RAM, EEPROM. Póki co wybór mój padł na AtMegę 64 - nie twierdzę, że jest to wybór optymalny. jest nieco...
Cześć, U mnie działa na Xmega16d4 bez żadnych problemów, za to na Xmega64a1 nie mogę zaflashować kontrolera. Z terminala idzie zmienić tylko fusy, eeprom i flash odpada (usersig, boot, app, apptable itp). Z linii komend da się zaprogramować eeprom ale już flash nie - nie wiedzieć czemu. Rzucam informację zwrotną od avrdude: avrdude -p x64a1 -c usbasp...
Witam. Mam problem z xmega 128A3-AU. Zbudowałem prosty woltomierz do 20V lecz przy zwarciu pinu ADC z masą nie ma 0V tylko napięcie waha się od 0 do 0.06V. Czy jest jakiś sposób na uśrednienie tego nie niszcząc płytki PCB? Program napisany w bascomie. [syntax=basic4gl]$regfile = "xm128a3def.dat" $crystal = 32000000 $hwstack = 128 $swstack = 128 $framesize...
http://obrazki.elektroda.net/24_12463822... Witam, Chciałbym przedstawić, prosty, wygodny i poręczny program, który spełnia zadania: 1. kalkulator FuseBit dla procesorów serii AVR 2. programator (graficzna nakładka AVRDUDE) 3. Wersja angielska i polska 4. Opisy fusków przetłumaczone na j.polski + małe objaśnienia do fusebitów 5. Można programować...
Bo jak programujesz 1000 szt to robisz to kilka razy szybciej. Jeśli programuję takie ilości to zamawiam preprogramowane elementy, lub programuję EEPROM przed wlutowaniem. Przecież gdyby to miał robić MCU to musiałbym mieć program, który po pierwszym uruchomieniu jest zbędny. Zresztą i tak zostaje mi programowanie 1000 MCU. tmf napisał: A jakie to...
Witam. Mam problem z zapisem do zewnętrznej pamięci EEPROM AT24C164. Działa mi zapis tylko w zakresie 0-1023 a powyżej 1023 nie działa poprawnie. Podłączyłem EEPROM do portu E. http://obrazki.elektroda.pl/7314126500_1... Mam 3 funkcje odpowiedzialne za obsługę TWI. http://obrazki.elektroda.pl/8868169800_1... Piny A1 i...
zapis eeprom xmega eeprom xmega xmega eeprom
dobór subwoofer odbiornik czułość przerwać obwód
kranzle ciśnienie pralka samsung zawiesza
Bosch 3002/13, SGI 3002/13, SGS 3002/13 – czy zmywarka ma presostat, typ i lokalizacja Chrysler Grand Voyager BCM – demontaż sterownika body, lokalizacja, procedura, generacje