Mikrokontrolery STM32

Forum pasjonatów mikrokontrolerów ARM.
ODPOWIEDZ
Awatar użytkownika
Aro
Użytkownik
Posty: 677
Rejestracja: 30 paź 2006, 18:49
Lokalizacja: Świerczyniec | Wrocław
Kontakt:

Post autor: Aro » 02 sty 2009, 13:37

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?

Awatar użytkownika
radzio
Użytkownik
Posty: 573
Rejestracja: 07 gru 2004, 23:06
Lokalizacja: Sosnowiec
Kontakt:

Post autor: radzio » 02 sty 2009, 14:27

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).

Awatar użytkownika
Aro
Użytkownik
Posty: 677
Rejestracja: 30 paź 2006, 18:49
Lokalizacja: Świerczyniec | Wrocław
Kontakt:

Post autor: Aro » 02 sty 2009, 15:23

Memory-to-memory? Jest na to jedna instrukcja? 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ę?

Awatar użytkownika
radzio
Użytkownik
Posty: 573
Rejestracja: 07 gru 2004, 23:06
Lokalizacja: Sosnowiec
Kontakt:

Post autor: radzio » 02 sty 2009, 18:27

Aro pisze:Memory-to-memory? Jest na to jedna instrukcja?
Nie, to taki tryb pracy układu DMA.
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ę?
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.

Awatar użytkownika
Aro
Użytkownik
Posty: 677
Rejestracja: 30 paź 2006, 18:49
Lokalizacja: Świerczyniec | Wrocław
Kontakt:

Post autor: Aro » 02 sty 2009, 21:46

Czyli nie ma tak różowo:(
A jeśli dałoby się wykorzystać ten kanał DMA, to da radę wyciągnąć 18MHz? Mam tu na myśli STM101... Cortex M3.

Awatar użytkownika
radzio
Użytkownik
Posty: 573
Rejestracja: 07 gru 2004, 23:06
Lokalizacja: Sosnowiec
Kontakt:

Post autor: radzio » 02 sty 2009, 22:06

Postaram się to sprawdzić w praktyce, dziś albo jutro.

Awatar użytkownika
Aro
Użytkownik
Posty: 677
Rejestracja: 30 paź 2006, 18:49
Lokalizacja: Świerczyniec | Wrocław
Kontakt:

Post autor: Aro » 02 sty 2009, 23:25

O, wielkie dzięki:) Mimo wszystko jednak zamówię jakiś zestaw z tym prockiem.

Awatar użytkownika
radzio
Użytkownik
Posty: 573
Rejestracja: 07 gru 2004, 23:06
Lokalizacja: Sosnowiec
Kontakt:

Post autor: radzio » 03 sty 2009, 20:03

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.

Awatar użytkownika
Aro
Użytkownik
Posty: 677
Rejestracja: 30 paź 2006, 18:49
Lokalizacja: Świerczyniec | Wrocław
Kontakt:

Post autor: Aro » 03 sty 2009, 21:35

No to zastosuję niewiele droższy STM32F103 i z użyciem rdzenia wyciągnę te "magiczne" 18MHz, przy 72MHz zegara.

Awatar użytkownika
gwozdex
Użytkownik
Posty: 879
Rejestracja: 24 lut 2006, 10:04
Lokalizacja: Czechowice-Dziedzice
Kontakt:

Post autor: gwozdex » 04 sty 2009, 10:45

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.

ODPOWIEDZ