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ę...
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...
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,...
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...
Podejrzewałem złą filtrację zasilania Xmegi, ale sprawdziłem w trzech różnych płytkach/układach, gdzie pracuje XMEGA z prawidłowym filtrowaniem - wszędzie problem istnieje. Zauważyłem natomiast, że opisany przeze mnie efekt występuje jeśli w opcjach EEprom mam zaznaczony "ptaszek" Erase EEPROM before programming. Odhaczając powyższą opcję programowanie...
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,...
Zapis nie musi zajmować dużo czasu, jeśli przed wywołaniem zapisu sprawdzisz, czy żaden inny zapis do EEPROM się nie odbywa. Jeśli nie, to wywołanie _write lub _update dla bajtu trwa chwilę, bo funkcja natychmiast wraca i nie czeka na koniec zapisu. Więc tu blokowanie przerwań będzie bezpieczne. Co innego w przypadku zapisu blokowego, ale przecież nie...
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...
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....
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ść...
W nie najtańszym TME, pamięć 512bajtówFM25L04B-G kosztuje 6,24 zł netto w detalu. (at)NoweMillennium A co ci da ta zewnętrzna pamięć 512 bajtów? Przecież to nic nie zmienia. Nawet, gdyby przyjąć, że to będzie 512 kB to owszem, założenia projektu niby spełnia - z wear leveling uzyskamy te ponad 3 lata retencji danych, ale... i tak trzeba zrobić podtrzymanie...
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...
Pomijając błędy w programie (przecież może paść co innego), zrób sobie np. dwie tablice z weryfikacją. Tam gdzie ważność danych jest ważna, czasem beckup może się przydać, nawet jak nigdy nie będzie potrzebny. Za którymś (dziesiątym, czy dwudziestym) restartem następuje wykasowanie jakiejś komórki A to jest restart napięciowy zasilaniem czy wejściem...
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...
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ć...
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... ?
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...
(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...
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...
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:...
Odpalam mapowanie na początku i cały odczyt traktuję jak SRAM, tak samo w przerwaniu jak i w pętli głównej? Jeśli tak, to rzezczywiście bardzo wygodne. Dokładnie tak. Dobrze rozumiem, że do problemu dojdzie, gdy akurat korzystam z rejestru CMD kontrolera i odpali się przerwanie, które będzie czytało z flash, a rejestr CMD nie będzie wtedy 0x00? Czy...
(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...
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.
Pewnie nie są, tym bardziej, że operacje kasowania i zapisu są rozdzielne. Tak jak pisze piotrva, zapis polega na odczycie pamięci do bufora, uaktualnieniu bufora, skasowaniu strony i zapisie z bufora do pamięci. Najlepiej ten mechanizm widać właśnie w XMEGA, gdzie ma się do bufora zapisu dostęp programowy i można na raz zapisywać cała stronę, także...
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ć...
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...
Sei() to chyba włącza globalne przerwania?? Tak, ale eeprom_write_byte je wyłaczy ale nie przywróci. W jakiej wierszi bibliotek był błąd obsługi eeprom (złe adresy IO), zrobiłem więc swoją, w której: - czekam na koniec operacji na eeprom - zapamiętuję SREG - sei() - start zapisu - odtworzenie SREG Oryginalna działała tak: - sei() - czekanie na koniec...
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...
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...
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...
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.
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...
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...
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...
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 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ę...
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...
Czyli jak widać brak eepromu doskwiera nie tylko mi. Trzeba zatem sobie wyraźnie powiedzieć, że to jest OGROMNA wada Armów. Bo na każdym kroku słychać tylko ochy i achy dotyczące Armów. Wolałbym 100 bajtów eepromu w każdym procesorze, aniżeli 200 liczników czy 100 Uartów i 1GB flasha. Pod tym względem cudowne były i są Xmegi , szkoda tylko, że sie nie...
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ć...
39SF010 ma dłuższy adres , więc inny układ pinów i musiałbym przełączyć prototyp. Jak je przetestuję, to napiszę. Już przetestowałem, wszystko śmiga jak należy. [url=github.com/vidmo91/644_parallel_mem... to, co zrobiłem na GitHuba. Może komuś przyda się domorosły programator pamięci równoległych. Trzeba dopisać trochę kodu, żeby stało się to...
Próbowałem "przeskoczyć" z AVR na ARM. Zniechęcił mnie brak eepromu. Kompletnie nie jest dla mnie zrozumiałe, aby w takich nowoczesnych procesorach robić takie ograniczenia. Wolę Xmegi. To prawda, że brak EEPROM to jakieś dziwactwo. W sumie ciekawe rozumowanie - nie ma EEPROM bo nie jest potrzebny, natomiast z jakiegoś magicznego powodu większość 8-bitowców...
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 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...
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,...
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...
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...
eeprom xmega zapis xmega eeprom eeprom xmega
podłączyć otwieranie bagażnika iphone operator bizon zegary
fortron fsp400 60hln fortron fsp400 60hln
Wymiana termopar w płycie gazowej Whirlpool AKT/NB Igła do wkładki Shure M44MB - zamienniki i charakterystyka