Zaczynam ostatnio myśleć o wypróbowaniu nieco mocniejszych mikrokontrolerów niż AVR-y.
Przez chwilę myślałem o XMegach, jednak ostatecznie stwierdzam, że chyba sięgnę po jakiś 32 bitowy układ, najpewniej STM32.
Mam już za sobą parę projektów na ATmegach i jakoś radzę sobie z programowaniem w C. Co prawda jeszcze sporo muszę się nauczyć, ale równie dobrze mógłbym kontynuować tę naukę na wyższej platformie. Minęły już czasy, kiedy bałem się przesiadki z ATMegi8 na ATMegę16.
Oczywiście nie planuję porzucenia AVR-ów. Do prostszych projektów nadają się znakomicie, poza tym mam ich trochę w domowych zasobach.
Zanim zacznę eksperymenty z nowymi prockami, chciałbym wyjaśnić kilka kwestii.
1) Jak wygląda obsługa interfejsu Ethernet na STM-ach? Bardzo często zdarza mi się wykorzystywać ten interfejs w swoich projektach. Sprawdzałem specyfikację i widzę, że niektóre MCU z tej serii mają zintegrowany sterownik Ethernet, ale bez układu PHY, trzeba więc stosować zewnętrzny. Jest to w jakiś sposób kłopotliwe (dostępność, lutowanie) czy powinienem be problemu przestawić się na ten nowy paradygmat i zapomnieć o ENC28J60 podpinanym przez SPI?
2) Jaki stos TCP/IP stosuje się na takich procesorach? Zakładam, że mając do dyspozycji tak dużą ilość zasobów nie warto używać Tuxgraphics? Warto od razu wypróbować lwIP, czy może sięgnięcie po uIP będzie lepszym pomysłem ze względu na oszczędność zasobów?
3) Jakie transfery można w praktyce osiągnąć przy pracy sieciowej? Pytam chociażby w kontekście obsługi DMA w STM-ach.
4) Warto sobie sklecić/kupić płytkę prototypową? Gdy uczyłem się programowania AVR-ów (co dla mnie było początkiem przygody z programowaniem MCU w ogóle) najpierw zrobiłem sobie prostą płytkę testową z Mega8. Korzystałem z niej tylko przez chwilę. Gdy eksperymentowałem po raz pierwszy z Ethernetem, zaprojektowałem własne testowe PCB z Mega328 i ENC28J60. Użyłem tej płytki może tylko kilka razy. Ostatecznie budując jakieś urządzenie i tak często pomijałem etap łączenia wszystkiego na pająku/płytce stykowej. Oczywiście czasami nie sposób tego uniknąć, np. w przypadku eksperymentów z nowym układem. Niemniej nie widzę powodu, żeby "dla pewności" składać układ ze znanych sobie części dwa razy. Zwykle od razu zabieram się za projekt PCB, sprawdzając wszystko kilka razy. W przypadku STM-ów mogę dalej stosować takie podejście, czy raczej bezwzględnie powinienem się zaopatrzyć w jakąś płytkę ewaluacyjną?
5) Ktoś może próbował obsługi szyfrowania AES na STM32? Jak to się sprawdza? Operacja szyfrowania/deszyfrowania pakietu danych nie blokuje procesora na zauważalnie długi moment, jak to mogło mieć miejsce w ośmiobitowych MCU?