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...
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...
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...
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.
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...
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...
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...
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...
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...
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]...
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 */...
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...
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),...
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ć...
Dzięki. Połączenie peceta z XMEGA już mam zrobione, biorę się za czytanie drugiej części.
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...
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...
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 :)
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.
...ś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?
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...
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ś,...
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...
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...
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...
(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...
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...
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 ;)
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...
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...
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...
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...
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.
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,...
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...
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
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....
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...
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...
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...
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...
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...
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...
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...
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...
To w takim razie jak uzyskał na xmega tak dobre czasy skoro tam nie ma kontrolera FSMC? Dodano po 34 Do swojego projektu potrzebuję : - dobrej obsługi LCD 16bit (FSMC) - 3 portów USART - Ethernet Czy na kontrolerze STM32F407VG uda mi się to wszystko zrealizować ?
W tym procku masz 3xUSART, w tym USART na PORTE. Sprawdź czy jego piny nie pokrywają się z hipotetycznym SPIE - jeśli tak to go wykorzystaj. Pamiętaj, że masz do dyspozycji rejestr REMAP przy pomocy którego możesz zremapować piny wykorzystane przez USART i SPI, czyli jest spora szansa, że bez przeróbek to zadziała. Pamiętaj, że każdy USART może pracować...
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,...
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...
Zasadniczo 48MHz dla XMEGA serii U (z USB) jakkolwiek poza specyfikacją, powinno działać stabilnie - jest to podstawowy zegar dla USB, skoro więc fragment chipu działa z takim f, to i reszta też powinna (no dobra, naciągana teoria, ale generalnie działa). Jeśli wszystko wisi na jednym SPI (a dokładniej USART w trybie SPI, bo samo SPI nie działa w trybie...
Wielki dzięki, to działa, dziwnie skonstruowana jest ta funkcja załatwiająca jednocześnie odczyt i zapis. To że działa wiem z tylko obserwacji przebiegów na analizatorze. http://obrazki.elektroda.pl/8308418200_1... Faktycznie od komórki 0x0C zaczynają się wartości AD AE AF B0 B1, ręcznie wbite przeze mnie na progamatorze. Ale przystopowało...
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...
Proszę. Nie wiem czy koledze udało się rozwiązać problem, ale jak miałem chwile to się podzielę ze wszystkimi. ESP8266 mam na NodeMCU i wole tam go oprogramowywać, ale chciałem się pobawić komendami AT więc podłączyłem go do Xmega bo to cacko jest też 3 voltowe i posiada nawet 7 interfejsów USART :D Na drugim COM zrobiłem sobie taki Debug. Program reaguje...
Ok. Thx za odpowiedź. Skorzystam z niej i zaopatrzę się w ATXMEGA256A3U-A (w pobliskim sklepie taki i tylko taki ze sprzętowym usb mają) i dalszą pracę z USB będę kontynuował właśnie z tym uC. Natomiast proszę o rozwianie moich wątpliwości bo w zasadzie tylko to mi tu jeszcze nie pasuje. Jeśli użyję układ FTDI FT232RL aby przejść z USART do USB to w...
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()...
Po skompilowaniu tego programu ile masz warningów i gdzie? Odpowiedz sobie na to pytanie a znajdziesz jedną z możliwych przyczyn błędów w terminalu. Kolejna sprawa - wewnętrzny generator w ATMegach jest nie za bardzo dostosowany do taktowania USART - może działać lecz nie musi, a prawie na pewno będzie sprawiać kłopoty. Użyj XMega lub kwarcu. I kolejna...
Zacznę od końca - otóż nie można. Transmisja synchroniczna będzie bez specjalnych nadajników/odbiorników linii działać tylko na małe odległości. 1-wire działa na odległości setek metrów. Napisałem też, że zalety z enumeracji urządzeń pojawiaja się jeśli mamy elastyczną sieć, do której możemy wpinać i wypinać urządzenia. Dodano po 7 Podstawową zaletą...
Nie, SPI może współpracować z DMA, ale nie musi. Akurat łączenie ENC z XMEGA poprzez SPI jest niewygodne, bo SPI nie ma bufora nadajnika i cała transmisja jest dużo wolniejsza niż mogłaby być. Lepiej w charakterze urządzenia master SPI wykorzystać USART w trybie master SPI - ma bufor nadajnika dzięki czemu uzyskujesz ciągły transfer i bez problemów...
Witam serdecznie Aktualnie wykorzystuję DMA w następujący sposób INTFLAGS Bit 3:0 , który sprawdza błąd transakcji dla kanału 0 do 3. Ale błąd transakcji, a błąd wysłanego bajta to dwie różne rzeczy. Jest też rejestr TEMPH i TEMPL . Czy przy pomocy w\w rejestrów można sprawdzić poprawność wysłanego każdego bajta ? Oczywiście jest to jedynie przykład...
Witam wszystkich, Próbuję uruchomić kartę mikro SD na płytce extrino od Leona, Mam książki Pana Tomasza Francuza i przerabiam przykład "Inicjalizacja" z katalogu KartySD. Książka "AVR Układy peryferyjne". Używam Atmel Studio 7. Uruchomiłem przykład na płytce DIL64 (także od Leona). Działa w trybie SPI. Ponieważ docelowo będę potrzebował SPI_USART sięgnąłem...
Ok, może jestem tendencyjny. Zaproponuj więc coś poniżej 10 zł w TQFP32-48, >32 MHz (kwestia taktowania interfejsów), z np. USB, 4xUSART, 6-8 timerów 16-bitowych z możliwością sprzętowego łączenia do 32-bitów, tak z 16 kanałó PWM, 2*ADC chociażby po 8 kanałów, np. 4*SPI, 4*I2C, DMA. A może też ze sprzętowym liczeniem CRC16 i CRC32, powiedzmy opcjonalnym...
No i super! bardzo fajna konstrukcja, tego typu sprzęt tylko jeszcze wyższa częstotliwość przydała by mi się do zbudowania generatora do radio odbiornika na 80m, z tym, że wymagałbym częstotliwości bliskich 10MHz. Są tanie moduły DDS na układach Analoga. 10MHz jest ok, 50MHz (jak piszą) juz nie za bardzo. Z AVR wiele więcej nie wyciągniesz. Na Xmega...
Xmega niby jest super, ale jeżeli chcesz puścić dane przez port SPI (max. 8MHz, więc teoretycznie 200pxl), to nie masz bufora i pojawia się kwestia stabilizacji obrazu. Bufor ma tylko USART w trybie SPI, ale on pracuje z prędkością do 4MHz (100pxl/linię). Możesz użyć DMA do transferu danych na port, z którego uzyskasz kolory, ale... Prędkość DMA zależy...
Nigdy nic nie złamałem na STM32F4DISCOVERY, a korzystam z ST-Link niemal codziennie. Wszystkie sygnały wyprowadzone na goldpiny (2.54mm) przy krawędzi płytki. CoIDE to jest właśnie środowisko typu pobierasz, klikasz i działa :) Jako początkujący też się na to zdecydowałem. Co do SAMD... Rdzeń CM0+(at)48MHz, to jednak 3. liga względem CM4(at)168+MHz....
A tak w ogole, to maja maja...tylko sie nie chwala. Pewnie za moment cos wypuszcza, wiem, ze pracuja nad jakas taka centrala PPOŻ, chociaz nie wiem po co, bo ma byc "mala". Male to robi Polon-Alfa...tez. Satel ma jedynie centralki oddymiania i to na dodatek nie swojej produkcji tylko D+H. Swoją drogą miło by było zobaczyć jakąś centrale ppoż od satela,...
Jeśli były takie kłopoty to znaczy, że firma (projektanci, programiści) kiepska i nic więcej. Jak zerkniesz do noty to błędy ADC, w tym błędy nieliniowości są określone i nie są one jakieś wielkie. Oczywiście jak na tę klasę przetwornika. Też nie należy mylić ADC z mikrokontrolerów z układami ADC za kilkadziesiąt-kilkaset złotych, które są oczywiście...
Prawda jest taka, ze bez użycia przerwań nic sensownego nie da się zrobić. Czy to będzie Arduino czy ARM, czy (tfu przez lewe ramię) Bascom. Jakiej jedno proste zadanie tak. Może i kilka ale dokładając kolejne program nie nadąża w pętli głównej sprawdzać flag i wykłada sie tam, gdzie 6502 z zegarem 1MHz (0,5MIPS) daje radę bo używa przerwań (AVR 16MHz...
Hmm, to fakt, system decyduje o przypisaniu portu. Port może się zmieniać np. w zależności od gniazda USB, do którego wpinasz "adapter". Rozwiązać można to dosyć prosto. Koło każdego gniazda RS232 w Twoim urządzeniu zrób diodę LED sterowaną z MCU, którą można programowo powiązać z otwarciem danego portu. Wtedy w aplikacji na PC możesz sobie zrobić prosty...
W „pełnej” wersji dostaniesz dodatkowo kilka kabelków i wtyczek, decyduj sam... Pytanie tylko czy są one potrzebne bo kable można sobie zacisnąć samemu. Do Xplained pewnie sama wersja BASIC wystarczy lub nawet tańsza z samą płytką bez obudowy. Widziałem jeszcze, że jest jeszcze ATJTAGICE3, ale porównując obsługiwane procki wychodzi słabiej...
1. Podziel się jak to robisz, chętnie bym wykorzystał QFN ale lutowanie tego wydaje mi się koszmarne. Co do kodu - ten dokument przez ciebie pokazany jest dosyć tendencyjny, nie ma w nim AVR, a przykład z mul to już przegięcie. Jednak nie przekonasz mnie, że kod w sytuacji w której opcode ma 32- bity jest krótszy niż kod, kiedy opcode ma 16-bitów. Byłby...
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...
Ż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
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...
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ę...
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....
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ą...
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...
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...
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ć...
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...
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...
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...
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]...
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....
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.
(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ą)...
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...
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...
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>...
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ż...
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ć...
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...
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...
usart xmega interrupt usart xmega xmega arduino
wyświetlania ładowania wideodomofony uszkodzenia schemat smart
resetowanie drukarki canon pixma reset tuszu canon
Jak umieścić ogłoszenie o pracę dla projektanta obwodów wtórnych (EAZ) Dźwięk przestrzenny z dekodera HD 3000 Polsatu