Skocz do zawartości

[STM32] Ile wycisnęliście z gpio?


Pomocna odpowiedź

ahh uwaga dla mnie na przyszłość - robić dokładniejsze odpowiedzi 🙂 Chodzi o to wcześniejsze, napisałeś:

To słabe te STM32 są, jestem zawiedziony, a miały być szybsze od 8-bitowców. Tymczasem nawet najbiedniejszy attiny26 potrafi machać nóżkami z częstotliwością 85Mhz... 😉

Podając przykład z noty, że zegar dla peryferii to 85MHZ, więc uzyskana częstotliwość teoretyczna dla PWM ze zmianą stanu co cyknięcie to 42,5MHz i dalej jest to teoria - nie wiemy, czy piny dadzą radę to osiągnąć, to co podałeś w przykładzie ze stronką to coś innego i tam operujemy na mniejszej częstotliwości "trochę powyżej 10Mhz".

Po potem ludzi będą pisać, że czytali na forum, ze na attince można sterować z dowolnym wypełnieniem z częstotliwością 85MHz, jak również wysnuć wniosek, ze skoro na STM jest to wolniej to są gorsze, więc obaj piszmy dokładniej o co chodzi.

Nawet w tym przykładzie gdzie jest okres 256 tyknięć, przy minimalnym albo maksymalnym wypełnieniu nadal stan pina zmienia się w ciągu tego ułamka czasu, w jakim zmieniałby się cały czas przy zmianie co tyknięcie. Ale zgoda, jak okres tego PWM-a zmniejszymy do 1, to mało zastosowań przychodzi do głowy -- chyba tylko jako częstotliwość nośna jakiegoś sygnału cyfrowego.

[ Dodano: 27-12-2016, 01:47 ]

Swoją drogą, ja właśnie próbuję zilustrować to co piszesz -- że takie mierzenie jakości mikrokontrolera ma mały sens, bo najlepszy wychodzi wtedy zawsze NE555, albo inny dedykowany układ.

deshipu, masz oczywiście rację, że nie ma sensu porównywać wydajności mikrokonotrolerów testem prędkości zmian gpio. Ale sam wprowadziłeś porównywanie stm32 z attiny, a teraz przekonujesz że to nie ma sensu.

Oryginalny temat dotyczył gpio, czyli nie dma, pwm ani innych peryferiów. O ile rozumiem, autorowi chodziło o pozornie prostą rzecz - według dokumentacji powinien móc wygenerować sygnał o częstotliwości 18MHz, a otrzymał "tylko" 12MHz, więc pyta co zrobić aby uzyskać pozostałe megaherce - nie ma w tym porównywania układów, ale jest ciekawe pytanie o optymalizację.

Wbrew pozorom zabawa gpio i sprawdzenie uzyskanej częstotliwości daje całkiem sporo - czy ktoś próbował napisać prostą pętlę używając StdPeriph, Cube i Arduino, podłączyć oscyloskop i sprawdzić jaką częstotliwość uzyskuje? Zapewniam, że to nie będzie 84MHz...

Nietrudno się domyślić, że problem w tym, że nota katalogowa opisuje sprzęt, a używając biblotek producenta ty działasz dwa poziomy abstrakcji wyżej. Nie wiem czy to teraz jest takie ciekawe rozgrzebywać te biblioteki i domyślać się co one tam jeszcze dodatkowo robią i jak tego uniknąć.

Mój promotor zwykł był ubolewać, że Informatyka zamiast być dziedziną matematyki i skupiać się na wymyślaniu nowych konstrukcji i badaniu ich właściwości, powoli staje się nauką przyrodniczą, polegającą na eksperymentach i dokumentowaniu zachowania istniejących programów. "Jak wciśniemu tu, to dzieje się to, ale czasem zamiast tego to, nikt nie wie dlaczego." Chyba zaczynam rozumieć o co mu chodziło i czemu to jest takie smutne.

  • 2 lat(a) później...

Rozumując na zasadzie "poszukajmy jednej głupoty aby uznać że attiny lepsze"... W stm32f334 możesz HRTIM1 rozpędzić do 4.6 GHz:] A co do programu i szybkości machania, nawet optymalizacja zmienia dużo, tzn stopień optymalizacji kompilatora.

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...