Mikrokontrolery STM32
- Aro
- Użytkownik
- Posty: 677
- Rejestracja: 30 paź 2006, 18:49
- Lokalizacja: Świerczyniec | Wrocław
- Kontakt:
Właśnie zajrzałem do karty katalogowej najtańszego procka Cortex M3 za kilkanaście zł. I już rozumiem czemu na rynku nie ma XMEGA... Najwyższy czas zaopatrzyć się w tego ARMa:) A tak przy okazji wie ktoś z jaką maksymalną prędkością można przesyłać równolegle 8 bitowe dane między GPIO a RAMem? Da się wykorzystać do tego DMA?
Teoretycznie powinno się dać zrealizować to jako transfer w trybie memory-to-memory. Co do maksymalnej prędkości zapisu do GPIO to wynosi ona 18MHz. Więc teoretycznie kopiując z pamięci z wykorzystaniem CPU (oczywiście trzeba to robić w asemblerze) powinno się dać osiągnąć połowę tego (wszystko zależy od odpowiedniej optymalizacji programu asemblerowego).
Nie, to taki tryb pracy układu DMA.Aro pisze:Memory-to-memory? Jest na to jedna instrukcja?
Nie do końca. Operacje load/store zjamują 2 cykle zegarowe, tak więc 18MHz można osiągnąć przy zegarze 72MHz. Dodatkowo należy pamiętać, że przy takiej częstotliwości pracy (oraz zakładając, że mówimy o STM32) dostęp do pamięci programu musi się odbywać z dwoma cyklami oczekiwania, więc fragment programu, od którego oczekujemy maksymalnej wydajności czasowej, należałoby umieścić w pamięci RAM.Aro pisze:Myślałem nad rozwiązaniem GPIO->rejestr, rejestr->RAM, czyli dwa cykle zegara a więc 18MHz, przy zegarze 36MHz. czy dobrze myślę?
No więc jestem po pierwszych praktycznych testach. Nie wygląda to zbyt różowo - w przybliżeniu dane wychodzą na port z 1/10 częstotliwości pracy CPU. Lepiej raczej nie będzie, gdyż DMA w STM32 ma dostęp do 50% przepustowości magistrali.
STM32F101 mogą pracować maksymalnie na 36 MHz, więc w żaden sposób 18MHz z niego nie wyciągniesz.
STM32F101 mogą pracować maksymalnie na 36 MHz, więc w żaden sposób 18MHz z niego nie wyciągniesz.
- gwozdex
- Użytkownik
- Posty: 879
- Rejestracja: 24 lut 2006, 10:04
- Lokalizacja: Czechowice-Dziedzice
- Kontakt:
Witam!
Zastanawiałem się dokładnie nad tym samym zestawem (STM32F103). Muszę jednak się dobrze zastanowić, ponieważ w zasadzie nastawiam się na jeden rodzaj aplikacji- sterowanie wektorowe silników. Jeśli przy okazji przyda mi się taki zestaw do czegoś innego to super ( a wiem, że tak będzie). Przeglądałem kilka not katalogowych i różnych instrukcji (Application Notes) i waham się jeszcze pomiędzy zestawami STM'u lub Microchipa.
Zastanawiałem się dokładnie nad tym samym zestawem (STM32F103). Muszę jednak się dobrze zastanowić, ponieważ w zasadzie nastawiam się na jeden rodzaj aplikacji- sterowanie wektorowe silników. Jeśli przy okazji przyda mi się taki zestaw do czegoś innego to super ( a wiem, że tak będzie). Przeglądałem kilka not katalogowych i różnych instrukcji (Application Notes) i waham się jeszcze pomiędzy zestawami STM'u lub Microchipa.