Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

RM0008 Reference manual. Programowanie STM32.

qwert2000 01 Feb 2012 23:51 4327 35
Computer Controls
  • #1
    qwert2000
    Level 14  
    Witam. Na temat programowania STM32 prawie nie ma literatury. Te książki które są na rynku są mało wartościowe. Dlaczego nikt nie przetłumaczy RM0008
    Reference manual? To byłoby idealne. Na temat AVR jest kilka pozycji z dokładnym opisem procesora rejestry itd. Na STM32 nie. Autorzy skupiają się tylko na bibliotece do STM i programowaniu w C.
  • Computer Controls
  • #2
    McMonster
    Level 32  
    Bo to ekstremalne zadanie translatorskie. Ponad tysiąc stron bardzo technicznym językiem, praca na wiele tygodni, o pomyłkę łatwo, a zysk niewielki, żeby nie powiedzieć, żaden. Lingua franca elektroniki to angielski i wszyscy się z tym pogodzili.

    Najprościej kupić sobie polską książkę, albo po prostu zacisnąć zęby i nauczyć się języka, bez którego jak bez nogi w XXI wieku.
  • #3
    mrh
    Level 18  
    Programista powinien znać język angielski, ja tez jak czegoś nie rozumiem to korzystam z tłumacza internetowego.
  • #5
    User removed account
    User removed account  
  • #6
    qwert2000
    Level 14  
    Może i ekstremalne zadanie. Dla AVR dało się zrobić dla STM nie?
    Mam książkę do 51 ideał, wszystko rozpisane dla chyba wszystkich ówczesnych procesorów. Jak porównam "Mikrokontrolery AVR ATMega w praktyce" i "Mikrokontrolery STM32 w praktyce" to.... nie ma co porównywać.Dlaczego ja nie zrobię? Za cienki jestem. Tak szczerze powiedziawszy cały ten temat powstał że być może jaiś mądry mąż napisze coś sensownego. Myślę że taka książka miałaby o wiele większy zbyt niż to co powstało do tej pory.
  • #7
    Freddie Chopin
    MCUs specialist
    qwert2000 wrote:
    Może i ekstremalne zadanie. Dla AVR dało się zrobić dla STM nie?

    To teraz odpowiedz sobie na następujące pytania:
    1. Jak długi jest przetłumaczony datasheet AtMegi w porównaniu do RM0008?
    2. Jak często zawartość datasheeta dla tej AtMegi się zmienia w porównaniu do RM0008?
    3. Jak długo STM32 jest dostępny w sprzedaży w porównaniu do tej AtMegi?

    Teraz pomnóż te 3 liczby przez siebie i wyjdzie Ci prawdopodobieństwo powstania przetłumaczonego na PL RM0008 [;

    4\/3!!
  • #8
    qwert2000
    Level 14  
    Niewątpliwie masz rację. Tym niemniej marzy mi się aby powstała jakaś sensowna książka do STM32.
  • Computer Controls
  • #9
    Freddie Chopin
    MCUs specialist
    Przypuszczam że jest też problem licencyjny - nie można sobie raczej ot-tak-po-prostu wziąć wszystkich obrazków z tego datasheeta i wykorzystać w innym pliku bez zgody od ST, a owe ST wcale takiej zgody nie musi udzielić...

    4\/3!!
  • #10
    qwert2000
    Level 14  
    No to zgasło ostatnie światełko nadziei. Na rynku za to pojawi się kolejna książka typu "STM32. Aplikacje i ćwiczenia w języku C". To już o wiele lepszy jest kurs w EDW.
  • #11
    janbernat
    Level 38  
    No chyba że książkę o podobnym tytule napisał by Freddie Chopin.
    Ale powinien mieć na to jakieś godziwe roczne stypendium.
    Mogę publicznie zdeklarować 100zł miesięcznie.
    Ale potrzeba by jeszcze kilkudziesięciu kolegów- najlepiej takich którzy skorzystali z Jego wiedzy.
    No i jeszce jakiś prawnik- jak założyć fundację czy jak to zwał, jak znależć wydawnictwo i te wszystkie okropne prawnicze szczegóły.
  • #12
    McMonster
    Level 32  
    Na taki szczytny cel sam bym się dorzucił.

    Ale najprościej zacisnąć zęby i nauczyć się angielskiego na tyle, by zrozumieć RM. Tam nie ma nadzwyczaj skomplikowanego języka, są diagramy, a jak się już człowiek orientuje w terminologii, to ze słownikiem można już sporo zdziałać w krótkim czasie.
  • #13
    janbernat
    Level 38  
    Angielski to jedna sprawa.
    I tak jest konieczny.
    A mi chodzi o książkę- "Jak zacząć programować ARM i zaraz nie skończyć".
    Taką papierową z dołączoną płytką.
    Co to można poczytać w pociągu czy autobusie.
    McMonster- nie pisz że byś ale ile i na pewno.
    Żeby wyjaśnić nieporozumienia- nie twierdzę że Freddie Chopin chce taką książkę napisać.
    Myślę że powinien.
    Noblesse oblige.
  • #14
    nsvinc
    Level 35  
    Napisać taką książkę to bez wątpienia jest sztuka. ARM to nie AVR; ilość wiedzy i doświadczenia wymagana by stworzyć publikację o ARM jest niewspółmiernie wyższa, niż w przypadku 8bit AVR lub innych prostych procków (pic12/16/18).

    Skoro głupi manual do gotowego procka jak STM32 zajmuje 1k stron, TRM rdzenia to prawie 400 stron (gdzie oba dokumenty to czysto techniczny angielski w tym bardzo dużo skrótów), to ile stron musiałaby mieć ta książka pisana po polsku stylem "do poczytania w autobusie"? 2k? 2.5k?
    Ilość pracy włożonej w stworzenie książki będzie niewspółmierna do ilości potencjalnych zysków z tego przedsięwzięcia. Dodatkowo cały proces na pewno nie trwałby rok, lecz znacznie więcej.

    Idąc dalej: załóżmy, że książka powstała. Czy poświęcenie autora coś zmieni? Nie, bo nadal będą pytania typu "STM32 i wyswietlacz 2x16 nie działa".
    Na całej akcji zyska niewielka grupka ludzi, którzy faktycznie chcą coś porządnego zbudować w oparciu o ARMy.

    Prędzej i łatwiej byłoby zorganizować kursy, szkolenia, dla małych grupek ludzi, gdzie przez parę godzin 100% uwagi zostałoby poświęcone pytaniom początkujących...

    Co innego przetłumaczyć RM0008. To już prędzej, bo wystarczy w miarę biegle posługiwać się angielskim technicznym. To samo dotyczy TRM rdzeni, manuali do innych mikrokontrolerów czy not aplikacyjnych.
    Lecz do tego też musiałby się znaleźć chętny; aby to zrobić byłyby raczej potrzebne wolne popołudnia. Jak ktoś pracuje po 9..12h dziennie 7 dni w tygodniu, to mało prawdopodobne, aby bez ekstra motywacji, chciało się tłumaczyć taki manual...
  • #15
    janbernat
    Level 38  
    Potencjalne zyski z tego przedsięwzięcia mamy MY zapewnić.
    Autorowi.
    Dlatego pytam- ile kto zadeklaruje wpłaty co miesiąc na coś w rodzaju stypendium dla Autora.
    Jak Autor będzie miał zdeklarowaną wypłatę 7000zł na rękę co miesiąc przez rok- to może coś napisze?
    Jak dłużej- też może być.
    Ale- to nie manual- ale książka- odwołująca sie do manuala gdy trzeba.
    No i trzeba zdeklarować- ile.
    No bo wielu brało wiedzę darmo- a teraz- jak są wielcy informatycy na dobrze płatnych posadach- to może trzeba się jakoś odwdzięczyć.
    Choćby dla następnego pokolenia.
  • #16
    nsvinc
    Level 35  
    Trochę przesadziłeś z tymi "wielkimi informatykami". Wiedzy w większości przypadków nie brało się za darmo z książek po polsku, tylko ucząc się angielskiego i poświęcając bardzo dużo czasu na rozumienie oryginalnych dokumentacji i niezbędne szlifowanie języka. Więc jak widzisz, nie "za darmo", tylko za własny poświęcony trud i czas.

    Ja na pewno nie podejmę się pisania poważnej książki o ARMach; imho zdecydowanie zbyt słabo je znam. W większości przypadków jestem po prostu typowy user, który wykorzystuje mikrokontroler w konkretnym układzie.

    Prędzej sądzę, że taką książkę napisze ktoś, kto nie utrzymuje się z tej branży, a ktoś, kto siedzi w tym czysto hobbystycznie. Bo taki ktoś będzie miał ochotę i czas na rozgrzebywanie czegoś, na co zawodowy konstruktor po prostu nie ma czasu; e.g. nie będę się szczegółowo zagłębiał w np. działanie MPU dopóki nie będę miał potrzeby go użyć...
  • #17
    janbernat
    Level 38  
    Okropnie to wszystko oceniasz- w dodatku masz pewnie rację.
    W każdym- nawet najprostszym programie nie sięgamy po opcje nam jeszcze niepotrzebne.
    P.S.
    A jak to wkleić- nie dla acta?
  • #18
    nsvinc
    Level 35  
    Heh, sądzę, że po prostu reprezentuję podejście realistyczne. Budując układ za układem, "bo biznes", ciężko grzebać w ciekawostkach, niestety. Sam fakt tworzenia tych układów już wymaga praktycznie ciągłej nauki, lecz nie jest to wiedza potrzebna do napisania dobrej książki o ARM. W niej nie ma miejsca na rozkminę na temat propagacji fal ultradzwiekowych, sterowania wielofazowymi BLDC, tworzenia protokołów transmisji danych czy budowy przetwornic impulsowych.
    Taką książkę powinien napisać albo (mikro)profesor, albo hobbysta zapaleniec, który poświęci rok na rozkład takiego STM32 na pojedyncze bramki :]

    No bo ile się ogólnie wie na temat STM32? Inity napisać, wiedzieć jak działają podstawowe peryferia, NVIC, DMA, SPI, UART, Timery, ADC, EXTI, RTC, coś wiedzieć o drzewie zegarów i trybach oszczędzania energii. W oparciu o to buduje się 70% układów które prawidłowo pełnią założone funkcjonalności. W zależności od specyfiki danej branży, używa się CAN, USB, Eth... np. ja CANa i FSMC w STM32 znam na wylot, a o Eth nie mam zielonego pojęcia; nawet nigdy tego nie przeczytałem w manualu.

    A tego typu wiedza to stanowczo za mało aby od razu pisać podręcznik...
  • #19
    gaskoin
    Level 38  
    nsvinc - zapomniałeś uwzględnić inne dokumenty, które opisują działanie rzeczy niezwiązanych z samym układem.

    Niestety Janku nsvinc ma racje. Tego jest za dużo - multum stron, w dodatku opisy są bardzo zwięzłe. Jakby to chcieć rozszerzyć o dodatkowe opisy i przykłady to książka nie miała by 2,5k tylko 5k stron. Tak na dobrą sprawę to pewnie nikt z palca nie poda co gdzie i jak skonfigurować żeby działało każde peryferium. Tak czy tak zagląda się do tego manuala, czy się korzysta z tych procesorów tydzień czy 10 lat a książki często opisują jak skonfigurować np Timer w jednym konkretnym przypadku. Masz podane: wpisz to i tamto do tego rejestru i będzie on generował PWM dla diody. Jak chce się użyć timera do czegoś innego to wtedy i tak się zagląda na forum pisząc "pomocy nie działa".

    Zanim ktoś napisał by sensowną książkę o STM32, opisującą wszystkie możliwe konfiguracje czy w ogóle o Cortex-M3 to rdzeń stałby się zabytkiem :)
    Z resztą jak już wspomniano - te książki nie są dla konstruktorów. Ci nie mają czasu na czekanie aż takowa powstanie i wiedzę czerpią właśnie z tych angielskojęzycznych dokumentacji. W projektach często używa się konkretnych peryferiów dość często, innych rzadko lub w cale. Niektórzy mogą tu na forum (lub gdziekolwiek indziej) uchodzić za specjalistów, ale prawda jest taka, że najzwyczajniej w świecie, Ci potrafią lepiej szukać informacji niż inni :)
  • #20
    qwert2000
    Level 14  
    W sumie masz rację, pozostaje przegryzanie się przez pdfy. Teraz zaczynają lansować Cortex -M4. Za rok albo dwa coś innego itd.
  • #21
    Jado_one
    Level 22  
    Zamiast pisać o konkretnych procesorach i układach, lepiej byłoby napisać ksiązkę o samych algorytmach, które można by sobie później już wykorzystać w dowolnym procesorze. Algorytm może być opisany np. w C - bo ten język jest obecnie łatwo przenaszalny miedzy procesorami albo w jakimś ogólnym meta języku.

    Nie skupialibyśmy sie wówczas na samym sposobie np. transmisji między prockiem a pamiecią EEPROM, a skupili się np. na organizacji danych w tej pamięci, sposobach sortowania, przeszukiwania, itp....
    Albo - jak to widziałem juz na forum - temat wyswietlaczy graficznych. Nie interfejs i sposób sterowania konkretnym scalakiem, a np. sposób generacji figur na ekranie, obracania bitmap, zarządzania kolorami czy co tam jeszcze nam potrzeba.

    Albo algorytmy konwersji wyników, procedur matematycznych, itd, itp.....

    Na pewno można tego uzbierać na duża ksiązkę, a dzieki oderwaniu od sprzętu, tematy te pozostawałyby na długo aktualne.

    A manuale zostawić w oryginale :-)
  • #22
    zdziwiony
    Level 24  
    Przenoszenie kodu w C między procesorami to są bajki. Sukces w opanowaniu w dowolnym języku danego procka to poznanie jego architektury.
  • #23
    Jado_one
    Level 22  
    Nie chodzi o kod tylko algorytm czyli sposób rozwiązania danego problemu.

    A znajomość danego procesora jest w kazdym przypadku pożądana.
  • #24
    zdziwiony
    Level 24  
    Algorytm w mikroprocesorach przeważnie ściśle związany jest z zasobami procka i przenoszenie bez poważnych przeróbek jest mało realne. Na przykład program korzystający z 8 zewnętrznych przerwań na program do procesora który ma tylko 2. Zgadzam się z tym że powinno być więcej książek do ARMów, a zwłaszcza bardziej sensownych niż to co do tej pory powstało.
  • #25
    Jado_one
    Level 22  
    Zdaje się, że "nadajemy" na róznych poziomach abstrakcji ;-) : http://pl.wikipedia.org/wiki/Algorytm

    A zwłaszcza fragment: "Należy zdawać sobie sprawę z różnicy między algorytmem, będącym niezależnym od jego implementacji przepisem, a programem, który może zostać zinterpretowany i wykonany przez komputer. "

    Jak bedziesz miał algorytm, to sam sobie dokonasz jego implementacji na procesor, który aktualnie znasz i w którym czujesz się najlepiej.
    Tu nie chodzi o żadnego gotowca, na zasadzie "kopiuj i wklej".

    To o czym piszesz, to jest implementacja danego algorytmu - na jednym procesorze może być zrealizowana z uzyciem 8 przerwań, a na innym 2, a na jeszcze innym bez zadnego - niezaleznie od tego wynik działania kazdego z programów musi być taki sam.
  • #26
    zdziwiony
    Level 24  
    Nie każdy algorytm będzie działał na każdym procesorze. Trywialnym ograniczeniem może być ilość pamięci, czy prędkość.
  • #27
    Jado_one
    Level 22  
    To juz nalezy do decyzji i oceny programisty - na jaki procesor dany algorytm moze zostać zaimplementowany, a na jaki nie.

    Tak czy inaczej mnie bardziej interesowałaby ksiązka z algorytmami niż z gotowcami pod konkretny procesor - bo szybkośc powstawania nowych rodzin procesorów zaczyna być coraz większa i czas pisania ksiazki oraz cykl wydawniczy zajmują już więcej niż czas miedzy pojawianiem sie kolejnych rodzin procesorów.

    A może taka ksiązka juz jest? ;-)
  • #28
    mirekk36
    Level 42  
    zdziwiony wrote:
    Algorytm w mikroprocesorach przeważnie ściśle związany jest z zasobami procka i przenoszenie bez poważnych przeróbek jest mało realne. Na przykład program korzystający z 8 zewnętrznych przerwań na program do procesora który ma tylko 2.


    Też uważam, że kolega w ogóle albo nie do końca rozumie co to są algorytmy :(

    A są one oderwane od platformy. To czy można dany algorytm zrealizować na jednej platformie a na innej nie to już całkiem inna sprawa panie kolego. I niestety błędem wielu początkujących jest to, że zachłystują się taką czy inną platformą - gdy nauczą się obsługiwać takie lub inne moduły albo poznają dokładnie architekturę mikrokontrolera, jednocześnie uważając że opanowali już jakiś tam język programowania. Tym czasem za chwilę tu czy ówdzie na forum zjawiają się z pytaniem np: "a jak zorganizować bufor cykliczny do komunikacji RS232/485?" .... tak to trywialne - ale to pytanie o algorytm, tylko nie każdy z nich zdaje sobie z tego sprawę. Tymczasem algorytm na to jest prosty a jego wykonanie na każdej platformie może być całkowicie różne. Na jednej będzie użyte jedno a w innej dwa przerwania. Tymczasem to właśnie język C pozwoli płynnie przejść z jednej platformy na drugą. Jedyne z czym musi sobie poradzić programista znający już zasady algorytmicznego myślenia, to właśnie ..... tylko opanować nową architekturę, ale też środowisko programistyczne jeśli zaczyna to poznawanie od nowa. Fakt w przypadku niektórych mikrokontrolerów jak wspomnianych tu STM będzie więcej do poznania niż w przypadku innych. Ale to nie ma nic wspólnego z nauką programowania jako takiego.

    I dlatego na końcu i tak pozostaje konieczność posługiwania się czytaniem ze zrozumieniem w języku angielskim dokumentacji technicznych - bez tego ani rusz.
  • #29
    zdziwiony
    Level 24  
    "Algorytmy i struktury danych"
    Michał Jankowski. "Elementy grafiki komputerowej"
    "Algorytmy aproksymacyjne"
    I mnóstwo innych.
  • #30
    mirekk36
    Level 42  
    mirekk36 wrote:

    A są one oderwane od platformy. To czy można dany algorytm zrealizować na jednej platformie a na innej nie to już całkiem inna sprawa panie kolego..


    Np algorytmu na jakiś rodzaj zaawansowanego renderingu z antyaliasingiem na poziomie X, nie zrealizujesz np na platformie mikrokontrolerów 4-bitowych a przynajmniej nie w takim zakresie założeń szybkości jakie dzisiaj są wymagane dla pewnych procesów. Ale co to ma wspólnego z przenoszeniem kodu - pytam jeszcze raz?