Jak wspomniałem w jednym z poprzednich artykułów powoli zbliżamy się do granic możliwości naszego mikrokontrolera STM32F407. Szczególnie dokuczliwy wydaje się być brak pamięci RAM, której mamy jedynie 192kB.W dzisiejszym artykule spróbujemy poszukać potencjalnych kandydatów na następcę 🙂 Do dzieła!
Pierwszym istotnym założeniem jest to, iż pozostajemy w rodzinie STM32. Przy obecnym zaawansowaniu prac nie jest wskazana przesiadka na całkowicie inną platformę. Ponadto więksi bracia STM32F407 mogą pochwalić się naprawdę imponującymi możliwościami. W grę wchodzą więc dwie grupy: układy serii F4, bazujące na rdzeniu Cortex-M4 oraz F7 – zbudowane w oparciu o rdzeń Cortex-M7.
Największą zaletą rodziny F7 jest posiadanie pamięci podręcznej cache typu L1. Pozwala to przyspieszyć wykonywanie kodu, gdyż procesor nie musi “sięgać” za każdym razem bezpośrednio do pamięci operacyjnej bądź programu. Ponadto taktowanie zegara może wynosić aż 216MHz w porównaniu do 180MHz dla układów z serii F4. Wybór może wydawać się oczywisty – pamiętajmy jednak, że to nie moc obliczeniowa stanowi nasze główne zmartwienie, a pamięć.
Układy F7 mogą się pochwalić od 256kB do 512kB wbudowanej pamięci SRAM. Dla porównania – seria F4 posiada maksymalnie 384kB. Oznacza to, iż żaden z tych układów nie ma wystarczającej ilości pamięci aby skutecznie i szybko obsłużyć ogromną ilość elementów graficznych. Naturalnym (i jedynym sensownym) wyjściem byłoby zatem uzupełnienie systemu o zewnętrzną kość pamięci SDRAM o pojemności kilku MB. To już w zupełności wystarcza na nasze potrzeby 🙂 Ceną za to jest niestety znaczna komplikacja urządzenia oraz konieczność wprowadzenia dwuwarstwowej płytki drukowanej, co nie pozostaje bez wpływu na ostateczne koszty. No ale cóż – jest to jedyne rozsądne rozwiązanie, które nie zamknie nam drogi do dalszego rozwoju systemu.
Czego zatem potrzebujemy?
Skoro moc obliczeniowa serii F4 może zostać uznana za wystarczającą, warto spojrzeć na układy posiadające interfejsy zewnętrznych pamięci.
Przecież obecny procesor STM32F407 ma wbudowany kontroler pamięci FSMC
To prawda, jednak nie wspiera on pamięci dynamicznych, czyli w także SDRAM. Kości pamięci statycznej SRAM również są dostępne, oferują jednak znacznie mniejszą pojemność, rzędu setek kB przy dwu-trzy krotnie wyższej cenie. Musimy więc wybrać układ posiadający kontroler FMC (ang. Flexible Memory Controler).
W ten sposób zamykamy się do dwóch linii produktowych w obrębie rodziny F4 – linii Foundation and Advanced, gdyż jedynie one wyposażono w tego rodzaju kontrolery.
Najbardziej obiecującymi kandydatami są układy: STM32F427 oraz STM32429 – oba posiadają 384kB wbudowanej pamięci SRAM oraz aż do 2MB pamięci programu Flash (to ogromnie dużo!).
Ostateczna decyzja jeszcze nie zapadła, gdyż musimy przemyśleć kilka innych kwestii. Na tą chwilę zawęziliśmy jednak wybór do dwóch układów 🙂