Dobór mikrokontrolera do projektu
- pimowo
- Posty: 392
- Rejestracja: 28 maja 2016, 10:07
Dobór mikrokontrolera do projektu
Hej,
Wielu z Was ma ogromne doświadczenie z mikrokontrolerami, a Kolega Bartek to już chyba wszystkie możliwe AVR programował
Chciałbym się Was poradzić w którą stronę pójść, co wybrać do dość dużego projektu - od dość dawna marzy mi się sterownik do akwarium, ale wiedza mizerna i dlatego co jakiś czas Was męczę różnymi pytaniami na forum - prawie wszystkie moje tematy to kawałki przyszłego, wymarzonego sterownika. Wolałbym już na samego początku wybrać konkretny sprzęt, aby móc w międzyczasie projektować PCB
Do rzeczy...
Myślałem, że ATmega2560 była by OK, ale czasami oglądając różne projekty można też spotkać ATXmega no i tu rodzi się pytanie... Pozostać przy ATmega2560 czy może jednak ATXmega będzie lepszym wyborem? Jeżeli ATXmega to która wersja i jaki programator? Cena uC nie jest aż taka ważna (w ramach rozsądku) ponieważ docelowo będę budował dwa takie sterowniki.
Na tą chwilę chciałbym pod uC podłączyć:
- 1x RTC DS3231
- 1x LCD ILI9341 (SPI)(3V3)
- sterowanie to miały być przyciski, ale kupiłem przez pomyłkę LCD z ekranem dotykowym i udało mi się go uruchomić, ale nie pasuje mi takie sterowanie i stwierdziłem, że będą przyciski, ale znów z drugiej strony... może impulsator? I chyba impulsator z przyciskiem będzie najlepszym wyborem (chyba 3 piny uC)
- 4x termometr DS18B20 (1-wire)(3V3)
- 1x HTU21d (lub coś podobnego) aby móc odczytywać temperaturę i wilgotność w okolicy akwarium (I2C)(3V3)
- 16x przekaźnik/triak do sterowania włącz/wyłącz różnych rzeczy (16 pinów uC)
- 1x czujnik przepływu wody (przerwanie zewnętrzne)(5-24V)
- 1x falownik do pompy akwarium - sterowanie obrotami - tu będę potrzebował PWM, ale w ATXmega jest DAC
- 8x pompa perystaltyczna (8 pinów uC lub też można by dodać jakiś moduł rozszerzeń I2C np. PCF8574)
- 2x czujnik poziomu wody (2 piny uC)
- 1x czujnik zalania (1 pin uC)
- 1x grzałka (PWM)
- 1x odczyt pH (ADC)
- 1x odczyt TDS (ADC)
- 1x czujnik ciśnienia butli CO2 (ADC)
- 1x PCA9685 sterowanie lampy LED (I2C)(5V)
- 1x komunikacja z PC/programowanie (USART)
- 1x Bluetooth HC-05 (USART)(3V3)
- 1x WiFi ESP8266 (USART)(3V3)
- 1x GSM - prawdopodobnie SIM800 (USART)(3V3)
Tak już lecieć dalej to:
- pomiar prądu 230VAC ile całe akwarium pobiera z gniazdka
- pomiar prądu 12-36VDC na 16 liniach na jaką moc każdy kanał w lampie jest ustawiony - teraz wiem tylko tyle, że ustawiłem PWM na np 1 kanale 127
I to chyba tyle, może (oby) kiedyś uda się zrealizować projekt, ale pomału do przodu
Wielu z Was ma ogromne doświadczenie z mikrokontrolerami, a Kolega Bartek to już chyba wszystkie możliwe AVR programował
Chciałbym się Was poradzić w którą stronę pójść, co wybrać do dość dużego projektu - od dość dawna marzy mi się sterownik do akwarium, ale wiedza mizerna i dlatego co jakiś czas Was męczę różnymi pytaniami na forum - prawie wszystkie moje tematy to kawałki przyszłego, wymarzonego sterownika. Wolałbym już na samego początku wybrać konkretny sprzęt, aby móc w międzyczasie projektować PCB
Do rzeczy...
Myślałem, że ATmega2560 była by OK, ale czasami oglądając różne projekty można też spotkać ATXmega no i tu rodzi się pytanie... Pozostać przy ATmega2560 czy może jednak ATXmega będzie lepszym wyborem? Jeżeli ATXmega to która wersja i jaki programator? Cena uC nie jest aż taka ważna (w ramach rozsądku) ponieważ docelowo będę budował dwa takie sterowniki.
Na tą chwilę chciałbym pod uC podłączyć:
- 1x RTC DS3231
- 1x LCD ILI9341 (SPI)(3V3)
- sterowanie to miały być przyciski, ale kupiłem przez pomyłkę LCD z ekranem dotykowym i udało mi się go uruchomić, ale nie pasuje mi takie sterowanie i stwierdziłem, że będą przyciski, ale znów z drugiej strony... może impulsator? I chyba impulsator z przyciskiem będzie najlepszym wyborem (chyba 3 piny uC)
- 4x termometr DS18B20 (1-wire)(3V3)
- 1x HTU21d (lub coś podobnego) aby móc odczytywać temperaturę i wilgotność w okolicy akwarium (I2C)(3V3)
- 16x przekaźnik/triak do sterowania włącz/wyłącz różnych rzeczy (16 pinów uC)
- 1x czujnik przepływu wody (przerwanie zewnętrzne)(5-24V)
- 1x falownik do pompy akwarium - sterowanie obrotami - tu będę potrzebował PWM, ale w ATXmega jest DAC
- 8x pompa perystaltyczna (8 pinów uC lub też można by dodać jakiś moduł rozszerzeń I2C np. PCF8574)
- 2x czujnik poziomu wody (2 piny uC)
- 1x czujnik zalania (1 pin uC)
- 1x grzałka (PWM)
- 1x odczyt pH (ADC)
- 1x odczyt TDS (ADC)
- 1x czujnik ciśnienia butli CO2 (ADC)
- 1x PCA9685 sterowanie lampy LED (I2C)(5V)
- 1x komunikacja z PC/programowanie (USART)
- 1x Bluetooth HC-05 (USART)(3V3)
- 1x WiFi ESP8266 (USART)(3V3)
- 1x GSM - prawdopodobnie SIM800 (USART)(3V3)
Tak już lecieć dalej to:
- pomiar prądu 230VAC ile całe akwarium pobiera z gniazdka
- pomiar prądu 12-36VDC na 16 liniach na jaką moc każdy kanał w lampie jest ustawiony - teraz wiem tylko tyle, że ustawiłem PWM na np 1 kanale 127
I to chyba tyle, może (oby) kiedyś uda się zrealizować projekt, ale pomału do przodu
- niveasoft
- Posty: 1216
- Rejestracja: 17 sie 2015, 12:13
- Kontakt:
Re: Dobór mikrokontrolera do projektu
Taki projekt bez problemu uciągnie Mega2560 z czterema USART`ami, ale na Xmega obsługa wyswietlacza będzie wygladała płynniej.
Xmegi to fajne procki i nie ma się co ich bać. Jedyne co trzeba mieć to przynajmniej programator MKII bo nie wyobrazam sobie obsługiwać to USBasp czy nawet wbudowanym Bootloaderem FLIP.
Taka Xmega ma po dwa porty COM na każdym z portów a ma ich czasem kilka. Największe sa chyba serie A a potem im wyższa litera tym to mniejsze.
Ogólnie to pewnie niejedną rzecz Atmel tam *****, ale miało też być tak, że poznajesz jedną architekturę i niby znasz całą rodzinę a okazało się że jak poznałeś serię A to seria E5 wymaga zupełnie nowych nakładów czytania Miało być pięknie a wyszło jak zawsze, ale bardzo lubię Xmegi bo pozwalają na większa elastyczność. Sama prędkość to nie wszystko. Można dużo przyspieszyć wykorzystując sprzętowe dodatki takie jak DMA.
Np. DMA to taki traktorek to wysyłania. Chcesz coś narysować na LCD z karty SD to odpalasz jedno DMA żeby czytało kartę a drugie żeby to wysyłało po SPI do LCD no a procek tylko to inicjuje a potem robi coś innego..a obrazek wczyta sie sam
..a czasem masz cztery DMA do dyspozycji.. odpalasz i zapominasz.
Xmegi to fajne procki i nie ma się co ich bać. Jedyne co trzeba mieć to przynajmniej programator MKII bo nie wyobrazam sobie obsługiwać to USBasp czy nawet wbudowanym Bootloaderem FLIP.
Taka Xmega ma po dwa porty COM na każdym z portów a ma ich czasem kilka. Największe sa chyba serie A a potem im wyższa litera tym to mniejsze.
Ogólnie to pewnie niejedną rzecz Atmel tam *****, ale miało też być tak, że poznajesz jedną architekturę i niby znasz całą rodzinę a okazało się że jak poznałeś serię A to seria E5 wymaga zupełnie nowych nakładów czytania Miało być pięknie a wyszło jak zawsze, ale bardzo lubię Xmegi bo pozwalają na większa elastyczność. Sama prędkość to nie wszystko. Można dużo przyspieszyć wykorzystując sprzętowe dodatki takie jak DMA.
Np. DMA to taki traktorek to wysyłania. Chcesz coś narysować na LCD z karty SD to odpalasz jedno DMA żeby czytało kartę a drugie żeby to wysyłało po SPI do LCD no a procek tylko to inicjuje a potem robi coś innego..a obrazek wczyta sie sam
..a czasem masz cztery DMA do dyspozycji.. odpalasz i zapominasz.
- Pikczu
- Posty: 390
- Rejestracja: 17 sie 2015, 13:46
- Lokalizacja: Dublin, Ireland
- Kontakt:
Re: Dobór mikrokontrolera do projektu
Jeśli zrobisz prosty podział na napięcie zasilania to większość twoich peryferyjnych układów chodzi na 3.3V.
To mim zdaniem już jest wystarczająco dobry powód żeby użyć Xmegi.
Ceną nie ma się co sugerować, nie kupujesz tego co dzień.
Plusy:
bardzo bogate peryferia SPI, I2C, USB itd
Na przykład do 8 uartów (ATXmega128A3u)
Wbudowana obsługa enkoderów (przykład na forum )
Banalna obsługa timerów i PWM
Eventy - to jest troszkę powalone ale jak się ogarnie to nawet lepsze jak starego typu przerwania.
DMA- to jest gigantyczny plus można przesyłać dane w tle.
Minusy:
Skopany na maksa ADC
Przyda się nowy programator najlepiej z PDI żeby był na przyszłość (np atmel ICE).
Więcej minusów moim zdaniem brak.
To mim zdaniem już jest wystarczająco dobry powód żeby użyć Xmegi.
Ceną nie ma się co sugerować, nie kupujesz tego co dzień.
Plusy:
bardzo bogate peryferia SPI, I2C, USB itd
Na przykład do 8 uartów (ATXmega128A3u)
Wbudowana obsługa enkoderów (przykład na forum )
Banalna obsługa timerów i PWM
Eventy - to jest troszkę powalone ale jak się ogarnie to nawet lepsze jak starego typu przerwania.
DMA- to jest gigantyczny plus można przesyłać dane w tle.
Minusy:
Skopany na maksa ADC
Przyda się nowy programator najlepiej z PDI żeby był na przyszłość (np atmel ICE).
Więcej minusów moim zdaniem brak.
- pimowo
- Posty: 392
- Rejestracja: 28 maja 2016, 10:07
Re: Dobór mikrokontrolera do projektu
O to się nie martwię, bardziej się martwię czy ja dam radę to opanować.niveasoft pisze:Taki projekt bez problemu uciągnie Mega2560 z czterema USART`ami
Z góry przepraszam, że przez najbliższy rok będę Was męczył pytaniami
Na wyświetlaczu nic takiego nie będzie - zwykłe teksty. Wyświetlacz uruchomiłem TYM sposobem.niveasoft pisze:Xmega obsługa wyswietlacza będzie wygladała płynniej.
niveasoft pisze:Xmegi to fajne procki i nie ma się co ich bać. Jedyne co trzeba mieć to przynajmniej programator MKII bo nie wyobrazam sobie obsługiwać to USBasp czy nawet wbudowanym Bootloaderem FLIP.
Czy TAKI programator byłby OK?Pikczu pisze:Przyda się nowy programator najlepiej z PDI żeby był na przyszłość (np atmel ICE)
Na Allegro widzę, że chodzą po 49zł.
U mnie cztery w zupełności wystarczą .No chyba, że jeszcze coś wymyślę, ale raczej nieniveasoft pisze:Taka Xmega ma po dwa porty COM na każdym z portów a ma ich czasem kilka.
niveasoft pisze:Największe sa chyba serie A a potem im wyższa litera tym to mniejsze.
Możecie jakąś konkretną Xmegę polecić?Pikczu pisze:Na przykład do 8 uartów (ATXmega128A3u)
Przerwanie potrzebuję do czujnika przepływu wody, aby wyliczyć ile wody "wypluwa" z siebie filtr.Pikczu pisze:Eventy - to jest troszkę powalone ale jak się ogarnie to nawet lepsze jak starego typu przerwania.
No i tu mnie zmartwiłeś na maksa ponieważ myślałem, że będę mógł się pozbyć ADS1115Pikczu pisze:Skopany na maksa ADC
Tak jak mówiłem wcześniej, potrzebuję dwóch szt. (no może trzecią szt. na jakieś gotowej płytce do testów) ponieważ będą dwa sterowniki (mam dwa akwaria) a cena ATmegi2560 i ATXmegi są podobne.Pikczu pisze:Ceną nie ma się co sugerować, nie kupujesz tego co dzień.
- niveasoft
- Posty: 1216
- Rejestracja: 17 sie 2015, 12:13
- Kontakt:
Re: Dobór mikrokontrolera do projektu
Pikczu pisząc o ADC, że "skopane na maksa" miał pewnie na myśli to że nie sa tak łatwe i intuicyjne w obsłudze jak poprzednie. Maja swoje niuanse, ale jak to opanujesz to działają
Wiem że nawet się z nich ludzie śmiali, że to trzeba kalibrować offsety przy starcie itd ahahaha. No trzeba czasem I co? Trzeba to trzeba. Trzeba się nauczyć i już
Opanujesz i masz
A pomyśl że można coś tańszego niż ten ADS wziąc i to 24bitowe i kazać DMA ściągać z niego dane do bufora taktując jakimś Timerem których też masz dwa na każdy port
Osiem Timerów 16Bit i można je łączyć np. do 32bit i można przeportowywać ich wyjścia jeśli chodzi o PWM.. tak samo zamieniać niektóre peryferia tak że łatwiej projektować płytke...
Wiem że nawet się z nich ludzie śmiali, że to trzeba kalibrować offsety przy starcie itd ahahaha. No trzeba czasem I co? Trzeba to trzeba. Trzeba się nauczyć i już
Opanujesz i masz
A pomyśl że można coś tańszego niż ten ADS wziąc i to 24bitowe i kazać DMA ściągać z niego dane do bufora taktując jakimś Timerem których też masz dwa na każdy port
Osiem Timerów 16Bit i można je łączyć np. do 32bit i można przeportowywać ich wyjścia jeśli chodzi o PWM.. tak samo zamieniać niektóre peryferia tak że łatwiej projektować płytke...
- Pikczu
- Posty: 390
- Rejestracja: 17 sie 2015, 13:46
- Lokalizacja: Dublin, Ireland
- Kontakt:
Re: Dobór mikrokontrolera do projektu
Programator to miałem na myśli coś oryginalnego atmela (wiem co powiecie że drogi itd. )
https://www.tme.eu/ie/en/katalog/progra ... %3A1220%3B
Bartek namówił mnie kiedyś na AtXmega128A3U od Leona i nabyłem kilka modułów DIL 64 oraz zestaw startowy.
I powiem iż dobry to był wybór:)
Dlatego polecił bym ten sam- głownie dlatego ze już tam byliśmy i możemy pomóc.
https://kamami.pl/en/retired-products/2 ... dil64.html
Do pełni szczęści trzeba łyknąć dwie książki:
1."AVR praktyczne projekty" Tomasza francuza
2."AVR układy peryferyjne" też Tomasza francuza
Oraz przekopać się przez blog Leon instruments - co prawda blog i książka są w języku szatana ale to głównie o rejestry chodzi.
https://leon-instruments.blogspot.com/
Równocześnie żeby połączyć kropki można się podeprzeć przykładami z Bascoma:
Ale tu uwaga!
Przykłady były pisane gdy Xmega jeszcze raczkowała w Bascom AVR i składnia uległa zmianie ogólnie powinno być już prościej, ale czasem nie jest.
https://www.mcselec.com/index.php?optio ... &Itemid=57
http://www.mcselec.com/index.php?option ... &Itemid=54
Jeśli łykniesz powyższe to reszta będzie już pikuś.
Z tego ADC to ja się wytłumaczę.
Nie przeczytałem uważnie PDFa zrobiłem płytkę 4 warstwową żeby wszytko upchnąć no i się okazało że napięcie podane na wejście ADC nie możne być równe VCC tylko VCC -0.6V co jest debilnym pomysłem.
A chciałem podać sygnał bezpośrednio z czujnika hala, którego napięcie wyjściowe maksymalne było równe VCC 3.3V.
To zraziło mnie do ADC w xmega plus parę innych zagadnień których szczegłów nie pamietam bo było to ponad rok temu.
https://www.tme.eu/ie/en/katalog/progra ... %3A1220%3B
Bartek namówił mnie kiedyś na AtXmega128A3U od Leona i nabyłem kilka modułów DIL 64 oraz zestaw startowy.
I powiem iż dobry to był wybór:)
Dlatego polecił bym ten sam- głownie dlatego ze już tam byliśmy i możemy pomóc.
https://kamami.pl/en/retired-products/2 ... dil64.html
Do pełni szczęści trzeba łyknąć dwie książki:
1."AVR praktyczne projekty" Tomasza francuza
2."AVR układy peryferyjne" też Tomasza francuza
Oraz przekopać się przez blog Leon instruments - co prawda blog i książka są w języku szatana ale to głównie o rejestry chodzi.
https://leon-instruments.blogspot.com/
Równocześnie żeby połączyć kropki można się podeprzeć przykładami z Bascoma:
Ale tu uwaga!
Przykłady były pisane gdy Xmega jeszcze raczkowała w Bascom AVR i składnia uległa zmianie ogólnie powinno być już prościej, ale czasem nie jest.
https://www.mcselec.com/index.php?optio ... &Itemid=57
http://www.mcselec.com/index.php?option ... &Itemid=54
Jeśli łykniesz powyższe to reszta będzie już pikuś.
Z tego ADC to ja się wytłumaczę.
Nie przeczytałem uważnie PDFa zrobiłem płytkę 4 warstwową żeby wszytko upchnąć no i się okazało że napięcie podane na wejście ADC nie możne być równe VCC tylko VCC -0.6V co jest debilnym pomysłem.
A chciałem podać sygnał bezpośrednio z czujnika hala, którego napięcie wyjściowe maksymalne było równe VCC 3.3V.
To zraziło mnie do ADC w xmega plus parę innych zagadnień których szczegłów nie pamietam bo było to ponad rok temu.
- pimowo
- Posty: 392
- Rejestracja: 28 maja 2016, 10:07
Re: Dobór mikrokontrolera do projektu
Teraz to już sam nie wiem... Z jednej strony wychodzi na to, że ATXmega to super sprzęt, ale znów z drugiej strony dość spore koszta wychodzą - uC nie jest jeszcze tragedią, ale programator ścina z nóg - w TME cena 238.89-654.56zł. Rozumiem, że programator oryginalny, sprawdzony, pewny etc ale jak dla mnie cena troszkę zaporowa
Pomału zaczynam rozumieć dlaczego taki fajny sprzęt jest tak mało populary i wszędzie widać tylko ATmegi
Chyba jednak pozostanę przy ATmega2560 ponieważ to jest chyba mój pierwszy i ostatni tak mocno rozbudowany projekt.
Pomału zaczynam rozumieć dlaczego taki fajny sprzęt jest tak mało populary i wszędzie widać tylko ATmegi
Chyba jednak pozostanę przy ATmega2560 ponieważ to jest chyba mój pierwszy i ostatni tak mocno rozbudowany projekt.
- niveasoft
- Posty: 1216
- Rejestracja: 17 sie 2015, 12:13
- Kontakt:
Re: Dobór mikrokontrolera do projektu
Szukaj nawet na Aliexpress "avrisp mkii" czyli MKII czyli MK2 15 dolców chyba widzę.
https://allegro.pl/listing?string=avris ... i-1-1-1127
Osobiście używam własnoręcznie zrobiony na własnoręcznie wytrawionej płytce i tylko kupiłem do niego AtmegeUSB i GTL2003. Soft LUFA i śmiga aż miło... Nie wiem czy teraz bym się bawił czy po prostu kupił chińczyka za 5 dych ale kiedyś były inne czasy...
https://allegro.pl/listing?string=avris ... i-1-1-1127
Osobiście używam własnoręcznie zrobiony na własnoręcznie wytrawionej płytce i tylko kupiłem do niego AtmegeUSB i GTL2003. Soft LUFA i śmiga aż miło... Nie wiem czy teraz bym się bawił czy po prostu kupił chińczyka za 5 dych ale kiedyś były inne czasy...
- pimowo
- Posty: 392
- Rejestracja: 28 maja 2016, 10:07
Re: Dobór mikrokontrolera do projektu
Z tego co rozumiem to mówicie, że naprawdę warto jednak wziąć ATXmegę
Wcześniej dawałem linka do programatora:
https://serwis.avt.pl/manuals/AVT5388.pdf
Tak przy okazji... Bartek, czy możesz zmienić kolor linków? Teraz jest tak, że się zlewa z treścią i nie bardzo widać, że dałem linka
Wcześniej dawałem linka do programatora:
https://serwis.avt.pl/manuals/AVT5388.pdf
Tak przy okazji... Bartek, czy możesz zmienić kolor linków? Teraz jest tak, że się zlewa z treścią i nie bardzo widać, że dałem linka
- niveasoft
- Posty: 1216
- Rejestracja: 17 sie 2015, 12:13
- Kontakt:
Re: Dobór mikrokontrolera do projektu
Poszukam w czeluściach ustawień jak znajdę chwilę, ale takie rzeczy właśnie mnie nie ciągną i to u mnie trwa dłużej ahahaha
Programator wygląda podobnie do mojego chociaż mój jest bardziej zminiaturyzowany Bebechy ma te same więc nawet można mu wrzucić LUFA`ę i działa wtedy i z Bascomem i z Atmel Studio. Prawdopodobnie ten tez tak ma.
Jest jeszcze strona Sibit.pl gdzie jest instrukcja co i jak z tym klonem https://www.sibit.pl/sklep/avr-prog-mkii.html
Ja się w tańcu nie pierdzielę bo od tego są przerwy więc w moim mam wyprowadzone dwie wtyczki na krótkich taśmach. Jedna 6 pin ISP a druga 6 pin PDI. Każda opisana. Nie muszę zgadywać
Programator wygląda podobnie do mojego chociaż mój jest bardziej zminiaturyzowany Bebechy ma te same więc nawet można mu wrzucić LUFA`ę i działa wtedy i z Bascomem i z Atmel Studio. Prawdopodobnie ten tez tak ma.
Jest jeszcze strona Sibit.pl gdzie jest instrukcja co i jak z tym klonem https://www.sibit.pl/sklep/avr-prog-mkii.html
Ja się w tańcu nie pierdzielę bo od tego są przerwy więc w moim mam wyprowadzone dwie wtyczki na krótkich taśmach. Jedna 6 pin ISP a druga 6 pin PDI. Każda opisana. Nie muszę zgadywać