Witam
Z góry zaznaczam że jestem (ciągle?) początkujący, i mam małe doświadczenie w kwestii mikrokontrolerów i generalnie elektroniki.
W każdym razie, szukam (i nie mogę znaleźć) 8-bit mikrokontrolera AVR ktory spełniałby poniższe warunki:
- możliwość pracy z prędkością 20MHz i taktowania kryształem (nie wiem dobrze, słyszałem że komunikacja szeregowa działa najlepiej przy taktowaniu 11,0592MHz, więc możliwość pracy z tą częstotliwością jest mile widziana)
- komunikacja szeregowa, lub lepiej, USB
- 3 wyjścia PWM, wszystkie z conajmniej 10-bit dokładnością
- conajmniej 2kB flash
Rozmiary i ilość pinów dowolne, ale wolałbym żeby układ był jak najmniejszy, i nie SMD (montaż w podstawce).
W razie gdy nie ma takiego układu (jest ich dużo, przeglądam je ciągle, ale ciągle znajduję jakieś przeszkody) może ktoś ma pomysł jak rozwiązać problem, albo ma sugestie jak wykonać taki projekt: (lampa zmieniająca kolory)
Chcę regulować jasność diód o trzech barwach (RGB) z uwzględnieniem gammy: chodzi mi o to że zwykle jasność diód nie rośnie liniowo, więc chcę wprowadzić korektę w zależności jak dany model diody świeci. Problem jest jednak taki, że z PWM o dokładności 8bit, przy powolnym zapalaniu się dioda "schodkuje". Więc im wyższa dokładność PWM, tym więcej stopni jasności, a więc tym gładzej zapala się dioda.
Następnie: możliwość komunikacji z komputerem. Jako że obecnie mało który komputer ma złącze rs232, to naturalnie wybór pada na USB. Sposób w jaki USB będzie zaimplementowane - czy wbudowany w kontroler, czy za pomocą ukladu USB<->transmisja szeregowa - nie ma znaczenia.
Możliwe że w grę wchodzi zewnętrzny generator PWM, albo nawet połączenie dwóch kontrolerów magistralą I2C/TWI.
O obu rozwiązaniach myslałem, jednak w pierwszym przypadku: nie mam pojęcia jak i gdzie szukać takiego generatora; a w drugim: nie wiem czy połączenie kontrolerów magistralą to dobry i racjonalny pomysł.
Liczę na waszą pomoc i propozycje
EDIT: Zmieniłem tytuł na bardziej informatywny.
Dodam jeszcze że próbowałem implementować 10-cio i 16-bit PWM przerwaniami zegarowymi z wyściami na zwkłych pinach IO, jednakże sygnał PWM był nierownomierny i diody czasami pzez kilka ms świeciły się maksymalnie jasno lub ciemno - zauważalnie, więc to też odpada...
Z góry zaznaczam że jestem (ciągle?) początkujący, i mam małe doświadczenie w kwestii mikrokontrolerów i generalnie elektroniki.
W każdym razie, szukam (i nie mogę znaleźć) 8-bit mikrokontrolera AVR ktory spełniałby poniższe warunki:
- możliwość pracy z prędkością 20MHz i taktowania kryształem (nie wiem dobrze, słyszałem że komunikacja szeregowa działa najlepiej przy taktowaniu 11,0592MHz, więc możliwość pracy z tą częstotliwością jest mile widziana)
- komunikacja szeregowa, lub lepiej, USB
- 3 wyjścia PWM, wszystkie z conajmniej 10-bit dokładnością
- conajmniej 2kB flash
Rozmiary i ilość pinów dowolne, ale wolałbym żeby układ był jak najmniejszy, i nie SMD (montaż w podstawce).
W razie gdy nie ma takiego układu (jest ich dużo, przeglądam je ciągle, ale ciągle znajduję jakieś przeszkody) może ktoś ma pomysł jak rozwiązać problem, albo ma sugestie jak wykonać taki projekt: (lampa zmieniająca kolory)
Chcę regulować jasność diód o trzech barwach (RGB) z uwzględnieniem gammy: chodzi mi o to że zwykle jasność diód nie rośnie liniowo, więc chcę wprowadzić korektę w zależności jak dany model diody świeci. Problem jest jednak taki, że z PWM o dokładności 8bit, przy powolnym zapalaniu się dioda "schodkuje". Więc im wyższa dokładność PWM, tym więcej stopni jasności, a więc tym gładzej zapala się dioda.
Następnie: możliwość komunikacji z komputerem. Jako że obecnie mało który komputer ma złącze rs232, to naturalnie wybór pada na USB. Sposób w jaki USB będzie zaimplementowane - czy wbudowany w kontroler, czy za pomocą ukladu USB<->transmisja szeregowa - nie ma znaczenia.
Możliwe że w grę wchodzi zewnętrzny generator PWM, albo nawet połączenie dwóch kontrolerów magistralą I2C/TWI.
O obu rozwiązaniach myslałem, jednak w pierwszym przypadku: nie mam pojęcia jak i gdzie szukać takiego generatora; a w drugim: nie wiem czy połączenie kontrolerów magistralą to dobry i racjonalny pomysł.
Liczę na waszą pomoc i propozycje
EDIT: Zmieniłem tytuł na bardziej informatywny.
Dodam jeszcze że próbowałem implementować 10-cio i 16-bit PWM przerwaniami zegarowymi z wyściami na zwkłych pinach IO, jednakże sygnał PWM był nierownomierny i diody czasami pzez kilka ms świeciły się maksymalnie jasno lub ciemno - zauważalnie, więc to też odpada...
