Dobór mikrokontrolera do projektu

Miejsce na posty nie związane z powyższymi
Awatar użytkownika
pimowo
Posty: 392
Rejestracja: 28 maja 2016, 10:07

Dobór mikrokontrolera do projektu

Post autor: pimowo » 29 sty 2020, 20:02

Hej,
Wielu z Was ma ogromne doświadczenie z mikrokontrolerami, a Kolega Bartek to już chyba wszystkie możliwe AVR programował :D
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 ;)
Awatar użytkownika
niveasoft
Posty: 1216
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: Dobór mikrokontrolera do projektu

Post autor: niveasoft » 29 sty 2020, 20:28

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 :D 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 :D
..a czasem masz cztery DMA do dyspozycji.. odpalasz i zapominasz.
Awatar użytkownika
Pikczu
Posty: 390
Rejestracja: 17 sie 2015, 13:46
Lokalizacja: Dublin, Ireland
Kontakt:

Re: Dobór mikrokontrolera do projektu

Post autor: Pikczu » 29 sty 2020, 21:07

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.
Awatar użytkownika
pimowo
Posty: 392
Rejestracja: 28 maja 2016, 10:07

Re: Dobór mikrokontrolera do projektu

Post autor: pimowo » 29 sty 2020, 22:05

niveasoft pisze:Taki projekt bez problemu uciągnie Mega2560 z czterema USART`ami
O to się nie martwię, bardziej się martwię czy ja dam radę to opanować.
Z góry przepraszam, że przez najbliższy rok będę Was męczył pytaniami ;)
niveasoft pisze:Xmega obsługa wyswietlacza będzie wygladała płynniej.
Na wyświetlaczu nic takiego nie będzie - zwykłe teksty. Wyświetlacz uruchomiłem TYM sposobem.
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.
Pikczu pisze:Przyda się nowy programator najlepiej z PDI żeby był na przyszłość (np atmel ICE)
Czy TAKI programator byłby OK?
Na Allegro widzę, że chodzą po 49zł.
niveasoft pisze:Taka Xmega ma po dwa porty COM na każdym z portów a ma ich czasem kilka.
U mnie cztery w zupełności wystarczą .No chyba, że jeszcze coś wymyślę, ale raczej nie ;)
niveasoft pisze:Największe sa chyba serie A a potem im wyższa litera tym to mniejsze.
Pikczu pisze:Na przykład do 8 uartów (ATXmega128A3u)
Możecie jakąś konkretną Xmegę polecić?
Pikczu pisze:Eventy - to jest troszkę powalone ale jak się ogarnie to nawet lepsze jak starego typu przerwania.
Przerwanie potrzebuję do czujnika przepływu wody, aby wyliczyć ile wody "wypluwa" z siebie filtr.
Pikczu pisze:Skopany na maksa ADC
No i tu mnie zmartwiłeś na maksa ponieważ myślałem, że będę mógł się pozbyć ADS1115
Pikczu pisze:Ceną nie ma się co sugerować, nie kupujesz tego co dzień.
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.
Awatar użytkownika
niveasoft
Posty: 1216
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: Dobór mikrokontrolera do projektu

Post autor: niveasoft » 29 sty 2020, 22:22

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ą :D
Wiem że nawet się z nich ludzie śmiali, że to trzeba kalibrować offsety przy starcie itd :D ahahaha. No trzeba czasem :P I co? Trzeba to trzeba. Trzeba się nauczyć i już :P
Opanujesz i masz :D
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...
Awatar użytkownika
Pikczu
Posty: 390
Rejestracja: 17 sie 2015, 13:46
Lokalizacja: Dublin, Ireland
Kontakt:

Re: Dobór mikrokontrolera do projektu

Post autor: Pikczu » 29 sty 2020, 23:04

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.
Awatar użytkownika
pimowo
Posty: 392
Rejestracja: 28 maja 2016, 10:07

Re: Dobór mikrokontrolera do projektu

Post autor: pimowo » 29 sty 2020, 23:18

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.
Awatar użytkownika
niveasoft
Posty: 1216
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: Dobór mikrokontrolera do projektu

Post autor: niveasoft » 29 sty 2020, 23:26

Szukaj nawet na Aliexpress "avrisp mkii" czyli MKII czyli MK2 :D 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 :D ale kiedyś były inne czasy...
Awatar użytkownika
pimowo
Posty: 392
Rejestracja: 28 maja 2016, 10:07

Re: Dobór mikrokontrolera do projektu

Post autor: pimowo » 29 sty 2020, 23:33

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 :(
Awatar użytkownika
niveasoft
Posty: 1216
Rejestracja: 17 sie 2015, 12:13
Kontakt:

Re: Dobór mikrokontrolera do projektu

Post autor: niveasoft » 29 sty 2020, 23:35

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 :D

Programator wygląda podobnie do mojego chociaż mój jest bardziej zminiaturyzowany :P 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 :P 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ć :P
ODPOWIEDZ