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...
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...
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...
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...
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...
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ć...
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.
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...
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]...
Na pierwszy rzut oka wygląda poprawnie. Aczkolwiek są potencjalne problemy: - ustawiasz taktowanie zewnętrzne, odblokowując generator kwarcowy, ale jednocześnie blokujesz od rauz wewnętrzne RC 2 MHz. Przypuszczam, że nie jest to problemem i XMEGA nie pozwoli zablokować jedynego generatora, ale kto wie. Ja bym dla świętego spokoju zostawił ustawiony...
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...
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...
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...
-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...
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 */...
Sprawdzaj 4 bit adresu - 0 - USARTx0, 1 - USARTx1.
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),...
Nie wiem czy to jest w ogóle możliwe bo fprint musi mieć zdefiniowaną funkcję wysyłającą tekst po jednym znaku. Definiujesz pośredni bufor i do niego ładujesz pojedyncze znaki. Funkcja umieszczająca znaki powinna sprawdzać poziom zapełnienia bufora i uruchamiać/resetować timer. Jeśli bufor zacznie się zapełniać lub nastąpi timeout, bufor powinien zostać...
http://obrazki.elektroda.pl/4549134200_1... Chciałem zaprezentować Wam mój ostatni projekt który jest tzw „evaluation board”. Urządzenie to zostało zaprojektowane jako swego rodzaju projekt pośredni ,ponieważ potrzebny jest mi on do innego większego projektu ale samo w sobie jest pełnoprawnym urządzeniem. Płytka może być...
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...
Dzięki. Połączenie peceta z XMEGA już mam zrobione, biorę się za czytanie drugiej części.
Ale oczywiście można wykorzystać DMA do odbioru danych, wystarczy wyzwalacz DMA podpiąć pod zdarzenie odbioru bajta przez USART. BTW, w XMEGA E5 jest EDMA i ma możliwość wyszukiwania wzorców, więc można zrobić tak, że po odbiorze bajta kończącego transmisję automatycznie zgłasza to w postaci przerwania.
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 :)
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...
...ś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?
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...
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...
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...
Atmega 328P z kwarcem 18432000 (w specyfikacji mozna ja kręcić do 20MHz) spokojnie potrafi wygenerować trzy PWM przesunięte w fazie o 120 stopni z krokiem 256 z częstotliwością 50Hz przy tym nadając na USART o aktualnych warunkach jednego potencjometru. Pewnie że potrafi, ja na attiny 861 wygenerowałem 3 sinusy co 120 st z regulacją F od 20 do 250Hz...
Jaki sens podkręcać Xmegę, jeżeli za te same pieniądze możesz mieć ARMa o znacznie wyższej wydajności? Taki prosty przykład: wydajność Xmega128A1 w CoreMark: 0,44/MHz, max. 14,1(at)32MHz (wariant optymistyczny) wydajność ST32F401VB w CoreMark: 2,16/MHz, min. 181(at)84MHz (wariant pesymistyczny) Zawsze będę wspominał niezbyt sensowny ADC w Xmega, usb...
(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...
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ś,...
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 ;)
Sory, że tak długo nie było reakcji. Dzięki zapodpowiedź. W międzyczasie zgłębiałem temat USART w trybie MasterSPI. O ile czegoś nie pomieszałem to wystarczy nie włączyć RX czyli zamiast [syntax=c]USARTE0.CTRLB |= USART_RXEN_bm | USART_TXEN_bm;[/syntax] wystarczy [syntax=c]USARTE0.CTRLB |= USART_TXEN_bm;[/syntax] Pozostawia to pin związany z RX nie...
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...
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...
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,...
Widzę, że używasz kodów z moich książek o XMEGA. Przetestuj swój układ na jednym z kompletnych przykładów użycia 1-wire, które zamieściłem, najlepiej w układzie referencyjnym, który zamieściłem w książce. W XMEGA, ten dodatkowy tranzystor na USART w ogóle nie jest potrzebny - pin IO w USART możesz ustawić na tryb wired-AND, dzięki czemu nie wystawia...
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...
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
Jakieś foto PCB, schemat? Z jaka częstotliwością musi pracować AVR aby uzyskać przepływność 2.4Mb/s (800kb/s * 3 = 2,4Mb/s)? Dla Double Speed mode (U2Xn = 1): BAUD = fosc/8*(UBRR+1) gdy Fosc 16MHz UBRR=1 to: 16e6/(8*(1+1)) = 1'000'000 czyli dużo za mało. Dopiero dla Fosc 39MHz uzyskamy 2,437500Mb/s a tyle to nawet Xmega nie pociągnie.
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....
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...
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...
Te 32 bity to w małych projektach wygoda, w dużych - konieczność. Głupia średnia krocząca o głębokości 16 przy 12bit próbkach wymaga akumulatora 16bit. Szybka zamiana wartości z ADC na mV (bez dziwnego dzielenia i floatów) wymaga już więcej (dla Vref=3300 masz (3300*adc_val)>>adc_bits, wykonanie mnożenia wymaga juz 24 bitów). Łatwo się przyzwyczaja...
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...
Mikrokontrolery AVR firmy Atmel zdobyły bardzo dużą popularność na polskim rynku. Dotychczas producent oferował nam dwie rodziny: ATtiny oraz ATmega, które różniły się możliwościami i ceną, choć sposób ich programowania był identyczny. Wprowadzając najnowszą rodzinę, XMEGA, producent dokonał bardzo istotnych zmian, zarówno w budowie procesora, a także...
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...
nna wada to brak filtracji dla SPI - interfejsy UART w MCU często mają różne formy sprzętowej eliminacji zakłóceń, zwykle ukady (tak jest np. w XMEGA) Nie sądzę aby to był jakimkolwiek problemem. Wątpię aby taki DS2484 próbkował kilka razy. Co do preskalera to racja, USART posiada elastyczny podzielnik, SPI, najczęściej mało elastyczny preskaler. Ten...
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...
xmega usart interrupt usart xmega xmega częstotliwości
vitopend pompa podwójne świetlówki foxess norma
defro k1pv4 plyta glowna sharp
Passat B5 1.9 TDI 90KM – luz zaworowy kasowany hydraulicznie, popychacze, regulacja Kolory przewodów w kamerze cofania: czerwony, czarny, żółty, zielony, biały