Po pierwsze enkoder możesz obsługiwać sprzętowo na XMEGA - w tym celu konfigurujesz event system na QDEC, a dowolny timer będzie ci zliczał impulsy i pracował jako enkoder. Co do transmisji USART - można paczki odbierać przez DMA, co jest wygodne, można to zrobić w oparciu o przerwania. W tym celu odblokowujesz przerwanie RXComplete sygnalizujące gotowy...
Przeczytaj to: http://mikrokontrolery.blogspot.com/2011... Masz tu pokazane jak zrobić połączenie PC-USB-XMEGA przy pomocy wirtualnego RS232. To załatwia ci połowę sprawy. A teraz to: http://mikrokontrolery.blogspot.com/2011... gdzie masz pokazane...
Tak, jest o USART w trybie SPI, ale nie ma o generowaniu obrazu TV - to będzie w książce o XMEGA :) USART - Universal Synchronous and Asynchronous Receiver - może pracować w dwóch trybach. UART - Universal Asynchronous Receiver and Transmitter - może pracować tylko w trybie asynchronicznym - nie ma sygnału SCK, przy okazji nie może też emulować interfejsu...
W przykładach do w/w książki masz wszystko co potrzeba do obsługi SD. W XMEGA E5 też najwygodniej użyć USART w trybie SPI. Z kolei do komunikacji z PC wykorzystany jest w przykładach USB, ale w trybie emulacji wirtualnego portu szeregowego - stąd tez wystarczy wyrzucić całą obsługę USB, a w kodzie funkcje odwołujące sie do USB zamienić na funkcje odwołujące...
Pod ten drugi procek podpięte jest wyjście USART z XMEGA, dzięki czemu masz je widoczne w systemie jako wirtualny port szeregowy. W ten sposób możesz łatwo komunikować się z XMEGA za pomocą USART. Co do zmiany bitów portów IO - w XMEGA masz rejestry SET, CLR i TGL związane z portem, jeden ustawia bity, drugi kasuje, a trzeci zmienia na przeciwne. Dzięki...
Na procesorach bez wsparcia sprzętowego dla USB jego uruchomienie jest bardzo trudne i nieefektywne, a osiągane transfery są żałosne. USB jak każdy złożony protokół składa się z kilku warstw - interfejs sprzętowy zapewnia realizację warstwy elektrycznej i łącza, wraz z podstawowymi elementami wymiany danych - odbiór i nadawanie pakietów, enumeracja...
Rozwiązanie to działa świetnie przy maksymalnie 2 komendach, W kodzie jest błąd. A to że czasem działa wynika najprawdopodobniej z optymalizacji. Zobacz co się stanie jak skompilujesz z opcjami -O0 Można tak: [syntax=c] // wskazniki z umieszczeniem w pamieci FLASH ;) const char * const cmds[] PROGMEM = {cmd_ledon, cmd_ledoff }; ///... //w funkcji TranslateCommand()...
Mam prośbę, upraszczam jak to tylko możliwe bibliotekę do komunikacji XMEGA->RS232 przez USART. Idea jest taka żeby tylko na samym początku programu zdefiniować o który usart chodzi i podać prędkość transmisji a reszta powinna się sama skonfigurować. W zasadzie już wszystko działa ale nie mogę sobie poradzić z automatyczną konfiguracją pinów tzn...
(at)BlueDraco Co do zasady zupełnie się z tobą zgadzam. Tylko odpowiadam na pytanie autora, że jeśli bardzo chce to można. (at)ASMnauka_ W dokumentacji masz opisane źródła (triggery) dla DMA. Jednym z nich jest zdarzenie odebrania bajta. A DMA do odbioru konfigurujesz tak jak do nadawania, z tym, że adres źródła to rejestr odbiornika danych USART,...
W książce Tomasza Francuza "AVR Praktyczne projekty" znalazłem bardzo przyjemny sposób na użycie USART w XMEGA posługując się fprintf lub fscanf. Niestety po przejściu na DMA okazało się, że nie da się tak łatwo zastąpić fprintf przy użyciu funkcji wysyłającej dane do bufora i dalej przez DMA do komputera. Znalazłem inny przykład w sieci z wykorzystanie...
Właśnie, żeby było śmieszniej w tym procku na PORTE nie ma SPI, ale jest USART, więc sobie można z niego brakujące SPI zrobić.
Fakt, masz rację. Ale i tu jest rozwiązanie - ten układ ma tryb szeregowy z dwoma wyjściami DOUT - wtedy się wyrobi czasowo. Na jednej masz kanały 0-3, na drugiej 5-7. Poskładać to prosto - potrzebujesz master SPI realizowany np. przy pomocy USART i slave SPI. Łączysz SCK z mastera z SCK konwertera i wejściem SCK slave SPI z XMEGA. W ten sposób jeśli...
Skoro to WS2812, to czemu nie SPI lub co najmniej USART? Przykład dla Xmega: baza: http://mikrokontrolery.blogspot.com/2011... USART: http://mikrokontrolery.blogspot.com/2011... USART+DMA: http://mikrokontrolery.blogspot.com/2011...
Trigger jak najbardziej może być od SPI, tyle, że od SPI realizowanego na USART w trybie SPI. SPI w XMEGA jest używane głównie do realizacji trybu slave-SPI i wtedy trigger wyzwala kolejne transfery DMA dla bajtów odebranych. Do master SPI używa się najczęściej USART. Różnica tylko w wykorzystywanych rejestrach, bo pinologicznie są to te same piny dzięki...
...ściąnij darmowe przykłądy do moich książek o XMEGA i tam masz implementację OW na USART na XMEGA. Przeczytałem trzy Twoje książki o mikrokontrolerach i protokół OW (także przez USART) opisany był w pierwszej z nich (o ATMEGA). W pozostałych dwóch (o XMEGA) nic takiego nie widziałem. Coś mi umknęło, czy też uzupełniłeś to w jakimś nowszym wydaniu?
Cześć, potrzebuję wytłumaczenia (jak dla debila ;) jak to jest z tym usartem i jak to się ma w przypadku spi / i2c dla xmega. Weźmy na warsztat chociażby SPI. A więc aby "zrealizować SPI", to muszę określić slave, zegar taktujący względem którego będą wysyłane kolejne bity (czyli po cyklicznym pojawieniu się , załóżmy, zbocza narastającego zegara),...
Jest na tyle dobrze, że można na wewnętrznym RC robić transmisję USART (to gwarantuje producent). Oczywiście kwarc jest ciągle kilka razy bardziej stabilny.
Żeby nie było, że konspiracja, to dodam że plik definicji jest ogólnodostepny na ForumMCS, ale dla zainteresowanych ożywieniem Xmegi takiej jak w "Leonowych" modułach..proszę bardzo :D
I narzekasz zupełnie niepotrzebnie. Jeśli nie masz to ściągnij przykłądy do mojej drugiej książki o XMEGA - układy peryferyjne. Tam masz przykład DMA + master SPI USART dla kart SD - jest dokładnie ten sam problem ze zmianą sygnału CS po zakończeniu ostatniej transmisji. I oczywiście jest jego rozwiązanie - przeanalizuj przykłady. Oczywiści da się uzyskać...
Funkcja generuje prawidłowe wartości. Tomasz nie opublikowałby nieprawidłowego kodu :) Błąd jest na poziomie sprzętowym w USART, ponieważ Twoje testy pokazały dość dobrze, że CPU jest taktowany na 2MHz. Szukając tematów nt. nieprawidłowego działania USART w Xmega nie znalazłem ani jednego przypadku wolniejszego transferu. Możesz napisać do Atmel'a z...
A po co FTDI232? Mogłeś wziąć A4U, która ma USB. Jak już dałeś FTDI to trzeba było go wykorzystać jako programator PDI. Niezbyt fortunnie podłączyłeś także złącze SD - wykorzystując interfejs SPI, zamiast USART. W XMEGA jako SPI Master należy wykorzystywać USART ze względu na buforowania i współpracę z DMA. To dramatycznie przyśpiesza wymianę danych...
Przede wszystkim sprawdź CRC - po to ono jest. A przy okazji - jaki jest sens taktować MCU 32 MHz, jeśli 99% czasu spędza on w martwej pętli? Zrób komunikację 1-wire na USART jak należy, tym bardziej, że w XMEGA masz ich sporo i daj odpocząć biednemu prockowi :)
Oczywiście wszystkie przerwania maja wpływ na programowy UART. Nie wiem co Ci tam przeszkadza. Już chociażby buforowany UART jest na przerwaniach. Kiedy więc ESP jeszcze coś tam dosyła to już może bruździć. Jeśli Ci na tych dosyłanych potem danych nie zależy to możesz, zamiast globalnego Disable Interrupts, wyłączać poszczególne przerwania aż dojdziesz...
Lepsza opcja to timery programowe https://github.com/adamdunkels/uip/blob/...
Wstyd mi przyznać, ale masz rację. Chyba przez nieuwagę nie umieściłem portu OW-USART dla XMEGA w przykładach. Istotnie są tylko przykłady w "Język C dla..." dotyczące zwykłych AVR. Obiecuję naprawić swój błąd i te brakujące informacje umieszczę na blogu kolegi Dondu, a przykłady wrzucę do repozytorium - najnowsze są zawsze na Atmel Spaces (przykłady...
Zadziałało w ten sposób: zassałem z podanej przez Ciebie strony wsady .hex (dla wersji z AVRDUDE - dla tej drugiej nie chciało działać), zaprogramowałem nim Atmegę90. Atmel Studio 6,2 zobaczył programator AVR ISP MKII ale wciąż nie chciał zobaczyć Xmegi po PDI. Otworzyłem poprzednią wersję AS i w niej udało się wyczyścić zawartość Xmega po PDI. Teraz...
Ostatnio używałem go do transmisji po USART z prędkością 115200. Xmega może go kalibrować sama drugim wbudowanym oscylatorem 36kHz Trzeba włączyć obydwa te oscylatory i włączyć autokalibrację. Bez autokalibracji transmisja się krzaczy i masz chińskie znaki w terminalu. Z autokalibracją wszystko działa pięknie więc chyba jest wystarczająco dokładny ;)
(at)504651921 Dobrze, że próbujesz. Warto jednak poczytać co to jest to open drain, bo skoro masz MCU, który obsługuje takie bajery... Tu masz mój przykład z 1-wire na USART (znowu, skoro masz w XMEGA kilka USARtów, to grzechem jest to robić na pinie): http://www.elektroda.pl/rtvforum/viewtop...
A jak z ustawioną szybkością USART? W przykłądzie szybkość drugiego portu USART ustawiana jest na szybkość wybraną w terminalu podczas łączenia urządzeń przez CDC. Poza tym w przykładzie znaki są odsyłane, jeśli podłączone urządzenie je odsyła. Jeśli moduł BT ma wyłączone echo to znaków w terminalu nie zobaczysz, pomimo, że wszystko działa. Najprościej...
Tutaj masz kalkulator BSEL i BSCALE dla ATXMEGA: https://www.dolman-wim.nl/xmega/tools/ba... JarekC
Prędkość nie musi być bardzo duża. chodzi mi o zrobienie takiej komunikacji jak pilot z telewizorem, projekt będzie oświetleniem sufitu, a pilotem będe sterował diodami. Dokładnie taki przykład znajdziesz w mojej nowej książce :) Jak pisałem, dioda nadawcza IR, na ktorą podajesz zmodulowany sygnał, standard obojętny, może być to wprost sygnał z USART,...
Tak. Włączyć możesz nawet wszystkie - bo każde urządzenie będzie miało własny USART. W ten sposób spokojnie do 8 możesz włączyć (bo tyle USARTów ma max. XMEGA). Oczywiście zakładam, że transfery nie są jakieś kosmiczne i np. na 8 kanałach nie polecie po 1 Mbps/kanał :) Na stronie mikrokontrolery blog masz mój artykuł na temat XMEGA i łączenia jej z...
Dokładniej to nie AVRy, tylko ATMega ma jednopoziomowy sytem przerwań, XMEGA (która też należy do AVR) ma 3-poziomowy system przerwań. ATMegi mają też sztywnie przydzielone priorytety przerwań (o ile jest w ogóle sens mówić tu o priorytetach), XMEGA mają kilka schematów priorytetowania. Tak jak piszą koledzy powyżej można zrobić obsługe nieblokującą...
Tak wiem ze uzyskam z tego preskalera tylko 8 MHz ale mniejszego chyba sie nieda lub ja raczej jeszcze nie umiem ustawic. A wyswietlacz to ILI9341 jesli ma to jakies znaczenie Znaczenie ma to o tyle, że przy zapisie kontroler ten dopuszcza max. zegar SPI równy 10 MHz, a przy odczycie już tylko 6,6 MHz. Więc z SPI wygląda to nieciekawie - albo masz...
Szanowni Forumowicze, postawiłem sobie za zadanie opanowanie UARTa w prockach xmega, co nie powinno być zadaniem bardzo trudnym. Na początek zajrzałem na stronę producenta i znalazłem pdf z opisem UARTa i przykładowy kod dla wykorzystania sprzętowego na przerwaniach i software'owego. Zacząłem od przerwań. Utworzyłem projekt i skompilowałem program....
Witam Choć temat nawiązuje do UARTu, to chodzi bardziej o to jak zacząć pracować z Xmegą w praktyce. Spodziewałem się, że przeprowadzka z Atmegi na Xmegę to będzie małe piwo. Chciałem zrobić prosty program typu echo, stwierdziłem – dla początkującego pewnie łatwizna – znajdę parę przykładów, przeanalizuję, spojrzę do dokumentacji, napiszę...
Obstawiam kłopot z wykonaniem funkcji uart_printf. Na czas jej wykonania masz blokowane wszystkie przerwania. Sprawdź flagę stanu USART - pewnie masz błąd buffer overrun. Jeśli potrzebujesz szybkości dużo wyższych niż 9600bps, to pomyśl też o XMEGA, w której odbiór danych z USART możesz zrealizować przez DMA, dzięki temu i kilka Mbps nie jest problemem.
Jeśli odległość pomiędzy układami jest niewielka (np w jednej obudowie), to I2C będzie bardzo łatwo wykorzystać do tego zadania, jeśli ciut większa to UART (USART) i konwertery napięć.
Dziękuję, cieszę sie, że książka się przydaje. BTW, jeśli używasz XMEGA128A3U to niepotrzebnie używasz FT232 - w dalszej części książki (albo w przykładach do kolejnej) masz bibliotekę realizującą wirtualny USART po USB, dzięki czemu możesz swoją XMEGA połączyć z PC bezpośrednio. Tu też coś na ten temat napisałem: http://mikrokontrolery.blogspot.com/2011...
Próbuję porozumieć się z układem ATM90E32, na płytce są dwa takie układy na jednej magistrali SPI + procesor ATXMEGA128A3U. Każdy z układów ma osobną linię !CS, tak wygląda ich połączenie: https://obrazki.elektroda.pl/1436445200_... Próbowłem używać USART w trybie SPI ale nic nie dawało użycie " PORTC_REMAP=PORT_SPI_bm;" (aby zamienić...
Moźesz użyć jako wejścia i prawdopodobnie jako wyjście też. Z pewnością można tak skonfigurować USART w trybie SPI, co jest wygodniejsze, ze względu na buforowanie.
W czym napisany jest program? Ale lepsze pytanie nie w czym ale jak? Pomijając proste programy, piszę używając maszyny stanow.... ....Ciekawe jest natomiast sterowanie LED-ami. Użyłem USART w trybie 7-bit, tyle, że należy pamiętać, że to AtMega z max zegarem 20MHz a nie Xmega gdzie ustawienie USART na 2,4Mb/s nie jest problemem...... .......jak więc...
To znów nie takie czary jak masz FT8xx W sumie FT8xx też jest wbudowany już w Bascom, ale zależy kto w jaką półkę cenową celuje. Równie dobrze można kupić dotykowe moduły Nextion. Programujesz go sobie wcześniej i on ma wbudowaną pamięć lub czyta z karty a Ty mu tylko posyłasz USART`em komendy co ma wyświetlać. Wyświetlaniem się zajmuje juz akcelerator...
Na ATMega644 oczywiście nie da się tego zrobić, chociażby z tego powodu, że bufor odbiornika jest jendobajtowy i odebrane znaki by się po prostu zgubiły. Natomiast z AVR da się coś takiego osiągnąć na XMEGA E5, gdy sprzęgniesz USART z EDMA w trybie wyszukiwania wzorców. Wtedy jest możliwość zgłoszenia przerwania po napotkaniu wzorca, który podałeś,...
AVR Dragon poprawnie współpracuje z XMEGA128A1 w trybie JTAG, w PDI chyba ma problem na Xplained. Mam takie pytanie pomocnicze, jaki masz dokładnie moduł? Bo jest Xplained z XMEGA128A1, z tym, że on pomocniczo ma jakiś procesor AVR32 z serii UC3, który robi jako bridge USART<->USB i z programowaniem przez JTAG nie ma nic wspólnego - za to może...
tmf dał byś radę wskazać gdzie jest zawarty przykład z ADC ? W przykładach, które pobrałem z helionu mam takie katalogi: ADV CDT DMA Event system FSM IR LED NVM OSC Porty IO Przerwania R02 R04 RTC Timery Usart Ale nie znalazłem nic o ADC
Bez pełnego kodu chyba nikt ci nie powie, gdzie jest błąd. BTW, w XMEGA można skonfigurować pin jako wyjście typu open drain, w efekcie nie trzeba wykorzystywać sztuczki z przełączaniem pinu na wejście, żeby uzyskać stan 1 na 1-wire. To upraszcza kod, a przy okazji można jeszcze łatwiej do komunikacji wykorzystać USART. IMHO przy liczbie dostępnych...
Przede wszystkim porzuć tą buibliotekę, przynajmniej w wersji klasycznej. I teraz od końca - odbiornik USART nasłuchuje cały czas i to nie angażuje procesora. Ba, np. w takiej XMEGA E5 procesor można nawet uśpić, a USART pracuje i jak zajdzie potrzeba to go wybudzi. To na czym powinieneś skupić swją uwagę to przerwania. A konkretnie przerwanie odbiornika...
No właśnie na terminal chcę puszczać cały zestaw zmiennych i monitorować porównując policzone na papierze. Jednak najpierw muszę odjść do ładu z kompem bo nawet połączone na echo UART<>USB cokolwiek wyślę dostaję null ;) Jak wspomniałem wcześniej obliczeniom i konwersjom typów na bank muszę się przyjrzeć. Tyle, że bzdurne wyniki jakie by one nie...
Witam, postanowiłem przenieść swój układ z atmegi na atXmegę. Do tej pory do komunikacji urządzeń po serialu używałem biblioteki SoftwareSerial (Arduino) bo układ miał tylko 1 fizyczny serial. Teraz w Xmedze mam ich 5 :) Wgrałem [url=ten]http://mikrokontrolery.blogspot... programik i wszystko...
Skoro masz w ukłądzie kwarc 32768 Hz to tykorzystaj go do kalibracji programowej generatora RC, lub prościej do wyliczenia rzeczywistej wartości częstotliwości RC, na podstawie której określasz baudrate USART. A skoro to ma być energooszczędny zegarek to weź XMEGA np. E5, która raz, że może działać z USART bez kwarcu, dwa, ma stabilny generator 1kHz...
Wąskim gardłem będzie raczej interfejs ATMega/PC. Jeśli to będzie USART to teoretycznie masz 960kbps do dyspozycji, tyle, że to zabije ATMegę. Samplowanie nie jest problemem bo 1Msps osiągniesz. Z drugiej strony - to znowu zależy jakich parametrów oczekujesz, bo być może ATMega jest wystarczająca - a chyba jest bo Atmel ma noty, gdzie coś takiego jest...
Oczywiście, że można na LCD, jeśli masz na pokłądzie to nawet prościej. Jeśli chodzi o obsługę SPI lub USART/SPI to masz w przykładach do mojej książki o XMEGA - przykłądy są za darmo, zawsze warto pobrać i przejrzeć.
Baud rate na wyświetlaczu jest ustawione na 9600 bps, w procesorze ustawia sie rejestry BSEL i BSCALE, BSEL mam na 12, BSCALE na 0, co przy taktowaniu procesora 2MHz daje właśnie 9600 bps. Odbieram na procesorze dane z dotyku i format się zgadza z notą, więc odpada możliwość błędnego ustawienia BAUD RATE. Dodano po 4 Tym kodem odbieram dane : [syntax=cpp]...
Przesyłasz dane przez I2C stosując protokół z L3? DOM dotyczy trybu L3, z którego na tej płytce nie możesz korzystać. Adres urządzenia na I2C to 0x30 do zapisu i 0x31 do odczytu. To wszystko jest w dokumentacji. Weź też pod uwagę, że Atmega32 nie nadaje się do takiej aplikacji. Dane musisz przesyłać bardzo stabilnie, a ten układ tego nie potrafi, nie...
Cześć :) Sprawdzam różne rzeczy podczas nauki uarta dla xmega128a3u. Korzystam z biblioteki Atmela, uart w trybie z przerwaniami, software'owy cykliczny bufor odbiorczy i nadawczy. Mam tablicę z danymi w formie znaków ASCII. Oglądam sobie wszystko przy pomocy realterma, do PC podłączone za pomocą przejściówki rs485-usb. Chciałem na początek obliczyć...
Oczywiście klasyczne AVR nie, od dawna z AVR używam wyłącznie XMEGA, innych się po prostu nie opłaca. Nic, kiedyś się za ten projekt wezmę.
(at)TmF Zatem, (tylko przy zapisie) jest bufor a jakoby go nie było... 1. Jaki wpływ na skuteczność zapisu do bufora ma flaga EEMAPEN ? 2. Czy też ów bufor należy widzieć jako typ w rodzaju DATA dla USART, inny dla odczytu, inny dla zapisu choć obydwa pod tym samym adresem ? ps. miłosierdziem to Waszmość nie grzeszysz, rujnując tak piękną teorię (moją)...
W ATMega nie ma takiej opcji - włączenie USART powoduje przejęcie kontroli nad pinem IO i ustawienia rejestrów portu dotyczące tego pinu nie mają znaczenia. Poza tym dla TxD nie miałoby to sensu, skoro jest to wyjście push-pull. Takie numery można zrobić na AVR XMEGA, gdzie wyjście z USART przechodzi przez bufor pinu, w efekcie konfiguracja pinu wpływa...
Tak, SPI ustawione jest na tryb 3: USARTE1.CTRLC=USART_CMODE_MSPI_gc | 2; ; //Tryb SPI tryb 3 (analogicznie jak w kodzie obsługi wyświetlacza ST7565R który też wykorzystuje tryb 3, a jego obsługę opisał kolega TMF w swojej bardzo dobrej książce) Problem leżał w tej linii: PORTE.OUTSET=PIN5_bm | PIN7_bm | PIN4_bm; Jest ona zbędna, natomiast nie do końca...
Ajć, bo ja to skopiowałem z posta wyżej. W komputerze u siebie już mam poprawione na jeden bajt. Zmieniłem trzy printfy na Twojego jednego i wynik jest taki: http://obrazki.elektroda.pl/9563186100_1... Aktualny while: [syntax=c]while(1) { TWI_MasterWriteRead(&twiMaster, SLAVE_ADDRESS, &sendBuffer[BufPos], 1, 3); while (twiMaster.status...
tylko 15 znaków dokładnie 14, null dodaję na końcu tablicy (miały być operacje na stringach, ale może się ogarnę bez tego) to LCD od nokii 3310 na pcd8544 chciałem "na szybko" zrobić konsolę do usart, bo nie mam drugiego usart do wyświetlania tego co biega po pierwszym, a przesiadanie się na xmega nie ma sensu...
Z drugiej strony jak sobie bierzesz nietypowe napięcie referencyjne (3300 mV), to potem masz problemy obliczeniowe. To akurat jest dla mnie bardzo typowe napięcie referencyjne. Nie spotkałem się jeszcze z małym prockiem z którego wystawałby pin Vref. I nawet większe (QFP64) też potrafią (w większości) tego nie mieć... na XMEGA robię USART z wired-AND...
Wyodrębniłem na potrzeby forum tylko ten kawałek kodu który odczytuje dane kalibracyjne z czujnika. Jeśli jest na forum X-megowiec bardziej zaawansowany to może coś podpowie, czemu SPI na Xmedze128 działa a na xmedze32E5 nie. Domyślam się ze chodzi tylko i część kodu z konfiguracją SPI w main() [syntax=c] #include <avr/io.h> #include <util/delay.h>...
Tak to jest jak najpierw się coś robi a potem myśli :) Jeśli korzystasz z gotowych modułów w Bascomie, które nie przewidują możliwości podpięcia dwóch odbiorników IR to masz problem. Zostaje napisanie własnych. W C to mógłbym coś doradzić... W każdym razie zaprzyjaźnij się z timerem i modułem ICP. Gdybyś zamiast ATMegi wybrał XMEGA to na każdym porcie...
Witam, wymyśliłem sobie, że dane z czujnika PMSA003 będę odczytywał UARTem z udziałem DMA. Wygląda to zatem tak, że na poczatku: deklaruję tablicę o rozmiarze ramki z czujnika w trakcie debugowania okazuje się, iż dane w tablicy nie są właściwe . Ramka powinna zaczynać się od bajtów startu 0x44 i 0x4D, a wg debugera takie wartości pojawiają się też...
W trybie SPI baudrate dla UART nie zawiera części odpowiedzialnej za generator frakcyjny - ze wzoru z manuala - BSEL=Fper/(2*Fbaud)-1. BTW, DRE to data register empty - budor masz tu 2 bajtowy + dana w nadajniku. Stąd też ten bit zmieni stan dopiero gdy wyślesz 3 bajty. Dlatego dla SPI trzeba być uważnym, aby nierozsynchronizować nadajnika z odbiornikiem....
Poprawiłem kod zgodnie z linkiem, który poleciłeś: [syntax=c] FILE uart_output = FDEV_SETUP_STREAM(uart_putchar, NULL, _FDEV_SETUP_WRITE); FILE uart_input = FDEV_SETUP_STREAM(NULL, uart_getchar, _FDEV_SETUP_READ); stdout = &uart_output; stdin = &uart_input; // kod // void uart_putchar(char c, FILE *stream) { if (c == '\n') { uart_putchar('\r', stream);...
-te dławiki na AVCC nie są potrzebne - nie korzystasz z ADC (nawet jeśli korzystasz to wymagane są one przy superdokładnych pomiarach), - przez rezystor 1 MOm łączysz do masy osłonę gniazda USB, masy USB i układu łączysz bezpośrednio, - na USB nie ma 3,3V, jest 5V, które ci upali procka. Jeśli zasilasz układ z USB potrzebny jest LDO na 3,3V, - do realizacji...
Hmm czy przy pierwszym to nie jestem pewien - ale na pewno resetuje się od stanu niskiego na reset a nie od wejścia w PDI. Z tego co wyczytałem, wynika że układ nie powinien się zresetować dopóki nie wpiszemy wartości 0x59 do rejestru "reset". Dałem 20us, i na końcu zwolniłem PDI_DATA (ten pin ma wewnętrzny pulldown). No i bez efektu. Pin RESET podczas...
XMega256A3 M25P128 Schemat http://obrazki.elektroda.pl/9943428700_1... kod [syntax=c] void M25P128_SPI_INIT(void) { // konfiguracja SPI dla M25P128 PORTD.OUTSET=M25P128_SPI_MOSI | M25P128_SPI_CS | M25P128_SPI_SCK; // MOSI,CS i SCK w stanie wysokim PORTD.DIRSET=M25P128_SPI_MOSI | M25P128_SPI_CS | M25P128_SPI_SCK; // MOSI,CS i SCK jako...
Witam, mam mały problem którego nie potrafię rozwiązać, i potrzebuję porady. Potrzebuję zrobić układ który będzie przesyłał dźwięk za pomocą usart. I tak: Jeden mikrokontroler xmega będzie zbierał dżwięk z mikrofonu podpiętego do ADC i za pomącą DMA przesyłał zebrane przez ADC próbki dźwięku do UART. Drugi mikrokontroler xmega będzie odbierał te próbki...
Witam. Mam problem z kodem programu. Do pinu F5 XMegi128A3U mam podpięty przycisk wywołujący przerwanie INT0. O tak: http://obrazki.elektroda.pl/6613783300_1... Kod włączający i konfigurujący przerwanie: http://obrazki.elektroda.pl/8557297900_1... PORT_ISC_LEVEL_gc używam ze względu na to, że domyślnym stanem przycisku...
Witam. Mam problem z jednoczesnym używaniem portów. Do komunikacji z komputerem chce użyć emulacji portu szeregowego, na USB. Bazując na artykule ze strony [url=http://mikrokontrolery.blogspot.com... uruchomiłem komunikację z komputerem. Wszystko jest ok. Połączenie...
Witam dziękuję za odpowiedzi. Oczywiście przypisanie wartości stopy do int'a było moim bezmyślnym babolem. Przelecę nią przez "dłuższy" typ do metrów w int'cie i zrobię zaraz testy. - Soft odbiera poprawnie, ale do testów na szybko używam terminala. - Aż takiej dokładności konwersji jednostek nie potrzebuję. Wystarczy przybliżenie *0.3 ;) - No magia....
Czy ten zapis jednoznacznie świadczy o fakcie pisania w ASM ? Usartc0_data = zmienna Gdyby to było w asemblerze, to zapisałbyś to jakoś tak: [syntax=asm] LDS R24,ZMIENNA STS USARTC0_DATA,R24 lub z użyciem rejstrów indeksujących: LDIZL,LOW(USARTC0_base) LDI ZH,HIGH(USARTC0_base) LDI XL,LOW(ZMIENNA) LDI XH,HIGH(ZMIENNA) LD R24,X STD Z+0,R24[/syntax]...
Jeśli ta transmisja RS ma być pomiędzy dwoma prockami, które są taktowane kwarcem o tej samej częstotliwości, lub wielokrotnością to problemu w ogóle nie ma, bo błąd po obu stronach będzie taki sam i się zniesie. Jeśli chodzi o transmisję do PC to po prostu policz błąd dla wybranej szybkości i sprawdź czy mieści się w tolerancji. BTW, wspomniana XMEGA...
Zmienne globalne zajmują...... Pewnie ram dla led jest rezerwowany w chwili uruchomienia biblioteki przez memalloc. Gdybyś sam pisał obsługę led to użyłbyś tablicy o określonym rozmiarze dzięki czemu wiedziałbyś ile ram zajmuje program. Poszukaj jak wyświetlić ilość wolnej pamięci ram w czasie działania programu. Jakiś freemem jest. Trochę oszuka ale...
Co do wysłania danych przez terminal z MCU to jest tam przykład zapisu danych z terminala na kartę SD. Ale najprościej po prostu odbierać dane z USART i je zapisywać do tablicy w SRAM. Tylko uwaga - dane nie mogą być wysyłane zbyt szybko, to znaczy program musi nadążać z ich odbiorem. W przypadku SRAM to raczej nie jest problemem. Wynika to z tego,...
Ustawianie zegara http://obrazki.elektroda.pl/9237508000_1...
Procek to xmega. Master może być programowy, lub sprzętowy - USART. Aktualnie soft jest w trakcie pisania i master jest programowy, a docelowo będzie sprzętowy na usarcie. No to zero problemu aby w programie oddzielić nadawanie od odbioru. W przypadku UASRT już to masz, w przypadku operacji na PIO trzeba tylko w programie oddzielić nadawanie od odbioru....
to raczej jakaś nisza rynkowa, np. sterowniki dzwonów w katedrach w Belgii. 👍 Faktycznie, ciekawe, czy da sie tym PIC-em sterować WS2812 przez USART lub SPI. W AVR nie ma z tym problemu (piszę o Mega), w Xmega, dzięki DMA, zero problemu.
można wziąć większy procek, np. ze stajni AVR XMEGA. Raz, że masz procek o 1/3 szybszy, to jeszcze możesz zrobić synchroniczny USART z wykorzystaniem DMA, co praktycznie zapewni brak obciążenia obu procków. Pamięć dwuportowa to raczej ciekawostka :) Jak już xmega, to chyba można jeszcze lepiej. Połączyć PORT<->PORT i w "Masterze" uruchomić Timer...
Może się mylę, ale w XMEGA włączenie TWI chyba nie włącza automatycznie slew rate limiter, trzeba to włączyć osobno w rejestrze konfiguracji pinu IO. slew rate włączane było automatycznie we wcześniejszych AVRach. Można też wybrać dla pinów TWI konfigurację wired-and with pull up. Być może nawet należy wybrać, bo w XMEGA konfioguracja pinu IO nie jest...
Cześć :) Postawiłem sobie za zadanie opanować i dobrze zrozumieć bibliotekę uart od Atmela. W poprzednim poście zastanawiałem się nad przerwaniem TXC, a teraz próbuję wykonać coś w rodzaju echa - mianowicie znaki, które wyślę z terminala do procka chcę wysłać na terminal w takiej samej kolejności + liczba informująca o ilości odebranych znaków. Popełniłem...
Przechodzę na Xmegę 32MHz z powodu pamięci i wydajność będzie porównywalna. :) Fakt, porównywalna. Np. liczbę 1 można porównać z liczbą 5. 32 MHz * 0.3 DMIPS/MHz też można porównać z 40 MHz * 1 DMIPS/MHz (F0x) ...albo z 84 MHz * 1.2 DMIPS/MHz (F401) Miałem nic nie pisać ale trochę manipulujesz faktami. Szybkość jest ważna, ale tylko jeśli jej potrzebujemy....
Wybrać cokolwiek współczesnego, a nie drogi, mało wydajny i kłopotliwy w programowaniu zabytek. Patrz tutaj: http://www.elektroda.pl/rtvforum/viewtop... Mam wrażenie, że porównujesz 8- i 32-bitowce mając świeżą wiedzę o 32-bitowcach i informacje tak sprzed 10 lat o 8-bitowcach. Z argumentów, które podałeś w tamtym wątku na dzień dzisiejszy...
Zgodzę się, że w wolnym systemie przerwania wielopoziomowe mają jakiś sens. Zmieniałeś w jakiejś architekturze priorytety przerwań ? Przydało Ci się to w jakimś realnym a nie akademickim przypadku ? W ARM ustawiam priorytety z lenistwa (nie chce mi się liczyć) ale pewnie wystarczyłby jeden. W 8051 i Z-80 to często konieczność (szybka transmisja USART),...
Sprawdziłem ceny scalaków i trzeba przyznać iż Xmega jest dość droga aczkolwiek nie wszystkie. Obstawiam ten konkretny model : ATXMEGA128A1U-AU SMD w cenie około 15zł USB Full Speed Device wbudowany. uC z rodziny XMega, 128k Flash, 8K SRAM, 78I/O, 8*USART, 12bit ADC, DAC, 4 komparatory analogowe, SPI, TWI, moduł crypto AES/DES, RTC, BOD, TQFP100, Ucc...
Tak, Atmel już się tym chwalił. Jak dla mnie to nic ciekawego,bo: - poprawa stabilności oscylatora RC dla transmisji USART, - poprawa dokładności napięcia referencyjnego, - unikalny ID układu, to wszystko już mam w AVR XMEGA od lat. Ja bym się bardziej cieszył z połączenia AVR np. z CPLD, kiedyś mieli taką hybrydę o nazwie FPSlic, ale chyba sprawa umarła....
Dzięki za pomoc :) atxmegi wolalbym uniknąć bo z tego co widziałem nie ma żadnych w obudowach dip a narazie wszystko robie na płytce stykowej To co, że nie ma żadnej w DIP? Kupisz, albo zrobisz sobie sam moduł do stykówki: http://mikrokontrolery.blogspot.com/2011... lub gotowe: http://mikrokontrolery.blogspot.com/2011...
Niestety nie mają. Fabrycznie załadowany bootloader mają ATMega z USB, też się na to naciąłem. Ale nawet jeśli procek nie ma USB to można go programować przez USART korzystając z FLIPa. Niestety bootloader trzeba wgrać.
Są różne zastosowania procków. Robienie procka na 700 MHz automatycznie oznacza, że nie nadaje się on np. do aplikacji low power. A wbrew temu co część osób tu pisze moc obliczeniowa zazwyczaj nie jest najważniejszym czynnikiem, zaryzykowałbym twierdzenie, że jest najmniej ważnym w większości aplikacji. Stąd proste cortex M0 i stąd ciągle 8-bitowce...
1. Zamiast pisać: #define DI_INIT()PORTC_DIR |= 0x20/* Initialize port for MMC DI as output */ #define DI_H() PORTC_OUT |= 0x20/* Set MMC DI "high" */ #define DI_L() PORTC_OUT &= 0xDF/* Set MMC DI "low" */ możesz zapisać: #define DI_INIT()PORTC_DIRSET = 0x20/* Initialize port for MMC DI as output */...
Atmega jest podłączona bezpośrednio do GPS-a. Na razie zwiększyłem zegar do 2 MHz-ów. Nie do końca jestem przekonany do tego kodu... Może to jego wina, że wyświetla takie głupoty? Ja tam nie wiem dlaczego wewnętrzny osc. RC miałby uniemożliwiać poprawne działanie UARTA. Jeśli procesor ma pracować w temperaturach zbliżonych do temperatury popularnie...
W urządzeniu było mało USART, został użyty układ SC16IS760IPW. Teraz musze dodać kolejny SC16IS762IPW czyli dwa USART. Procek z USARTEM komunikuje się po SPI. Komunikacja to wysłanie adresu rejestru i zapis/odczyt danej. Teraz wszystko odbywa sie w pętli głównej, muszę jednak odbiór przenieść na przerwania. Jak sie łatwo domyśleć, nie może byc tak,...
Hmmm... no dobra w takim wypadku chyba nie ma różnicy czy jest to SPI czy USART w trybie SPI? W sensie skarmiania danymi nie ma.` Jeżeli chcesz odciążyć program od wysyłania lub odbierania, to musisz zastosować sprzęt, który oferuje DMA. Tak jak pisałem ARM-y, XMEGA o ile pamiętam to tylko w slave mode lub usart w spi mode w trybie master (ale xmeg...
Możliwości debuggera limitują możliwości debugowanego mikrokontrolera, więc niezależnie, czy stosujesz Atmel-ICE, czy JTAGICEIII to możliwości są takie same. Kabeli w przypadku Atmel-ICE są o tyle istotne, że stosuje on złącza 50mils, które nie są popularne i dostępne w sklepie za rogiem. Także nie zawsze sobie można samemu zacisnąć potrzebne kabelki,...
Nie mam pojęcia czemu jest failed, płytka testowa oryginalna "Leona" ale ten rejestr chyba i tak nie ma znaczenia w tym przypadku. Po dodaniu stddef kompiluje się wszystko ale te kalibracje w ogóle nie wpływają na pomiar. Cały czas min. odczyt to 180. Jedyną rzeczą dziwną jest to że przez około 1s po połączeniu się przez RS-a wyświetla się kontrolka...
Ale jak się przesiądziesz na AVR to masz chociażby tu wsparcie w postaci innych użytkowników AVR (a jest ich wielu). Podobnie jak przejdziesz na ARM to też jest tu parę osób naprawdę te klocki świetnie znających, więc nie jesteś sam. No i c to c, zawsze ktoś doradzi. Assembler pomimo, że nieskromnie powiem znam dosyć dobrze na kilku różnych prockach,...
xmega usart interrupt usart xmega xmega częstotliwości
sygnalizacja błędu oznaczenie zmywarka siemens prostownik dławik
hyundai tucson gramofon daniel
Radio UKF z wzmacniaczem UL1496 - Montaż i Schemat Budowa radia UKF z wzmacniaczem UL1496 krok po kroku