Dzień dobry wszystkim. To mój pierwszy post na forum. Przez ostatnie dobrych ileś dni, w wolnym czasie poczytałem to (i inne) fora i dokumentacje, ale mam ciągle totalny mętlik w głowie. Problem w tym, że z mikrokontrolerami miałem dotychczas niewiele do czynienia. Jakieś 20 lat temu hobbystycznie w asemblerze na AT89C2051 kilka projektów zrobiłem , potem zdarzył mi się epizod w C na ADuC821, no i ostatnio pobawiłem się trochę z Digisparc-iem (ATTiny85) w Arduino IDE (kilka prostych urządzeń do domu i samochodu). W pracy zawodowej tylko FPGA i analogówka od 15 lat, stąd prosiłbym o rady/wskazówki od doświadczonych forumowiczów żebym trochę się nakierował na właściwe rozwiązania.
Chciałbym jako dodatkowe zajęcie zrobić małoseryjne (typu 100szt na rok danego urządzenia) projektowanie/produkcję prostych urządzeń, spróbować wypełnić jakieś tam nisze których nie brakuje w domu/samochodzie. W związku z tym potrzebuję dobrać sobie odpowiedni mikrokontroler pod te aplikacje, taki który w łatwy sposób (często razem z PCB), przeszczepiałbym do nowych projektów. Postaram się wypisać w punktach moje główne potrzeby:
1.Mikrokontroler względnie tani (chętniej 5zł niż 15 przy np ~100szt), bo ceny detaliczne urządzeń raczej będą zawierać się w przedziale 100-200zł w zależności które, ale to już z wtykami, kablami, testowaniem, dokumentacją, PCB, montażem, pudełkiem, obudową, fakturą vat, utrzymaniem sklepu internetowego itp itd.
2.Mikrokontroler względnie mały (max 100mm2 na płytce uwzględniając jakieś tam kondensatory czy minimum do USB)
3.Mikrokontroler SMD ale nie za dużo pinów - tak naprawdę potrzebuję kilka portów pod większość pomysłów które mam narazie w głowie.
4.Nie potrzebuję mocy obliczeniowej, naprawdę raczej proste aplikacje.
5.Łatwa/tania ścieżka do updatowania firmwaru przez USB (bez zewnętrznych chipów typu FTDI/programatorów itp) którym w bezpieczny sposób będę mógł oferować klientom poprawki bądź nowe funkcje jeśli zajdzie taka potrzeba, a blokował możliwość np odczytu wsadu (np robię to jako jakiś zaszyfrowany program/exe pod Windows, coś sie skomunikuje z urządzeniem, sprawdzi że siedzi tam kompatybilne urządzenie i zrobi update/weryfikację). USB nie musi być szybkie, wystarczy low speed - byle by to łatwo ogarnąć a u klienta nic poza kabelkiem USB i kompem z Windowsem (na początek) nie było potrzebne. Tu mam na myśli i mój wysiłek w stworzenie tego (brak doświadcznia) jak i banalną sprawę dla zwykłych klientów którzy w łatwy sposób mogliby podpiąć się do komputera i zrobić update (np jakieś wbudowane drivery w system najchętniej, albo przynajmniej łatwe i bezproblemowe w instalacji)
6.Jakieś gotowe drivery (np od producenta uC) czy bootloader (jeśli będzie coś do skompilowania samemu), musi nadawać sie do użytku komercyjnego bez wymogu udostępniania własnych kodów/schematów czy możliwości kompilowania samemu czegokolwiek - już naszukałem się różnych rozwiązań i wiecznie gdzieś na końcu są jakieś licencje (czasem w bibliotekach) ograniczające taki użytek lub warianty komercyjne zabijające ceną na dzień dobry pomysł (choćby biblioteki V-USB na procki bez sprzętowego USB).
7.Fajnie by było gdyby uC miał CAN lub miał odpowiednik (np ciut droższy, z kompatybilnymi wyprowadzeniami) zeby łatwo zrobić CAN do podłączenia się do samochodu. Samochody z reguły mają kilka odseparowanych linii CAN (różne moduły siedzą na różnych), fajnie by było gdyby można podczas działania programu sobie to przekonfigurować które linie CAN łączymy z wbudowanym CAN-em (nie wiem czy są dedykowane czy w miarę swobodnie można przydzielać). A moze jednak polecacie stosowanie czegoś zewnętrznego (rozumiem że TRX bo reszta softwarowo? sorry, ale jeszcze nie miałem czasu zgłębić co w CAN tak naprawdę taki ATMEGA oferuje)
8.Nie chciałbym trafić w uC który ma dużą szansę że np za rok/dwa albo choćby i 5 lat może zostać wycofany z oferty bo jest niepopularny czy już z przestarzałej rodziny (bo świat już tylko idzie w bardzo proste 8bit a jak nie to w 32bitowe ARMy i nie ma nic pomiędzy).
Czy tu faktycznie AVRy się sprawdzą? Jeśli tak to myślałem o czymś w stylu max ATMEGA8/16/32U2 w TQFP32. Ewewntualnie coś z nowych ATTINY (ale wtedy chyba USB programowo trzeba realizować i jest jednak poza specyfikacją USB?). A może jednak powinno być droższe i większe ATXMEGA?
Rozumiem że Atmel Studio 7 i jakiś USBasp 2.0 wystarczą? Czy jakieś jeszcze software jest potrzebny (avrdude itp)?
Dziękuję za wszelkie sugestie, wytknięcie błędów czy pominięć.
Chciałbym jako dodatkowe zajęcie zrobić małoseryjne (typu 100szt na rok danego urządzenia) projektowanie/produkcję prostych urządzeń, spróbować wypełnić jakieś tam nisze których nie brakuje w domu/samochodzie. W związku z tym potrzebuję dobrać sobie odpowiedni mikrokontroler pod te aplikacje, taki który w łatwy sposób (często razem z PCB), przeszczepiałbym do nowych projektów. Postaram się wypisać w punktach moje główne potrzeby:
1.Mikrokontroler względnie tani (chętniej 5zł niż 15 przy np ~100szt), bo ceny detaliczne urządzeń raczej będą zawierać się w przedziale 100-200zł w zależności które, ale to już z wtykami, kablami, testowaniem, dokumentacją, PCB, montażem, pudełkiem, obudową, fakturą vat, utrzymaniem sklepu internetowego itp itd.
2.Mikrokontroler względnie mały (max 100mm2 na płytce uwzględniając jakieś tam kondensatory czy minimum do USB)
3.Mikrokontroler SMD ale nie za dużo pinów - tak naprawdę potrzebuję kilka portów pod większość pomysłów które mam narazie w głowie.
4.Nie potrzebuję mocy obliczeniowej, naprawdę raczej proste aplikacje.
5.Łatwa/tania ścieżka do updatowania firmwaru przez USB (bez zewnętrznych chipów typu FTDI/programatorów itp) którym w bezpieczny sposób będę mógł oferować klientom poprawki bądź nowe funkcje jeśli zajdzie taka potrzeba, a blokował możliwość np odczytu wsadu (np robię to jako jakiś zaszyfrowany program/exe pod Windows, coś sie skomunikuje z urządzeniem, sprawdzi że siedzi tam kompatybilne urządzenie i zrobi update/weryfikację). USB nie musi być szybkie, wystarczy low speed - byle by to łatwo ogarnąć a u klienta nic poza kabelkiem USB i kompem z Windowsem (na początek) nie było potrzebne. Tu mam na myśli i mój wysiłek w stworzenie tego (brak doświadcznia) jak i banalną sprawę dla zwykłych klientów którzy w łatwy sposób mogliby podpiąć się do komputera i zrobić update (np jakieś wbudowane drivery w system najchętniej, albo przynajmniej łatwe i bezproblemowe w instalacji)
6.Jakieś gotowe drivery (np od producenta uC) czy bootloader (jeśli będzie coś do skompilowania samemu), musi nadawać sie do użytku komercyjnego bez wymogu udostępniania własnych kodów/schematów czy możliwości kompilowania samemu czegokolwiek - już naszukałem się różnych rozwiązań i wiecznie gdzieś na końcu są jakieś licencje (czasem w bibliotekach) ograniczające taki użytek lub warianty komercyjne zabijające ceną na dzień dobry pomysł (choćby biblioteki V-USB na procki bez sprzętowego USB).
7.Fajnie by było gdyby uC miał CAN lub miał odpowiednik (np ciut droższy, z kompatybilnymi wyprowadzeniami) zeby łatwo zrobić CAN do podłączenia się do samochodu. Samochody z reguły mają kilka odseparowanych linii CAN (różne moduły siedzą na różnych), fajnie by było gdyby można podczas działania programu sobie to przekonfigurować które linie CAN łączymy z wbudowanym CAN-em (nie wiem czy są dedykowane czy w miarę swobodnie można przydzielać). A moze jednak polecacie stosowanie czegoś zewnętrznego (rozumiem że TRX bo reszta softwarowo? sorry, ale jeszcze nie miałem czasu zgłębić co w CAN tak naprawdę taki ATMEGA oferuje)
8.Nie chciałbym trafić w uC który ma dużą szansę że np za rok/dwa albo choćby i 5 lat może zostać wycofany z oferty bo jest niepopularny czy już z przestarzałej rodziny (bo świat już tylko idzie w bardzo proste 8bit a jak nie to w 32bitowe ARMy i nie ma nic pomiędzy).
Czy tu faktycznie AVRy się sprawdzą? Jeśli tak to myślałem o czymś w stylu max ATMEGA8/16/32U2 w TQFP32. Ewewntualnie coś z nowych ATTINY (ale wtedy chyba USB programowo trzeba realizować i jest jednak poza specyfikacją USB?). A może jednak powinno być droższe i większe ATXMEGA?
Rozumiem że Atmel Studio 7 i jakiś USBasp 2.0 wystarczą? Czy jakieś jeszcze software jest potrzebny (avrdude itp)?
Dziękuję za wszelkie sugestie, wytknięcie błędów czy pominięć.
