Witam. Jestem początkujący jeśli chodzi o zabawę z mikrokontrolerami. Otóż zakupiłem gotowy moduł z ATxmega128A3 i chciałem zrobić pomiar napięcia na nim. Dzielnik 1:20 i nie mierzy 0V tylko na dzień dobry jest od 0.02V do 0.05V. Przy pomiarze baterii 9V czy akumulatora w samochodzie pomiar jest fałszywy i "skacze" względem tego błędu. Można jakoś temu...
Prawie dobrze, ale: Count = Count & 0x800000; coś takiego, to może zwrócić tylko 2 wartości: 0 i 0x800000. A to z pewnością nie to, o co Ci chodzi. Powinieneś ograniczyć zakres w ten sposób: Count = Count & 0xFFFFFF; Zresztą to ograniczanie i tak jest niepotrzebne, bo funkcja readScale() nigdy nie zwróci wartości większej niż 0xFFFFFF nawet bez tej...
O ADC będzie w drugiej części, już wkrótce. Tak, możesz zainicjować jednocześnie wszystkie kanały, lecz konwersja nie będzie jednoczesna. Cztery kanały ADC tworzą potok, konwersja w ramach potoku odbywa się co 1 takt CLKADC (kanały odpalane są zgodnie z priorytetem). Dla dwóch oddzielnych ADC jakie ma XMEGA możesz przetworniki odpalić jednocześnie....
Chyba kolego coś kręcisz, bo nie widziałem jeszcze miernika w którym przekręcenie czegokolwiek sprawia że sonda podłączona do wejść służących do pomiaru napięcia jest zwierana. Do pomiaru prądu są zwykle osobne wejścia między innymi dlatego żeby nie były możliwe sytuacje jak wspomniałeś, ale mniejsza z tym. Sprawdź napięcia na wejściu i wyjściu stabilizatora...
Co powinienem jeszcze sprawdzić ? ... Przede wszystkim, funkcję W1odbierz() . Poza tym, reszta też mocno ... nadmiarowa - wiele niepotrzebnych instrukcji, np. [syntax=c]void W1wyslij(uint8_t BajtDoNadania){ //uint8_t pomoc; for (uint8_t i=0;i<8;i++) { W1_nadajBIT(BajtDoNadania & 1); BajtDoNadania>>=1; //zmienna lokalna, więc można ją "zniszczyć"...
Witam Można też wyjść poza stare AVRy i użyć nowszych, XMEGA Potrzebuję mały tani uC, który wybudzi się dokona pomiaru na ADC, wyśle pomiar i znów się uśpi. XMEGA to przypuszczalnie strzelanie z armaty do muchy. Czy ja wiem czy taka armata, obejrzyj rodzinę Xmega D4 w TQFP44, wcale nie taka droga (w TME ~10zł), a ma wszystko co potrzebujesz (RTC odlicza...
Tak, tylko może się to wiązać ze zmniejszeniem rozdzielczości pomiaru. Lepiej wykorzystać potokową budowę ADC i odpalać kolejne konwersje w kolejnych kanałach, dzięki temu uzyskasz 2 Msps przy nominalnej rozdzielczości 12 bitów.
http://www.atmel.com/images/atmel-8032-u... Rozdział 1.13
(at)Piotrus_999 No ale jaki dzielnik napięcia zastosujesz? Przecież, żeby on istotnie nie obciążał źródła, czyli tego ładowanego kondensatora, to musiałyby to być setki megaomów (przy założeniu, że ładujemy przez rezystor rzędu megaoma). A i sam prąd polaryzacji wejścia komparatora w XMEGA będzie spory. Jeśli to miałby być pomiar przez określenie czasu...
Spróbuj podać sygnał z jakiegoś innego urządzenia. Bo teraz masz tak że z tego samego procesora pobierasz sygnał i tym samym procesorem dokonujesz pomiaru. A generowanie sygnału i pomiar zapewne nie są niezależne- jakieś przesunięcie czasowe itp. może występować. Wszystko zależy od kodu i działania sprzętowego procesora. A jakiś prosty generator można...
Inna propozycja: wyznacz błąd w funkcji temperatury i dodaj pomiar temperatury do układu. Dodano po 7 Czytałeś ten dokument:
Z tego co mi się wydaje nie można mierzyć nic poniżej -0.5V bo tyle jest maks co można podać. Zakres do -Vref jest raczej przy trybie differential input jako napięcie większe na wejściu VINN niż na wejściu VINP zgodnie z tym co cytowałem wyzej za AVR1300pdf Zastrzel mnie ale nie wiem jak według Atmela ma więc działać pomiar napięć poniżej 0. :)
(at)pjasinski91 Przede wszystkim musisz tak przetworzyć sygnał analogowy z mikrofonów, aby miał postać cyfrową, łatwą do detekcji przez MCU. Jak się z tym uporasz, to pomiar czasu nadejścia impulsu już jest relatywnie prosty. Oczywiście XMEGA ci tu pomoże bo łatwo można nadawać markery czasowe sygnałom na dowolnych pinach IO. Na klasycznej ATMega też...
Tak jak pisałem, ciągle nie jest to problemem dla współczesnych mikrokontrolerów. Sam pomiar realizowany jest sprzętowo, przez układ licznika wbudowany w mikrokontroler. Nawet proste AVR8 spełniają te założenia, taktowanie do 20 MHz, a więc teoretyczna rozdzielczość pomiaru to 50 ns, z tej samej serii XMEGA - 32 MHz, przy czym liczniki mogą być taktowane...
Owszem, rozważałem taką możliwość by sterować przy pomocy FDTI oraz bit-bang, jednak przeważyła swoboda konfigurowania pinów podłączanych do XMEGA. Druga sprawa, to w XMEGA mogę skorzystać ze sprzętowego pomiaru czasu odczytu/zapisu/kasowania stron. Trzecia sprawa, to z poziomu aplikacji PC wysyłam do XMEGA polecenie wykonania określonego zadania i...
Witam, w temacie https://www.elektroda.pl/rtvforum/topic3... przy pomocy użytkownika JarekC udało mi się dojść, że w funkcji sysclk_init() wyłączane jest doprowadzanie zegara do wszystkich peryferiów. Postanowiłem więc włączyć potrzebne mi peryferia tzn. DMA, DAC, ADC, timer TCC0 i system zdarzen. Chcę wykorzystac te peryferia do generowania...
Czy np. można wykorzystać kolejne wejścia DAC w mikrokontrolerze, dla ściągania danych pomiarowych z różnych zakresów w tej samej chwili? ATTINY i ATMEGA posiadają max jeden przetwornik ADC. 8 wejść oznacza że przetwornik może mierzyć napięcie na dowolnym z nich, ale wciąż tylko na jednym. XMEGA w niektórych odmianach posiada 2 przetworniki ADC, ale...
Teraz mam inny problem.... [syntax=basic4gl]$lib "xmega.lib" : $external _xmegafix_clear : $external _xmegafix_rol_r1014[/syntax] Przenieś na koniec kodu.
A konkretnie jaki masz problem? W Internecie jest parę opisów ADC dla XMEGA, możesz też ściągnąć przykłady do ksiażki "AVR. Układy peryferyjne" - tam masz kika przykładów konfiguracji ADC w XMEGA.
Nie można podać Vcc, gdyż przetwornik mierzy w zakresie (GND- ok. 0,15 V) do Vcc-0,6V. Jeśli zachodzi konieczność pomiaru napięć do Vcc, to należy wybrać konfigurację wzmacniacza przed ADC na wzmocnienie 1/2.
Jeśli używasz unsigned mode to offset jest normalną rzeczą w XMega. Dokonaj kalibracji przetwornika: 1. Podłącz jeden z wolnych pinów ADC do GND 2. Ustaw kanał ADC na ten pin i dokonaj kilku pomiarów uśredniając wynik 3. Zapamiętaj wartość z punktu 2 np w EEPROM'ie 4. Od każdego pomiaru odejmij wartość z kalibracji
Aby rozwiązać ten problem wystarczy przejrzeć notę MCU. Offset, który jest wprowadzany celowo, dla pomiaru napięć oniżej GND można usunąć, albo przez kalibrację - trzeba offset zmierzyć i go odejmować od pomiaru, albo wykorzystując tryb różnicowy ADC. W tym trybie wystarczy jedno z wejść (-) programowo podłączyć do GND i mamy pomiar bez ofsetu.
1.Mikrokontrolery AVR Duże uogólnienie. Atxmega to również AVR, a przetwornik jest 12 bitowy i znacząco szybszy. Dodatkowo znacznie dokładniejsze wbudowane źródło referencyjne (to w Atmegach to kpina jeśli chodzi o pomiary). W xmega można przetworniki "kalibrować". Jeśli chodzi o projekt to należałoby dopasować zakres mierzonych napięć do vref (i/lub...
Chodzi mi tutaj bardziej o samą nauke obsługi niż do praktyczego zastosowania. Zrobiłem taki program odbierając wynik w przerwaniach (3 przerwania = 1 wynik) ku mojemu zdziwieniu działa w miarę prawidłowo hehe. Lecz niekiedy zdarza się że wynik się rozjedzie o +/- 50 ale najczęściej zachodzi to po przestawieniu napięcia i stosunkowo rzadko. 1. Czy taki...
Witam, Poznając procki Xmega, chciałem spróbować swoich sił z przetwornikiem ADC w tym procku. Poza dziwnymi jego cechami, jak OFFSET od 200 (czasem od 170) wartości z przetwornika, zauważyłem, że wynik jest niestabilny na ostatnim miejscu i zmienia się ±3, co by przemawiało za szybkimi zmianami pierwszych 2 bitów LSB. Program mam taki: [syntax=c]...
W zasadzie to w między czasie rozwiązałem problem i działający kod wygląda tak: [syntax=c] void Timer_init() { PORTD_PIN1CTRL = PORT_ISC_BOTHEDGES_gc | PORT_OPC_PULLDOWN_gc;// Zbocza wywołują zdarzenia EVSYS_CH0MUX = EVSYS_CHMUX_PORTD_PIN1_gc; // Transmitowane przez kanał 0 TCC4.CTRLD = TC45_EVACT_PWF_gc | TC45_EVSEL_CH0_gc; // Kanał 0 wyzwala pomiar...
Z racji tego, że zostało mi 3 tygodnie, to przesiadka na ARMa mija się z celem, gdyż ich nie znam. Już wolę to wymęczyć na XMEGA i nie ryzykować. Buforował będę w pamięci NAND Flash 512MB w postaci dużego bufora cyklicznego. Zatem z 8 kanałów będę wykorzystywał 4 z prędkością 200kSPS. Co sprawi, ze ADC będzie obsługiwał zamiast 2 geofonów tylko 1. Też...
Witam Tak czułem, że Tomasz zaraz mnie zdzióbie - i słusznie. Dzięki za kopnięcie w d i ustawienie we właściwą stronę. Spędziłem kolejne dwa wieczorki z datasheet'ami i AS6 i zacząłem rozmawiać ze slave'em. Ale chyba nie do końca się ze slave'em rozumiemy. Albo oba moduły GY-68 są walnięte (0%) albo wciąż mam babola w kodzie (100%). Zanim zajmę się...
Proponuję użyć dowolnego uC z dwoma licznikami, ale niekoniecznie atmega8 ;) Pierwszy pracuje w trybie pomiaru częstotliwości lub pomiaru czasu (Input Capture). Drugi pracuje jako generator przebiegu wyjściowego, pędzony np. z zegara systemowego. Wartość zmierzona przez pierwszy licznik jest argumentem funkcji modyfikującej częstotliwość i/lub wypełnienie...
Raczej opcja 1 + dokładne prowadzenie mas, połączenie w jednym punkcie AGND i GND + rozlanie masy pod układem (w TQFP), mega filtrowanie, dławik na AVcc itd. Wzmacniacz i wejście analogowe max daleko od układów cyfrowych z bardzo dokładnie filtrowanym napięciem. Pamiętaj też, żeby na czas pomiaru ADC usypiać procesor i nie korzystać z IO cyfrowych na...
Dla mojego układu badałem na innym wzmacniaczu, dokładniej mcp6002. Wyniki były dosyć dokładne ale bez użycia wtórnika napięciowego. Teraz podłączając wtórnik niestety wyniki były tragiczne. Jeżeli chodzi o ADC to zakres wynosi 0...2V ze względu na ograniczenia ADC oraz łatwe obliczenia. Napięcie jest filtrowane programowo przez xmegę. A jak wygląda...
Witam, mam takie dwa pytania do xmegi: 1. Jaka jest maksymalna częstotliwość próbkowania przetwornika ADC w xmedze "XMEGA E MANUAL" ? W dokumentacji jest napisane że przy 12 bitach i pojedynczym pomiarze bez wzmocnienia maksymalna częstotliwość próbkowania wynosi 300k ksps co odpowiada okresowi równemu 3,3 uS Czy z tego można obliczyc maksymalną częstotliwość...
Problemem jest : ADCA_CTRLA =ADC_CH0START_bm; //start pomiaru które zeruje bit enable w tym rejestrze, w efekcie blokujesz ADC, więc pomiar nie może się zakończyć. Zapewne chciałeś dać |=.
BlueDraco - taktowanie timera nie jest problemem, nawet w XMEGA może to być 256 MHz, ba, nawet w zwykłym ATTiny może być to w granicach 100 MHz. Problemem jest to, że wejście jest synchroniczne i procesor musi mieć możliwość samplowania wejścia z tak dużą częstotliwością. Stąd też taktowanie IO musi być wysokie, a to pociąga konieczność albo pracy...
DAC łatwo można zrealizować przy pomocy PWM (jeśli pasmo nie jest jakimś szczególnym limitem). Z AVR DAC posiadają XMEGA, np. XMEGA 8E5, która jest w podobnej cenie do ATMega8.
Witam serdecznie kolegów. Mam problem z odczytem danych z MAX31865. Tu jest nota katalogowe: https://datasheets.maximintegrated.com/e... Jest to przetwornik A/D dedykowany do pomiaru temperatury za pomocą czujników rezystencyjnych (Pt100, Pt1000) Zachowanie programu jest bardzo dziwne ponieważ odczytywane dane (zarówno LSB jak i MSB) są...
Rozumiem. Zagłębiając się w temat znalazłem funkcję liczącą CRC w bibliotece na arduino do tego czujnika. Dowiedziałem się też, że jest biblioteka o nazwie crc16.h w katalogu util . Pierwotnie chciałem z niej korzystać, ale wymaga argumentów 8-bitowych, a z tego, co zrozumiałem z datasheet'a czujnika i patrząc na funkcję z biblioteki arduino muszę zlepić...
Nie znam C , lepiej poczekaj jak wypowie się TMF ....mam nadzieje że twój projekt nie jest od mierzenia 3,2V na adc bezpośrednio . Uszkodzić to raczej nie uszkodzisz (ale max napięcie to vcc-0,6v). Pomiar bez wykrycia "0" to robiłem w konfiguracji - Signed Single_ended.
Witam, próbuje zrobić pomiar napięcia z przetwornikiem ADC w mikrokontrolerze XMEGA - atxmega128A3U. Pomiar napięcia ma się odbywać w przerwaniach od ukończenia konwersji. Niestety przetwornik nie reaguje na mój program tzn. wartość wyświetlana na wyświetlaczu LCD cały czas = 0. Czy robie coś źle w konfiguracji ? czy w czym może być problem? [syntax=c]#define...
Nie jest błedne, tylko niewiele zmienia. W dodatku ma sens to rozważać wyłącznie w przypadku ultraprecyzyjnych poiarów ADC o których autor nie wspominał. Tak naprawdę to AVCC można spokojnie zewrzeć z Vcc, a dla superdokładnych pomiarów po prostu usypiać MCU. Skuteczniejsze niż magia z filtrami na zasilaniu...
Przeczytaj jeszcze raz przytoczony cytat i zastanów się czy użyta XMEGA posiada rejestry OFFSETCORR, a nawet jeśli, to czy ich używasz? Rejestry CAL odpowiadają za kalibrację nieliniowości ADC. To zupełnie coś innego. Warto też przeczytać cały rodział o ADC - w XMEGA producent celowo wprowadza ofset, aby możliwy był pomiar niewielkich napięć ujemnych,...
Popatrz na atxmegę, też na nią przeszedłem i jest to nowa jakość, peryferii full, zegar łatwo ustawić, fuse bity nie straszą, 3 poziomy przerwań, timerów full no i eventy, na tym można cuda robić. Ale Xmega, w stosunku do ARM są drogie i mają mało RAM. Nadal to 8-bit przez co trzeba walczyć z atomowym dostępem do zmiennych 16 czy 32-bit. Nie ma też...
Witam, Chciałem zrobić układ pomiarowy z prockiem Xmega, który mierzyłby napięcia z zakresu 0-10V w miarę dokładnie. Chodzi mi o warstwę fizyczną, jak podłączyć dzielnik, by uniknąć offsetu 0,5V? Chodzi o pomiar w całym zakresie 0-4095ADC. Na podstawie informacji z netu, narysowałem taki koncepcyjny schemat, tylko nie wiem, czy dobrze?
Myślałem że mierzysz napięci baterii - a wtedy masz jakiś układ zewn (np dzielnik rezystorowy). Przy okazji signed czy unsigned mode Owszem, mierzę napięcie baterii, ale xmega ma możliwość ustawiania multipleksera na pomiar parametrów peryferiów: napięcia zasilania i temperatury. W przypadku pomiaru napięcia zasilania ADC mierzy Vcc/10, a źródło napięcia...
Kod, który został napisany na Atmegę328 to ten z pierwszego listingu z pierwszego postu. Ja chcę osiągnąć to samo na XMEGA128A3 i wszelkie nowe kody jakie piszę i wysyłam są właśnie pisane na Xmegę. W poprzednim swoim poście przytoczyłem fragment kodu na atmegę, gdyż go nie rozumiem, a muszę zrozumieć wszystko żeby przepisać na xmegę. No i zgadza się,...
Tak, zmienne domyślnie zapisywane są w SRAM, lecz dodanie zewnętrznej pamięci wymusi pewne zmiany w ustawieniach linkera - musisz go poinformować, że masz pamięci więcej. O ile oczywiście chcesz, aby zmienne były tam automatycznie rozmieszczane. Jeśli obsługa tej pamięci będzie całkowicie po twojej stronie to nic nie trzeba zmieniać. W XMEGA prawdopodobnie...
Odczytaj 12-bitową wartość i podaj na forum. Wstaw też przy pomiarze kod inicujący ADC, żeby było wiadomo jak on jest skonfigurowany.
Cześć wszystkim :) Zdaję sobie sprawę, że temat trochę już oklepany, ale zauważyłem, że każdy ma inny problem z tym PIDem :) Otóż muszę (do jutra wieczór) zaimplementować regulację prędkości obrotowej regulatorem PID dwóch silników DC (Dagu DG01D). Każdy z silników jest wyposażony w enkoder w postaci hallotronu. Na wale silnika osadzony jest magnes...
AT90PWMx - Produkt w fazie zakończenia produkcji. Nie ma sensu w to inwestować. ATTiny26 - zupełnie bez sensu jeśli idzie o falowniki. Praktycznie żadnego zysku względem mega88. ATXMEGAxx - od biedy może być do nauki. Ale pamiętaj o upierdliwości ADC w trybie single ended (offset), braku synchronizacji pracy liczników z jedną podstawą czasu, pomiar...
kmmepl , mam miernik umożliwiający pomiar tak małych prądów, słynny BUZ-830 ma rozdzielczości 1uA, MY68 ma rozdzielczości 100nA a UT61E ma rozdzielczości aż10nA na najniższym zakresie. Sprawdzałem wszystkimi trzema bo aż sam nie chciałem wierzyć w pobór prądu poniżej 1uA w uśpieniu. Oddzielna sprawa to wybitnie impulsowy pobór prądu generowany przez...
W przypadku szyfrowania, np. AES, ważniejsze niż rozmiar jest poprawne napisanie tych funkcji, tak, aby nie dało się odzyskać klucza poprzez np. banalny pomiar prądu MCU. Np. w XMEGA tak skopali sprzętowo blok kryptograficzny, że odzyskanie klucza jest możliwe w ciągu kilku minut przy pomocy amperomierza/oscyloskopu. Oczywiście masz rację ale w pewnych...
No tak, nie zawsze jest to potrzebne, ale tak jak wspomniałem nic nie kosztuje. Niemniej jednak chodziło mi o ogólną zasadę a nie typowo pomiar temperatury, tutaj wykorzystany tylko jako przykład ideii. Bardziej praktyczne może to być przy pomiarze napięć. Wówczas, mając przetwornik 10bit, dodatkowe bity z oversamplingu mogą być przydatne, bo możemy...
O ile dorze rozumiem idee tego przerwania (nie miałem okazji wykorzystać go w praktyce) to określona zmiana na którymkolwiek pinie z grupy wywołuje przerwanie... i teraz myślałem, żeby za pomocą prostych warunków zliczać, który wywołał i ile w danym czasie. Problem widzę w momencie, gdy przykładowo czujnik A wywoła przerwanie w bardzo krótkim czasie...
Tak, jak ci pisałem, najprościej pobrać przykłady do moich książek - są za darmo. Generalnie może być tryb różnicowy (na XMEGA ze względu na offset w trybie z pojedynczym wejściem) jest to wygodniejsze. Jako pin ujemny wybierasz po prostu GND.
Witam , Po dłuższej przerwie próbuję się przeprosić z AVR-ami , przechodząc jednocześnie do XMega, zadanie jest proste - pomiar obrotów z wejścia PC0 . 1. Timer TCC1 - odmierza czas 100us 2. Timer TCC0 - używa przepełnień TCC1 jako zegara , strobem do pomiaru okresu / "częstotliwości" jest routowany sygnał z PC0 3. Flaga TCC0_CCA ma być z kolei wyzwalaczem...
Nie ma 5 kanału przetwornika ADC w XMEGA...masz do dyspozycji 4 kanały od CH0 do CH3. Z resztą powyższy komunikat właśnie to Ci sygnalizuje. Napięcie możesz mierzyć na 16 WEJŚCIACH a nie KANAŁACH.
Witam, chciałbym zrobić ograniczenie prądowe z użyciem wewnętrznego komparatora mikrokontrolera XMEGA. Do wejścia nieodwracającego podpięty będzie rezystor bocznikowy na którym będzie mierzony prąd poprzez pomiar napięcia a na wyjściu odwracającym będzie podłączony wewnętrznie przetwornik DAC. Dzięki nastawie będzie można regulować wartość ograniczenia...
Mogłeś wziąć XMEGA E5, która ma sprzętowe uśrednianie. Spróbuj podłączyć zewnętrzne nap. referencyjne. Ważny jest też projekt PCB - w końcu mamy 12-bitowe ADC, szum 1 LSB to jak pisałem zaledwie 244 mikrowolty dla ref. 1 V. Można też spróbować użyć większego nap. referencyjnego i zmniejszyć dzielnik. Szumu ADC to nie zmniejszy, ale szumy z zewnątrz...
Z AVR 12-bitowe ADC mają np. XMEGA. AVR ATMega z Arduino mają max 10-bitowe ADC. Stosując oversampling zapewne uzyskasz potrzebną rozdzielczość pomiaru. Pamiętaj tylko, aby użyć zewnętrznego źródła referencyjnego, gdyż potrzebujesz nie tylko dużej rozdzielczości ale także dokładności pomiaru. Swoją drogą, do kontroli ładowania lipo produkowane są dedykowane...
Sygnał "Power on" jest źle zrealizowany. Mikrokontroler będzie zasilany pasożytniczo przez R4, a Q1 będzie cały czas przewodzić. Lepiej wywal to i wykorzystaj pin CE w układzie AP1609. Kolejne pasożytnicze zasilanie to sygnał VBAT. Duży miszmasz na zasilaniu. Mikrokontroler zasilasz niby 3V6, a przyciski i enkodery podpiąłeś pod 5V. Z tego co widzę...
No właśnie, przy takich pomiarach przydają się niezależne ADC, co prawda można szybko multipleksować, wtedy tracimy na paśmie, ale dla 50 Hz nie ma problemu. BTW, nie myślałeś, żeby zamiast M32 wykorzystać np. jakąś XMEGA? Masz tam 2xADC z pipeline i skanowaniem wejść + DMA do transferów, co znacznie odciąża procka. Ale oczywiście ATMega temu swobodnie...
Mało wiesz panie kolego. Profesjonalne oscyloskopy mają pasmo do połowy częstotliwości próbkowania i wcale nie są to 2 próbki w okresie połączone liniami ale składa się na to szereg skomplikowanych obliczeń a cała procedura nazywa się interpolacją. W moim następnym oscyloskopie spróbuję takie coś właśnie zastosować, będzie on na XMega ale do tego jeszcze...
Witam Od pewnego czasu walczę z uruchomieniem ADC w Xmega 128D4 na zbudowanej płytce. Napisałem poniższy kod [syntax=c][/syntax] #include "PMSM.h" void Config32MHzClock(void) { CCP = CCP_IOREG_gc; //Security Signature to modify clock // initialize clock source to be 32MHz internal oscillator (no PLL) OSC.CTRL |= OSC_RC32MEN_bm; // enable 32MHz oscillators...
ad 2. Nie możesz. Dla każdego procesora Vref ma określoną, minimalną wartość, zwykle jest to nie mniej niż 1,1-2,4V. Co więcej ze względu na budowę ADC w ATMega rozdzielczości lepszej niż 2mV bezpośrednio nie uzyskasz. ad 3. Oczywiście wprowadzi, w nocie jest to nawet określone. Dla 10-bitowego ADC zastosowanie wzmacniacza powoduje utratę około 2 bitów....
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...
http://obrazki.elektroda.pl/4730371500_1... XM-scope 3 - miniaturowy 2-kanałowy oscyloskop cyfrowy dla każdego. Witam. Przedstawiam dziś kolejną, trzecią już wersję oscyloskopu cyfrowego na procesorze z rodziny AVR. Tym razem urządzenie jest bardziej rozbudowane, dodane jest wiele ciekawych i przydatnych funkcji oraz przede wszystkim dodających...
Może zamiast prostej krytyki jakieś propozycje co w takim układzie można w miarę prosto poprawić, Wywalić Mega8 użyć uC z DAC 12-bit (Xmega, ARM). Wzmacniacz operacyjny do pomiaru poboru prądu jeśli już ma być tanio bo lepszy byłby np INA219. dodanie przełącznika odczepów w tym przypadku ograniczyłoby w prosty sposób moc strat. Lepiej dać wstępny stabilizator...
https://obrazki.elektroda.pl/3227491500_... https://filmy.elektroda.pl/98_1514068986... Właściwie mamy już Święta i świąteczny konkurs w DIY. A w nim sporo konstrukcji opartych na programowalnych diodach WS2812B. Stąd też, aby ułatwić innym realizację świątecznych projektów oświetleniowych, postanowiłem podzielić się rozwiązaniem...
Co do rozdzielczości temperatury 0.1st jest to wykonalne jednak nie na popularnych czujnikach bo ich błąd pomiarowy to ok 0.5st. Rozdzielczość a dokładność to dwie różne sprawy. Kolega pożąda rozdzielczości 0,1 stopnia, co jest możliwe do osiągnięcia i na LM35 i na DS18B20. Dokładności lepszej niż 0,5 stopnia tymi czujnikami nie osiągnie, chyba, że...
https://obrazki.elektroda.pl/9764011400_... Witam, Chciałbym przedstawić moja amatorską konstrukcję która miała mi służyć jako wypełnienie czasu wolnego (żaden ze mnie elektronik czy informatyk ale to chyba widać;) ). Jakiś czas temu zaczęły mnie interesować różne czujniki parametrów fizycznych i nie tylko które można było dostać za...
Mam pewien kłopot z uzyskaniem wartości zerowej z przetwornika ADC (Xmega). Inicjuję przetwornik: [syntax=c] void AdcInit(void) { ADCA.PRESCALER = 0X02; ADCA.REFCTRL = 0b00000000; ADCA.CTRLB = 0b00001000; ADCA.CTRLA = 0b00000001; ADCA.CH0.MUXCTRL = 0b00001000; ADCA.CH0.CTRL = 0b00000001; } // pomiar wartosci z ADC Pomiar = (ADCA.CH0RESL); Pomiar |=...
A i B są poprawne :) Odnośnie jeszcze punku B. Powinieneś mierzyć szerokość impuslu, czyli czas od zbocza narastającego do opadającego. Ponieważ ATMega tego nie potrafi robić całkowicie sprzętowo, więc zostaje punkt A. Szerokość sprzętowo może mierzyć dopiero XMEGA. Można też czasy pomiędzy kolejnymi zboczami opadającymi, ale wtedy trzeba zadbać o to,...
Witam serdecznie, Tło Zajmuję się uruchomieniami dużych maszyn i w pracy często sprawdzam znaczne ilości wszelkiej maści sygnałów (600-700 na w jednej maszynie). Dotychczas do tego celu używałem oddzielnego multimetru, kalibratora oraz komunikatora HART, jednocześnie posługując się dokumentacją papierową. By usprawnić sobie pracę i odciążyć plecy postanowiłem...
Oto moje odpowiedzi. Odnoszę się tylko do układów z rodziny STM32F4xx, ponieważ nie wiem nic o LPC, Kinetis czy układach od Renesas. Powiedzmy, że wyjście TxD UART chcę zmodulować przebiegiem z timera? Nie robiłem nic takiego, bo nie widzę w tym większego sensu, ale do wyboru jest SIR encoder (kompatybilny z IrDA) albo zewnętrzne bramkowanie timera...
Mam jeszcze kilka pytań: 1. W Destination wpisujemy tylko nazwę zmiennej tablicowej, czy jest tam autoinkrementacja?Skąd wiadomo, która zmienna zawiera dane z którego pomiaru? 2. Nie mogę dostać się do rejestru SCAN. Kompilator zgłasza błąd, że wyrażenie "SCAN" nie jest członkiem (not a member) grupy ADCA, czy coś takiego.Patrzałem na przykłady na internecie,...
Generalnie offsetu nie ma w trybie różnicowym. W pozostałych można go eliminować przez pomiar poziomu masy, niemniej trzeba się liczyć z tym, że ponieważ wewnątrz ukadu jest generowane napięcie offsetu to będzie ono lekko pływać (kilka LSB, szczegóły w nocie). Oczywiście można włączyć ADC w trybie skanowania wejść, przy czym najlepiej połączyć to z...
Zupełnie nie rozumiem Twojej metody. Chyba każda Xmega powinna załatwić sprawę ze względu na sprzętowe wsparcie w dekodowaniu sygnałów z enkoderów. Prędkość nie będzie tutaj problemem. Nic też nie stoi na przeszkodzie, aby to zrobić w oparciu o ARM albo PIC. Wszystko zależy od tego jakie masz pozostałe wymagania.
Aha czyli ma być 100kSPS. No to mi się wydaje, że XMega by była dobra. Według Atmela może wyciągnąć 4 MPS z 12 bitową rozdzielczością. Cenowo też jest chyba ok. No jak to mają być jakieś cewki z silnymi polami to faktycznie hallotron może się nie sprawdzić. Chyba, że ten element napędzany byłby dostatecznie długi, tak żeby pola nie były już wyczuwalne...
Weź pod uwagę, że przy 100 kHz i taktowaniu ATMega128 równym 16 MHz, na jeden okres sygnałju badanego przypada zaledwie 160 taktów zegara. A więc rozdzielczość z jaką będziesz mierzył sygnał jest mocno ograniczona. Oczywiście jeśli interesuje cię pomiar szerokości impulsów. Druga sprawa - w jaki sposób planujecie wysyłać po RS te dane? Bo jeśli masz...
Witam Nie chcę zakładać nowego wątku, więc piszę tutaj, bo problem podobny, choć nie do końca. Piszę program na procek XMega, który realizuje wiele rzeczy, a z istotnych tutaj steruje silnikiem krokowym i odczytuje temperaturę z DS18B20. Sterowanie silnikiem oparte jest na przerwaniu timera, w Którym wykonywany jest jeden krok, oraz określane jest opóźnienie...
Zbyt optymistycznie podszedłem do tych wykresów, ... Nie spotkałem jeszcze przypadku, by parametry znacząco odbiegały od stanu faktycznego przynajmniej w przypadku AVR i PIC. Różnice były minimalne i zgodne z zastosowaną metodą pomiarową i błędem multimetru. Na przykład w PIC18F67K90 pomiar w najgłębszym śnie pokazywał około 22nA, przy katalogowym...
Przy wszechobecnych smartfonach z GPS projekt ma cel jedynie dydaktyczny. https://obrazki.elektroda.pl/8137009600_... https://obrazki.elektroda.pl/1112682000_... https://obrazki.elektroda.pl/8424355600_... https://obrazki.elektroda.pl/6842364000_... https://obrazki.elektroda.pl/7046695700_...
Witam. Pięknie Panowie piszecie. Przypuszczam że większość z was naukę zaczynało na 8051 lub AVR. Teraz jak już opanowaliście do perfekcji C i zdobyliście bardzo duże doświadczenie w programowaniu to nie macie problemu ze zmianą procesora w zależności od potrzeb projektu. Tylko że w starym AVR aby ustawić port wystarczą dwie lub trzy komendy i już można...
Chciałbym wykonywać pomiary ADC na PortA (PIN2 - Positive, PIN4 - Negative) w trybie free run (tak chyba jestem w stanie osiągnąć najwięcej próbek?) i otrzymać wynik w przerwaniu jednak nie wykonuje się przerwanie. Czy mogę prosić o sprawdzenie? Oto kod: [syntax=c] #include <avr/interrupt.h> #include <asf.h> #include "conf_usb.h" static...
Podobnie jak moim skromnym zdaniem jest pomyłką zmiana MCU, środowiska, posiadanych programatorów tylko po to, żeby zrealizować projekt, który wg autora da się zrealizować na nieco szybszym AVR. Oczywiście przetaktowanie ATMega128 na 30 MHz można między bajki włożyć, nawet jeśli odpali to nie wiadomo jak ze stabilnością. Ale XMEGA działa nominalnie...
Albo napisać coś inteligentniej i nawet na 8bit AVR będzie działać Pewnych problemów nie rozwiąże nawet najlepszy soft. To czego najczęściej brakowało mi w AVR to DMA i RAM. Problem rozwiązałby Xmega ale one są najczęściej droższe od dużo lepiej wyposażonych ARM i dużo wolniejsze przy tym samym zegarze (tak ok 7 razy). Jak już miałem uczyć się obsługi...
Bez przesady - LM331 wystarczy uzupełnić 2..3 rezystorami i 1..2 kondensatorami. Do tego transoptor z rezystorem i jakaś przetworniczka lub isoPower. Dlatego nie ma mowy o żadnych potencjometrach! Rezystory i kondensator powinny być stałe, stabilne, niekoniecznie precyzyjne. Chociaż zwykle są to parametry ze sobą związane... 10kHz - spokojnie programowo....
Temperaturę wnętrza to akurat zmierzysz bo Xmegi mają opcję jej pomiaru. Jeśli chodzi Ci ona 64MHz/3V3 to na pewno nie będzie problemów z 64MHz/3V6. Po za tym wciąż nie rozumiem Ciebie... raz piszesz o hobby a teraz piszesz, że nie możesz zagwarantować powtarzalności... Albo myślisz o komercyjnym projekcie albo nie :D Zdecyduj się ;) Przypomniało mi...
Jeszcze co do ad.2: przebieg 5MHz da się zmierzyć ale będzie musiał mieć wypełnienie możliwie zbliżone do 50%. A przetwornik ADC tutaj to raczej nietrafiony jest :D Jeżeli amplituda przebiegu będzie mniejsza od VCC procesora to trzeba aby raczej użyć komparatora. Ale raczej zewnętrznego bo ten wewnętrzny będzie: po 1: za wolny po 2: jego wyjście chyba...
Jak w temacie, mam taki kod, ma za zadanie wyświetlić wynik w 8bit, gdy kliknę w przycisk to z danego pinu Xmega, albo z innego pinu. Niestety gdy kliknę raz w jeden to pokaże prawidłowo, potem z drugiego też, ale potem już nie zmienia tych ustawień. Jest to niezbędne bo co jak jeden woltomierz będzie pokazywał to samo co inny który miał pokazać inny...
Czy komunikacja poprzez RS485 bez izolacji galwanicznej w takim układzie nie sprawia problemów? Bez problemów, RS485 toleruje napięcie wspólne do o ile pamiętam 12V. Poza tym układy na szynie mają wspólną masę, więc tym bardziej nie powinno być problemów. IMHO w znakomitej większości przypadków RS485 separacji nie wymaga. Czy zdradzi kolega tajemnicę...
Mam już napisany w dużej mierze program w asemblerze pod mikrokontroler Atmega16. Xmega to inna architektura i robienie wszystkiego od nowa. Przetwornik A/C 10-bit to dość mało. Wykorzystując wewnętrzny komparator i wzmacniacz odejmujący dodałem jeden bit, ale to i tak za mało. Dobry jest MCP3302, bo ma 13-bit, ale interfejs to SPI. Piny SPI mam już...
No - jeżeli będziemy na granicy bitów to nie unikniemy przeskakiwania na plus - ale na minus wtedy będzie najtrudniej przeskoczyć - No tak, albo odwrotnie :) Tobie chodziło zapewne o dokładność przetwornika. Przetwornik o rozdzielczości n bit ma dokładność n bitową dopiero, gdy bezwzględny błąd przetwarzania jest mniejszy niż +-0,5LSB. Z mikroprocesorów...
(at)KJ Ale do trybu różnicowego nie potrzebujesz żadnych dodatkowych pinów. To tylko zmiana konfiguracji ADC, wybierasz tryb różnicowy z wewnętrznym napięciem odniesienia. Możesz też wykorzystać klasyczny tryb, tylko wprowadzić ADC w tryb signed, dzięki czemu masz co prawda tylko 11 bitów, ale od zera, a nie od ofsetu -150mV. Dodano po 22 Wracając...
Z tego co się orientuję, PWM polega na cyklicznym włączaniu i wyłączaniu przepływu prądu w obwodzie. Jeżeli do pomiaru prądu używasz rezystora pomiarowego, szeregowego (shunt), to prąd płynący przez ten rezystor ma charakter tętniący. Co więcej, napięcie mierzone na zaciskach tego rezystora również będzie tętniło, proporcjonalnie do prądu, z taką samą...
Szanowni koledzy tmf oraz leonow32; Bardzo zaintrygowała mnie możliwość mierzenia ADC poniżej napiecia zasilania, gdyż pierwszy raz w życiu z taką magią się spotkałem i trochę poszperałem po internecie i niestety kupa, praktycznie nic konkretnego nie ma. Więc postanowiłem sprawdzić orgnoleptycznie jak to faktycznie działa. Moim miernikiem był RIGOL...
W BLDC? Same komplikacje. Potrzebujesz: - 3 półmostki H do sterowania, wygenerować sterujący przebieg PWM, kolejne kroki komutacji i komplementarne przebiegi sterujące górnym i dolnym tranzystorem mostka z czasem martwym - musisz jakoś określać bieżącą pozycję wirnika - albo w tym celu stosuje sie czujniki Halla, albo detekcję na zasadzie pomiaru BEMF...
Tutaj masz zestaw procedur dla RFM70(73) w asm na Xmega256A3BU :) Napisałem to kiedyś do testów dla kolegi. Do Xplain128A1/256A3BU czy innego możesz podłączyć 2 identyczne moduły i jeden z nich robi za mastera, drugi jest slave. Proces komunikacji jest na przerwaniach, więc w pętli głównej albo śpisz, albo obrabiasz otrzymane dane. Tutaj chodziło o...
Witam. Jestem w trakcie rozbudowy bardzo amatorskiej stacji pogodowej. Do tej pory jednostkę zewnętrzną z mikrokontrolerem xmega zasilałem baterią litową 3,6 V spokojnie wystarczało mi to na kilkanaście miesięcy. Planuję jednak rozbudowę o kolejny czujnik, który wymaga zasilania 5 V (4,5 - 5,5) i bierze impulsowo do 100 mA (poza pomiarem, w uśpieniu...
Pokaż proponowany kod. Chodzi mi o moją funkcję regulacji, regulatora PI, w przetwornicy impulsowej. Czy można tutaj może coś lepiej zrobić? (mikrokontroler XMEGA) [syntax=csharp]/*Funcja regulacji przetwornicy*/ ISR(TCC5_OVF_vect) { int16_t wartosc_rzeczywista; //Wartość rzeczywista int16_t error; //Uchyba pomiaru static int16_t integral; //Część...
pomiar częstotliwości xmega xmega pomiar napięcia pomiar częstotliwość xmega
pułapka basowa regulacja silniczków pendrive zniknął
przewód hamulcowy długość przewód hamulcowy
Dump BIOS tabletu Lenovo K3011W - jak to zrobić? Regulacja drzwi chłodziarki: jak to zrobić?