Napisałem program obsługujący komunikację RS232 dla płytki STM32 P103: - dokumentacja płytki - schemat Niestety łącząc docelowo przez konwerter RS232 -> RS485 i podłączając do serwomechanizmu RS28 dynamixel podłączyłem raz zasilanie 15V, 1.2A na lini danych RSa... I tu pierwsze pytanie......
OK, działa. Po kolei: - poczytałem Reference Manual. Wbrew temu, co pisał autor książki "STM32 w praktyce" z której się uczyłem, operacje na rejestrach nie są nie wiadomo jak skomplikowane a sam manual nie jest wielce niestrawny :-) - niestety, po napisaniu kodu na rejestrach doszedłem do tego samego,...
O co Tobie człowieku znowu biega ? Następny się znalazł, to może lenistwo to też cecha narodowa ? Kolega Piotr Piechota podał Tobie wszystko co trzeba, szczegółowy opis znajdziesz w Reference Manual. Wystarczy ściągnąć, otworzyć i przeczytać. W razie wątpliwości pytać, a nie na odwrót... Żeby coś...
Korzystam z: Układ STM32 P103 (procesor STM32 F103 RBT6) Programator ARM-USB-OCD-H Środowisko CrossWorks v2.1.1 Problem: Pisząc własną obsługę USB wzorowałem się na przykładzie dla Keila (USB HID) i paczce z przykładowymi programami do USB ze strony Olimexa dla układu STM32 P103. Pierwszy (dla...
michalko12 A nie LR (Link Register), zawiera adres instrukcji ktora wywolala wyjatek po odjeciu od niej 8. Jak nie jesteś pewien sprawdź, a nie poprawiaj kogoś kto pisze dobrze. Za Cortex-M3 Technical Reference Manual: "LR is set to EXC_RETURN to exit from exception. EXC_RETURN is one of 16...
Nie potrafię tego wytłumaczyć. I nie podejmuję się również research'a tej materii, gdyż tylko twórcy tej (tfu!) biblioteki wiedzą, jak ona działa. Manual mówi, że aby włączyć pin A0 na wejście z podciąganiem, w SFRach musi być to, co podałem. A skoro manual tak mówi, to tak jest.
Jeśli jest jakaś literatura, proszę o naprowadzenie Oczywiście że jest. Nazywa się programming manual (w załaczeniu do M4) oraz "Cortex-Mx Technical Reference Manual" na stronach ARM-a. Są też fajne książki Josepha Yiu (wygoogluj sobie - kupisz na amazonie) Jaka jest najprostsza metoda do zapisania...
To nie tak z tym AF. GPIO ma dwa rejestry AFRL i AFRH, które ST wymyśliło sobie zrobić w dwuelementowej tablicy (AFR Warto też zaglądać do pliku stm32f4xx.h, żeby dokładnie zobaczyć jak oni to podefiniowali - bo czasami manual swoje, a tam swoje :-)
Witam Jak że jest to mój pierwszy wpis tego typu to proszę o wyrozumiałość. Słowem wstępu. Chciał bym się z wami podzielić kilkoma moimi doświadczeniami w programowaniu mikrokontrolarów STM32F103 i STM32L152 (STMDISCOVERY) za pomocą otwartej biblioteki libopencm3 ( ). Ja pracuję tylko na Ubuntu...
Stary temat ale podepnę się bo mam podobny problem. Próbuję skomunikować STM32F429 (płytka discovery disco) z Atmegą8 (nie 88). STM Master Reviever <<>> Atmega Slave Transmiter. Wzorowałem sie trochę na kodzie kolegi i trochę na tym tutorialu: Problem kolegi kolegi polegał na niepoprawnej...
W Reference Manual, w rozdziale o GPIO i AFIO (zakładam, że mówimy o STM32F1) jest taki podrozdział o nazwie "JTAG/SWD alternate function remapping" i tam masz rozpiskę. Dla STM32F4 w rozdziałach o GPIO jest po prostu podany stan początkowy rejestrów odpowiedzialnych za tryb z uwzględnieniem tego, że...
Witam Niedawno przyszła do mnie płytka NUCLEO F103RB. Chciałbym nauczyć sie programowania na STM32 na rejestrach, dlatego tez zacząłem przeglądać reference manual dla STM32 Dowiedziałem sie, że w przeciwieństwie do Atmeg, tutaj najpierw należy doprowadzić zegar do portów aby je uaktywnić. dlatego...
Jak już wyżej jest napisane - trzeba ustawić bit SSM i SSI w rejestrze CR1 dotyczącym SPI. Na przyszłość - najpierw manual, potem forum, potem twierdzenie że z STM32 coś jest nie tak - nie odwrotnie. 4\/3!!
Zacząłeś przygodę chyba najgorzej jak się da ;] Zamiast "wędki" dostałeś "kilo ryb", teraz ryby wszamałeś i co dalej?... Aby zacząć pracę z STM32 potrzebne są TRZY dokumenty: * CortexM3 Technical Reference Manual (ze strony ARM) * STM32 Manual (RM0008, ze strony ST) * datasheet do STM32Fxxxx (bieżący...
Nikt nie mówi o tym, że enkoder będzie się poruszał w taki sposób, tylko o tym, że jak się zatrzyma w takim akurat niekorzystnym położeniu, że na wyjściach będzie "migać", to może być kłopot. W istocie teoretyzuję, jednak manual do STM32 też pokazuje te oscylacje (obrazek demonstrujący działanie timera...
nie ma tego w dokumentacji ZL30ARM, która jest zlinkowana 1 poście. Możesz zobaczyć. Wszystko jest. Panie, czytać pan schematu nie potrafisz, Ty masz piny od wyświetlacza podłączone do dwu rzędowej listwy CONN12. I teraz bierzesz do łapki kabelki i dopiero je łączysz z GPIO mikrokontrolera. Mały hint,...
Wykrywacz Twojej konstrukcji? Co przedstawiają wykresy? Ciekawe urządzenie. Wracając do tematu: mam zamiar wyświetlać obraz który będzie zmieniał się raczej rzadko, więc SPI dało by radę. O interfejs równoległy wbudowany w STM32 pytam dlatego, że postawiłem sobie za zadanie wykorzystać możliwie dużo...
Witam, Od 2 tygodni mam moduł STM32-Mini z STM32F103VC. Próbuje uruchomić wewnętrzny termometr i przesłać temperaturę przez USART do komputera. USART działa bez problemu i odczytuję wartości w Terminalu. Jeśli chodzi o termometr to nie działa i nie wiem dlaczego. Według Reference Manual (RM0008) procedura...
Tak sobie pomyślałem: Czy można znaleźć informację jaki prąd można przepuścić przez pin uC w bardzo krótkim czasie? Teraz włączam okresowo IR na 40us i ciekawe o ile można przekroczyć podstawowe 20..25mA. W przypadku pinów STM32 nawet nie chodzi o sam prąd a o spadek napięcia. NP. przykładowo według...
W reference manual każdego stm32 masz coś takiego: W tej tabelce bierzesz tryb który cię interesuje i ustawiasz te bity z danego wiersza jakie są w nim napisane.
Szanowni Koledzy, Czy spotkaliście się z czymś takim jak function reference manual do bibliotek stm32? Wprawdzie z tego co tam widzę i co napisano już na tym (i nie tylko tym) forum te biblioteki to kiszka, ale do zrobienia jakiejś implementacji na szybko jeszcze można scierpieć optymalizację wg ST....
Sposób działania linii nRTS i nCTS jest jednoznacznie opisany w STM reference manual. Jeśli Ci to odpowiada to możesz. Albert
W reference manual jest wyraźnie napisane, że max to 18MHz, ja uzyskuje mimo tego 36MHz.. Nie wiem dlaczego wymyślili, że szybciej niż 18Mhz nie będzie chodzić.. może coś ze stabilnością, ale u mnie w testach wszystko było OK. Podaj zawartości jeszcze rejestrów od zegara itp, to tajemnica 72MHz się...
Nie zajmowałem się jeszcze tym tematem, ale w datasheecie od ST: "The JTAG TMS and TCK pins are shared respectively with SWDIO and SWCLK and a specific sequence on the TMS pin is used to switch between JTAG-DP and SW-DP." Co do sekwencji przełączającej, nie ma jej w Cortex-M3 Technical reference...
Dzięki za naprowadzenie na właściwy trop. Jeszcze trochę postudiuję notkę STMa, może coś stworzę. Dodano po 43 Przejrzałem pobieżnie notę STMa "RM0008 Reference manual" i nie zauważyłem możliwości ustawienia aby timer zerował się po porównaniu. Natomiast moją uwagę przykuło takie zdanie: "16-bit...
Przecież jeśli zainstalowałeś paczkę OpenOCD z mojej strony to manual jest w środku... 4\/3!!
A ja dorzucę pytanie o -fpromote-loop-indices. GCC manual milczy o takiej opcji, googiel też za wiele nie pomaga, a u mnie się z nią nie kompiluje. Albert
Witam, Wg manual'a do procesora Cortex M3 jeśli się zmienia kod programu lub/i tablicę wektorów przerwań, to przed następną instrukcją powinno się użyć instrukcji ISB, DSB i DMB aby bufory załadowały nowe wartości.
Przyznam że te biblioteki to trochę nieporozumienie - przynajmniej te od usb. Choć te od peryferiów też można by było napisać. Jednak prawda jest taka że dla ludzi nie obeznanych z programowaniem tych procków -rejestrami, flagami, maskami, adresami i całym mnóstwem innych rzeczy - to ułatwiają one...
Czołem! Trafiłem na zagadkę. W rdzeniu siedzi sobie rejestr o nazwie Vector Table Offset Register (opis w Technical Reference Manual str. 8-21). Jak wiadomo służy on do określania lokalizacji tablicy wektorów przerwań. Pytanie: dlaczego wartość offsetu należy wpisać do tego rejestru bez przesunięcia...
Ja korzystałem z biblioteki USB-FS-Device jakiś czas temu. Dołączone są do niej przykłady, które bez problemu udało mi się odpalić. Zresztą nie wymagało to praktycznie żadnej wiedzy i filozofii. Przykłady pokazują jak odpalić USB w trybach: Audio_Speaker, Custm_HID, Device_Firmware_Upgrade, JoyStickMouse,...
Tak to jest jak się z tej ogłupiającej biblioteki korzysta. Zajrzałem do core_cm3.h , tam funkcja SysTick_Config(ticks) przyjmuje postać: static __INLINE uint32_t SysTick_Config(uint32_t ticks) { if (ticks > SysTick_LOAD_RELOAD_Msk) return (1); ...
Embedded boot loader The embedded boot loader is located in the System memory, programmed by ST during production. It is used to reprogram the Flash memory with one of the available serial interfaces: ● In low-, medium- and high-density devices the bootoader is activated through the USART1...
[url=]Dawny temat o SPI Zrobiłeś to jak w tym temacie (SSM i SSI na 1)? Bo jak rozumiem to jest fragment kodu i wykorzystujesz NSS i MISO do czegoś innego? Jak zrobić całą konfigurację i jakie bity w rejestrze ustawić znajdziesz tu: [url=]Reference Manual.
biblioteka STM nie jest ok Święte słowa(; Wystarczy spojrzeć na problem z SPI (na rejestrach trywialny): Zainteresuj się bitbandigiem -> można jeszcze prościej grzebać w rejestrach, z dość sporą oszczędnością pamięci Pozwól, że od razu naprowadzę: [url=]How can I use Cortex-M3 bit-banding from...
0b10100010100011101100101100101000 0b1010 0010 1000 1110 1100 1011 0010 1000 0xA28ECB21 Jak widać też można się tak pomylić: 0xA28ECB28 . Akurat STM odwalił kawał dobrej roboty robiąc takie definicje, łatwo i przyjemnie się taki kod czyta, spoglądając do Reference Manual.
Witam, Od pewnego czasu piszę moduł do komunikacji przez usarty, które łączą ze sobą dwa procesory (103ret6 i 103rbt6, co jednak nie ma znaczenia), połączenie pełne (tx->rx, rts->cts). Ze względu na możliwość występowania wielu innych przerwań oraz przy wymogu dużej przepływności przez usart zmuszony...
Witam ram IS61LV25616AL10 w sumie Lower-byte Control i Upper-byte Control ma. Schemat z manual 14779.pdf. Taki sam schemat był w STM3210E-EVAL. Tzn cały ram działa dobrze na 100% przy uruchomieniu procka czytam go całego po 1 kilo i porównuje bufory odczytane i zapisane i jest OK. Schemat taki ale...
Hehe Ad 1. Też zaglądam do tego, ale ciężko idzie :) Ad 2/3/4. Jest sens zaglądać do tego, jeżeli póki co nie mam zamiaru klepać w ASM? Ad 5. To podstawa bo ściągnąłem sobie jakiś układ z Chin i inaczej połączone jest wiele rzeczy. Zastanawiam się czy jakieś ogólne książki o mikrokontrolerach...
Czemu w porównaniu nie zostały uwzględnione cortex-y Philipsa (LPC1xxx). Jakby były uwzględnione to prędkość zmian portu w przypadku tych układów wyglądała by następująco: Poniżej fragment kodu w asmie który powinien zostać odpalony w ramie w celu większej szybkości działania. //pobieranie adresu...
Najlepszy materiał, a zarazem jedyny który Ci będzie potrzebny, to "Reference manual" od ST. Naprawdę (; Zrezygnowałbym na Twoim miejscu z "kreatorów" i tym podobnych ułatwiaczy, bo potem okazuje się, że efekt jest odwrotny do zamierzonego. 4\/3!!
Cześć Chciałbym zrobić emulowanego EEPROM-a i mam problem z odblokowaniem zapisu do pamięci FLASH. Pierwsze co zrobiłem to FLASH->KEYR=0x45670123; FLASH->... Następnie sprawdziłem stan bitu LOCK w rejestrze CR i jest na 0 czyi dostęp do flasha jest możliwy. Chciałem zrobić...
Witam! Mam problem, z którym nie mogę sobie poradzić od jakiegoś czasu... Problem tkwi w identyfikacji instrukcji powodującej wylot wyjątku. Ale od początku: Program łapie się w MemManageFault z flagą IACCVIOL (zdarza się również BusFault z flagą IBUSERR, ale pewnie usunięcie powodu wystepowania...
Mały przykładzik z ustawieniami NVIC, priorytety przerwań i gdzie znaleźć opis w dokumentacji(PM0056): static void NVIC_conf(void){ //-------... |= (3<<8); //[Optional... Define interrupt fielding group,...
Witam, potrzebuje konwersji ADC trzech napięć w jednej chwili czasowej. Dokładnie chodzi o to by "złapać" trzy napięcia w jednej chwili, a konwersja do postaci cyfrowej, może zostać zrealizowana pojedynczo. Mikrokontroler dsPIC30f6010A posiada 4 układy sample and hlod. Czy jakiś stm32 posiada takie...
Pytanie tylko czy I2S potrafi dzialac w trybie "full duplex",... Simplex communication (only transmitter or receiver) wtedy zadne CS nie sa potrzebne a ja moglbym uzyc tylko jednego ISP a drugiego do karty SD :) Do karty możesz użyć SDIO.
Witajcie, Kontynuując moją przygodę "chirurga ARM" doszedłem (i zatrzymałem się) do plików startup'owych i linkera. Przeglądając czarne zakamarki internetu znalazłem jakieś przykłady (Fredie'go też) lecz nie rozumiem na jakiej podstawie one powstały. Jako główne źródło podawana jest biblioteka standardowa...
Witam, to temu, że timer 6 będzie taktowany z prędkością 2x większa niż magistrala APB1. Wytłumaczenie masz w reference manual (u mnie Doc ID 13902 Rev 11) str. 84, 85.
Znacznik EOC jest kasowany programowo lub przez odczyt rejestru ADC_DR, co jest opisane w p. 11.12.1 Reference Manual. Wygląda na to, że odczytanie danej z ADC przez DMA kasuje znacznik, nim Twój program zdąży zauważyć jego zmianę.
odpisałeś w trakcie edytowania przeze mnie pierwszego posta. Użycie zmiennych pomogło na błąd debuggera lecz problem tego samego adresu pozostał. Co ciekawe, podglądając pamięć okazuje się że wartości inicjalizacji są zapisane do pamięci prawidłowo. Problem polega na przypisaniu złych adresów do wyrażeń...
www.google.com www.usb.org -> developers www.st.com/stm32 ->resources -> user manual. Przykro mi, ale bez wkładu własnego się nie obejdzie. USB host to nie zabawka.
Ok, już widzę dlaczego trzymasz się tak kurczowo tej wersji: Czyli jeśli taktujesz magistralę APB z częstotliwością podzielną przez 3 czyli 24MHz to częstotliwość taktowania TIMera będzie dwa razy mniejsza czyli 12MHz. Tylko ja nie dzielę częstotliwości APB przez 3. Taktowałbym ją z 3 razy...
tylko że nie wiedziałem jaka jest różnica między AF, a Out Alternate Function stosuje się jeśli chcesz przestawić pin na WYJŚCIE z jakiegoś układu peryferyjnego, np. wyjście PWM z timera, nadawanie z SPI, ... NSVINC nie każdy jest tak genialny jak Ty, niektórzy dopiero sie ucza Chodzi po prostu...
Oczywiście. Jedyny naprawdę portrzebny plik to STM32F10x_map.h. Żaden więcej. Manual w łapę - i tworzysz cudowne, szybkie, stabilnie działające urządzenia, a dodatkowo nabywasz uniwersalną praktyczną wiedzę jak działają procesory ARM ;]
Witam! Mam kilka prawdopodobnie błahych spraw, ale nie rozumiem dlaczego tak, a nie inaczej. Ponieżej program wykorzystujący timer do migotania diod. [syntax=c]#include "stm32f10x.h" void TIM1_UP_TIM16_IRQHandler(void) { TIM1->SR&=~TIM_SR_UIF; // zerowanie flagi przerwania if(GPIOC->ODR!=0x300) ...
Buforowanie domyślnie jest włączone, po resecie trzeba tylko skonfigurować latencję. Możesz znaleźć w na stronie ST manuala "PM0042 Programming manual STM32F10xxx Flash programming" w którym mechanizm ten jest omówiony, opisane są też rejestry sterujące. Co do branch prediction, to sprawa jest cięższa,...
O bit-bandingu szukaj w dokumentacji ARMa. Chodzi o to, że w pewnym obszarze SRAM lub IO są bity, które w innym obszarze mają własne adresy 32bitowe Cortex™-M3 Technical Reference Manual Normalnie w ARM operacje na poszczególnych bitach w komórkach pamięci lub w rejestrach peryferiów odbywają...
Ale wciąż czekam na opinie! kogoś kto zrobil coś duzego na tych bibliotekach! Ale co według Ciebie znaczy "duże"? Ja robiłem może nie coś ogromnego w sensie objętości we Flashu, ale ze skomplikowanymi zależnościami czasowymi na STM32F103VD/VE. Używałem przerwań i robiłem rekonfigurację różnych...
Wszystko masz w Cortex™-M3 Technical Reference Manual. W RM0008 w sekcji Interrupts and events masz numery IRQ. Odczytaj jeszcze rejestr NVIC: Interrupt Control State Register (0xE000ED04) Interrupt Set-Pending Register (0xE000E200-0xE000E21C) oczywiście po zatrzymaniu w Default_Handler()
Timer2 może być maksymalnie taktowany 36 W Reference manual- jest napisane: "TIM2,3,4,5,6,7 if(APB1 prescaler = 1 ) x1 else x2" W konfiguracji rcc mam: [syntax=c] //ustawienie PLLMUL - x6.5, PLLSRC- wejscie z PREDIV1 , APB1- HCLK/2 RCC ->CFGR |= (RCC_CFGR_PLLMULL_0 | RCC_CFGR_PLLMULL_2...
www.st.com - tyle że nie interesuje Cię datasheet, a manual. Było o tym pisane ze sto razy. 4\/3!!
Skoro nie masz problemu z timerem, to po co w ogóle o nim pisać i po co testować program który ma też przerwania od timera? Niemniej jednak na początek brawa za to, że NIE używasz słynnego i popularnego badziewia (; Wg mnie (skoro chodzi o pin zerowy), powinieneś konfigurować rejestr AFIO->EXTICR[0],...
Witam, Zagłebiam się powoli w procesor STM32F107 i widzę, że nie będzie łatwo :-) Pamiętam wcześniejszą dyskusję o nieużywaniu biblioteki "Standard Peripherals Library". OK To jak w takim razie zrealizować cos takiego, znanego z innych procesorów: np. GPIOA_CRL = 0x44444444; W pliku STM32F1x.h...
Tak: user manual do stm32....
Organizacja pamięci Reference manual rm0008 strona 489. 0x20000 to 16 bit adresowy(linia \RS) adresowanie 16 bitowe stąd x2
A z pliku RM0008 nie daję rady samemu tego rozpracować :( PM0075 (dla XL to PM0068) (dla Value Line PM0063) PM - Programming Manual
Nie zauwazylem zadnej struktury dla SysTicka poza tymi definicjami. Zajrzyj do core_cm3.h , tam jest gotowa funkcja z CMSIS SysTick_Config(uint32_t ticks) i tam też znajduje się odpowiednia struktura w tym headerze. SysTick jest dostarczany z rdzeniem przez ARM. Dlatego konfigurację NVIC, ITM czy...
Trzeba przeczytać manual. 4\/3!!
Zakomentowanie linii "ADC1->CR2 &=~ ADC_CR2_JSWSTART;" też nic nie dało. Ale tego ma nie być. Generalnie naprawdę przejrzyj manual - rozdział o ADC jest bardzo rozbudowany i jest tam sporo opisów. 4\/3!!
1. Datasheet w STM32 to nie to samo co datasheet dla AtMegi (jeśli się akurat nimi interesowałeś wcześniej). Potrzebny Ci reference manual dla STM32 - ze strony ST oczywiście. 2. Te trzy kroki o których piszesz wystarczą, ale pod warunkiem, że masz sprawny startup, tablicę wektorów, skrypt linkera...
Zapytałem z ciekawości, bo robię podobne urządzenie. Co do zagadnienia - zalecana jest kalibracja po włączeniu zasilania. Tyle manual. Te kody korekcyjne są trzymane w ADC_DR. Może wykonać prosty test - skalibrować, wyświetlić kod korekcyjny. Potem podgrzać lub schłodzić układ (zmienić temperaturę pracy),...
Teraz już nie szuka się datasheet'ów tylko user manual'e. Jakoś tak ostatnio wszystkie firmy zaczynają robić niestety.
Jeśli o mnie mówisz to ani się nie czepiam? Patrzyłem na przykłady z książki z BTC o STM32 i w nich są przykłady użycia czy to I2C, czy ADC i za każdym razem zegar włączany jest dla peryferium, AFIO oraz GPIO. I nie wiem dlaczego? Wywal książkę do kominka i posługuj się Reference Manual, bo się w...
"Szkoda tylko, że SPL nie ma nawet jednej linijki kodu traktującego o dostępie do pendrive, systemie plików, odtwarzaniu wave'a itd" - ok, ale to trzeba wiedzieć, a więc już się w tym orientować, przecież napisałem że dopiero zaczynam, jeszcze nie wiem dokladnie do czego te biblioteki służą, co zawierają....
No to coś się w końcu urodziło. Dzisiaj uruchomiłem płytkę vldisc. od zera, tylko wykorzystałem startup ze stosem i wektorami przerwań oraz - oczywiście - manual. Wszystko bez bibliotek i przykładów - zegar, PLL, SysTick z przerwaniem, gpio. Diody migają, przycisk działa:) Zajęło mi to 4 godz, całkiem...
Ale gdzie jest to napisane jeśli pamiętasz? Czytałem Datasheet STM32F103RB, Reference Manual i jeszcze parę innych i nie znalazłem nic co by wyjaśniało te przerwania.
No ale czemu nie przejrzysz DOKŁADNIE manuala do tego układu? Przecież w nim są szczegółowo opisane tryby pracy takie jak input capture, czy PWM capture (czy może input PWM, nie pamiętam jak on się nazywa) - w tych trybach właśnie masz zmierzony czas impulsu. Zamiast brnąć na ślepo po prostu przejrzyj...
Reference manual + Datasheet + [url=] + płyta rozwojowa
Proponuję więc coś innego niż komenda "mdw", która służy raczej do odczytu pojedynczych komórek w pamięci... Ten manual na prawdę nie jest taki długi, żeby nie dało się choć przejrzeć indexu, a gwarantuję Ci, że komenda służąca do tego o czym piszesz nazywa się "odpowiednio", a do tego jest bliżej początku...
Nie chcę się przelicytowywać itd, ale to, co tam jest napisane to bzdury. Też mogę napisać na blogu, że GPIOB to rejestr, którym konfigurujemy Timer3. SysTick nie jest wbudowany w żaden NVIC. Jest wbudowany w rdzeń ARM i nie ma nic wspólnego z NVICem. Rejestr SysTick nie jest żadnym rejestrem kontrolera...
No ale w innych mikrokontrolerach jakoś jest to możliwe bez "cudownych" narzędzi, tutaj robi się to tak samo. Ja np otwieram arkusze excela, wypisuje co mi potrzebne, potem sprawdzam czy tak się da - oczywiście najpierw wśród "normalnych" pinów. Jeśli nie da się "normalnie", to przechodzę do tych zremapowanych,...
No ale w czym problem - patrzysz w manual i po prostu zmieniasz prędkość. Pewnie nawet niczego nie trzeba wyłączać, tylko trzeba zadbać o to, by w momencie zmiany nie yło NIC wysyłane. A jakbyś się kiedyś zastanawiał, czy konfigurowanie wszystkiego w setce linijek z samymi ORami i AND-NOTami jest...
Niby można się domyśleć że TIM2 Jest 32bitowy, ale nie chodzi o to aby się domyślać. I słusznie, bo timery w STM32 nie są 32 bitowe. Nawet w pierwszym zdaniu opisu jest to napisane "wprost" (wręcz "jak krowie na rowie"): 15 General-purpose timers (TIM2 to TIM5) ... 15.1 TIM2 to TIM5 introduction The...
Piszę sobie prostą bibliotekę do obsługi magistrali i2c, narazie zacząłem od wysyłania danych. Ciężko mi odnieść jednak sposób działania tego w symulatorze do tego co jest napisane w Reference Manual... U mnie działa to tak: 1. Ustawiam bit START w rejestrze CR1 2. Po wysłaniu warunków startu wyzwalane...
Cześć! Mam za zadanie wykonać generator sygnału sinosoidalnego o regulowanej amplitudzie i częstotliwości rzędu 50-100kHz. Potrafię wykonać wszystkie operacje związane z tym zadaniem, ale nie mogę uruchomić przykładowego programu na DACa, aby opanować jego sterowanie. Skorzystałem z dwóch przykładów...
Domyślna wartość - to 1 (czyli włączone wyrównanie, ale ja nie dotarłem do jednoznacznego potwierdzenia, że tak musi być wg. ARM - tak JEST w tych procesorach, które znam). Na tym w zasadzie można by zakończyć, bo: The STKALIGN bit in the Configuration and Control Register (see the relevant ARM...
Co to niby ma być? USART1->BRR = (24+(0.9216/2))/0.9216; Zmieniłem na: Popatrz, jak zaprogramowałeś DMA - po 8 transferów, miały być 4 po 16 bitów z ADC do pamięci i 8 po 8 bitów z pamięci do USART. Poprawione, usunąłem również priorytety: Założę się na ślepo (a STM32F1 nie znam), że to...
Mógłbyś może zdradzić rąbka tajemnicy? Siedzę nad tym 2h i zaczyna mnie to lekko mówiąc denerwować. Patrzę na manual, kody z internetu i pustka. Zegary od portów są załączone USART działa, ale przerwania nie.
Ładny OFF się tu zrobił. Dziękuję wszystkim za odpowiedź. Programowałeś jakiś uC wcześniej kiedykolwiek? Tak, były to procesory 8051 w języku C z pomocą Keil'a. Tak jak Panowie piszecie, spróbuję czy dam radę. Zakupiłem sobie jeszcze płytkę stykową, kilka diod, czujnik temperatury, kondensatory,...
Nie mam dokumentacji od twojego procka przed nosem, ale jeżeli APB2 ma 50Mhz to prawdopodobnie SPI1, sprawdź w dokumentacji czy nie ma tam dodatkowego preskalera. Jeżeli SPI ma 50Mhz to musisz to podzielić przez 31,25 żeby mieć 1,6Mhz na wyjsciu. "SPI_InitStructure.SPI_BaudR... = SPI_BaudRatePrescaler_8;...
Dyrektywy - zwykłe #define. Ale jak korzystasz z jakiegoś środowiska programistycznego to zapewne definiuje ono to za Ciebie odpowiednim argumentem kompilatora. Np. w tutorialu Freddiego dla STM32F1 jest w Makefile'u definicja ("-DSTM32F10X_xD"). Wyboru zegara dokonujesz programowo poprzez konfigurację...
Manual o IDLE mówi: An Idle character is interpreted as an entire frame of “1”s followed by the start bit of the next frame which contains data (The number of “1” ‘s will include the number of stop bits). Czy ktoś może sprawdzał praktycznie kiedy faktycznie pojawia...
Polecam na początek zerknąć tu: (strona 90 i następne) Skoro nie używasz PLL to sygnał zegarowy 25MHz powinien docierać (przy wszystkich prescalerach ustawionych na 1) do wejścia taktującego timer. Tak więc APB1 = 25MHz. Dalej (czytając ten manual od góry) zadajmy sobie 2 pytania: 1. Czy pod ten...
Nie używam I2C z osobistej niechęci do tego powolnego i wrażliwego na zakłócenia interfejsu, ale patrząc w dokumentację, w reference manual dla STM32F40x/41x, znajduję taki zapis na stronie 729: Bit 10 ACK: Acknowledge enable This bit is set and cleared by software and cleared by hardware when PE=0. 0:...
Datasheet i reference manual twoim najlepszym przyjacielem. Jak patrze na te STMu to tam krok po korku ciągną za rączkę jak coś uruchomić.
Dr Piotrva. Oczywiście poszło od razu przy domyślnych ustawieniach Flashloadera ST. Dziękuję pięknie. Ojjjj, te przyzwyczajenia z AVR - trzeba chyba na chwilę zaorać tą szczegółową wiedzę i zacząć od tabuli razy. Drukuję manual do procesora - tam pewnie jest to wszystko napisane. Ale żeby nie tracić...
Jest z tym dokładnie tak, jak opisano to w Reference Manual dla uC, którego używasz. Zajrzyj do manuala i wtedy zadaj stosowne pytania. żeby Twój program zadziałał, musisz wyłączyć Boot Mode. Sam program musi być skompilowany dla adresu 0 i zaprogramowany pod 0x08000000. Może też być skompilowany...
Ad.1 any help would be fine STM32L152RBT6 has USB in "device" mode. You shoud add pull-up resistor on line D+ as it's shown on linked schematic. Source: www.beyondlogic.org/usbnutshell/usb2.sht... A USB device must indicate its speed by pulling either the D+ or D- line high to 3.3 volts. A full...
Czy ktoś może mi rozjaśnić interpretację dokumentacji ST do tego MCU? Wg datasheet "For the LQFP100 [...] only support a multiplexed NOR/PSRAM memory [...]" i to jest OK bo widzę AD[15:0] i tylko A[25:16] bo nie występuje w tej obudowie A[15:0]. Natomiast w reference manual dla Cortex M3 w rozdziale...
Da się - czytaj stan prosto z portu. Właśnie przed chwilą wyczytałem, że przekombinowałem: (RM0090 Reference manual) 8.3.11 Alternate function configuration When the I/O port is programmed as alternate function: • The output buffer can be configured as open-drain or push-pull •...
Witam mam problem z miganiem dwoma diodami, ale czysto sprzętowo, za pomocą timera 3 w trybie outpu compare. Pisząc program wzorowałem się na kodzie ze strony . Mój kod różni się tylko tym, że nie wykonuje tutaj remmapu, ponieważ w moim uC (stm32f103vct6) TIM3_CH3 i TIM3_CH4 jest podłączony do wyjść...
No to wyjątkowo słabo tą dokumentację przeglądałeś (; Na pierwszej stronie manuala masz coś takiego: For information on programming, erasing and protection of the internal Flash memory please refer to: ● PM0075, the Flash programming manual for low-, medium- high-density and connectivity...
Tak, tylko ta linia nie wnosi nic do problemu. Wróciłem do starej posklejanej wersji: Dodano po 5 Nerwy mnie już biorą... powyższy kod... po kolejnych próbach grzmoci się totalnie - inaczej tego ując nie moge (przepraszam). Zawiesza się od razu po załączeniu diody LED, USB wysiada przy BR = 9600...
Wydaje mi się, iż jest to spowodowane tym, że to 16 bitowy timer taktuje DMA Niet :) Reference manual, opis rejestrów GPIO: The peripheral registers have to be accessed by words (32-bit). Dalej rozdział o "rozmiarach i wyrównaniach" danych DMA: Addressing an AHB peripheral that does not support...
A co z EXTI 0 w NVIC_Enable...? Powinno być EXTI13 * (Reference manual str. 237, fig. 33). Nazwa handlera przerwania też do analogicznej zmiany. ;>? (RM str. 219 - opis rejestru). I od razu -> nie 0x0010 - bo to będzie PC12! Dodano: * wpadka, nie powinno być EXTI13 co wyjaśnił kol....
Przeglądałem co było w reference manual, a na SPL mam działający przykład na innej płytce z stm32f407 tylko tam jest wysyłane do pamięci wyświetlacza przez FSMC z użyciem DMA ale nie bardzo wiem jak to rozgrzebać, tutaj mam przypięty wyświetlacz pod port i napisałem sobie do niego "ręczną" obsługę, żeby...
Ad. 1. Tak. Ad. 2. Ustawiając odp. rejestry ;) Szerzej - odsyłam do dokumentu o nazwie Flash Programming Manual i hasła Read Protection Bytes
No i kurczę już nie wiem czym to się różni: Tutaj jak się kompiluje za pomocą freediego: (...)(at)(...)-jacek:... make Assembling file: startup.S /home/(...)/arm/gcc-a... -x assembler-with-cpp...
Może dlatego, że jest kilka dobrych książek jak pisać w C pod AVR. ... Dwa miesiące temu przesiadłem się na STM32 i próbując pisać w C utonąłem, Zero przykładów, wszystkie książki i tutoriale wykorzystują SPL. Znacie jakąś dobrą książkę lub tutorial w języku angielskim, który pokazuje jak pisać...
CooCox swego czasu był dość (jest?) zabugowany i działa(ł) średnio. Na początek proponowałbym Eclipse+EmbsysRegview+ARM Plugin. Do tego ref. manual i dokumentacja core'a oraz dokumentacja gcc ;)
hmmm, nie a bardzo czaje różnicę... Tutaj mamy deklarację anonimowej struktury T_Localization. W celu utworzenia tej struktury piszemy tak: T_Localization Lokalizacja; I mamy już strukturę Lokalizacja [syntax=c] /** * (at)brief A structure to contains elements of AGPS (triangulate) */ typedef...
(at)tmf - dziękuję za miłe słowa :) Właśnie takie było założenie co do grupy "docelowej". Myślę, że jeszcze długo ATmegi i ATtiny będą punktem startowym dla hobbystów ze względu na nawał informacji w Internecie i mocno zakorzeniony pogląd jakoby wszystko inne było drogie/trudne itd. W sumie chciałem,...
Pierwsze pytanie (jeszcze nie dotyczące bootloadera ale pobliskie temu. Pamięć FLASH w STM32F4 jest 32 bitowa? 16? 64? Nie mogę znaleźć jasnej odpowiedzi na to pytanie w reference manualu. Jest coś takiego w rejestrze FLASH_CR jak PSIZE. Gdzie deklaruje się jakieś zapisywanie, że niby uzupełnia się...
Jeśli zajrzysz do definicji funkcji NVIC_SetPriority((), zobaczysz, że dla SysTick nie rusza ona wcale NVIC. Racja, wpisuje do innych rejestrów. Ale Manual pisze że SysTick też wchodzi o NVIC. Jeszcze kolejna sprawa. Skoro Aby mogło wystąpić przerwanie należy zarówno ustawić i to co generuje...
A co na temat tego rejestru i ustawień jest napisane w Ref Manual?
Twoim pierwszym źródłem informacji powinien być reference manual . Potem dopiero datasheet (to o czym piszesz), gdzie w zasadzie najciekawsze info jest o pinoucie, ilości pamięci itd. Tyle wystarcza w 99% przypadków. W "extremalnych" przypadkach warto się zapoznać też z: - erratą, - notami aplikacyjnymi...
-gdzie znajdę przykłady do modułów discovery? Szukaj Cube na stronie STM-a -gdzie znajdę dokumentacje szczegółową To się nazywa Reference Manual np
Jak ktoś chce to nauczy się i bez studiów. Rozpoczęcie nauczania o technice mikroprocesorowaej od ARMów to nie jest najlepsze rozwiązanie - brak łopatologicznej literatury. Im prostsza architektura tym lepiej. Teoretyzowanie, że nie ma znaczenia czy ARM czy 51, ma znaczenie tylko przy programowaniu...
A konkretnie, to czego z kodu inicjowania timera nie rozumiesz po przeczytaniu rozdziału o timerach z Reference Manual? Masz tam obrazki, opisy działnia i szczegółowo rozrysowane i opisane rejestry sterujące.
No to w takim razie polecam STM32L1XX reference manual Tam sobie wszystko znajdziesz, rejestr po rejestrze... Bez bibliotek :D Życzę miłej lektury :)
Współcześnie (zresztą od 25 lat) "x86" oznacza 32-bitową wersję 86, którą programuje się praktycznie wyłączenie w trybie "płaskim", w którym programista może zapomnieć o istnieniu rejestrów selektorów. Gdzieś Ty się uchował z tymi 16 bitami? "Dobre źródła" - to wielki manual Intela, opis konwencji...
Nie ma takiej opcji. Cytat z Cortex-M3 Programming Manual (PM0056, str. 36): If multiple pending exceptions have the same priority, the pending exception with the lowest exception number takes precedence.
W dokumentacji (Reference Manual RM091) dla rodziny STM32F0 w dziale "dodatki" również są przykłądy konfiguracji peryferiów na rejestrach. Jest ich dużo (ponad 60 stron) i są przystepnie napisane.
Hmm, chodzi o to, że Level 1 to cokolwiek oprócz 0xAA i 0xCC, czyli również 0xFF? Właśnie we flash programming manual to jakoś tak tajemniczo i krótko było opisane ;) Bo pomyślałem sobie jeszcze, że może jest odczyt bieżących RDP, WRP, Data0 itp., potem erase i zapis nowych, po czym dopiero po Launch...
Te informacje znajdziesz w Reference Manual. Flash kasuje się całymi stronami, programuje w różnych uC różnie - po 16, 32 lub 64 bity. Programować można tylko skasowane komórki. Flash jest wolniejszy od RAM, co ujawnia się przy wyższych częstotliwościach zegara.
Jeśli ktoś znałby dokładną przyczynę tego tj. czy to jest wina samej pamięci czy wina architektury to byłbym wdzięczny za odpowiedź i wskazanie źródeł. Reference Manual 2 Memory and bus architecture 2.1 System architecture Skoro poprzednio miałeś stos w rejonie 0x20030000, to wypadał on...
Weż sobie poczytaj dokumentację eclipse albo szukaj : atollic manual . Tam masz opisane jak ustawiać scieżki, linkować pliki, ustawiać czy coś kompilować czy nie itd Ale tak naprawdę to jak już pisałem jeno praktyka czyni swoje.
Zacznijmy od tego, że powinieneś podać konkretny model procesora. W przypadku wątpliwości powinieneś czytać manual zamiast eksperymetować z ustawieniami. Przykładowo w STM32F030 masz rejestr BSRR który odpowiada zarówno za kasowanie jak i ustawnienie bitu IO. Ustawienie bitu z zakresu 0-15...
Sprawdź opis rejestru w Reference manual. Tam jest to jasno i klarownie wyjaśnione.
ST wypuścił wiele dokumentacji do stm-ów. Czy podane przez Ciebie informacje znajdę w reference manual czy innej?
Kiedy używać resetowania? Wtedy, kiedy chcesz przywrócić peryferium do "reset state", czyli takiego jak po resecie mikrokontrolera. Czyli jeżeli dobrze rozumiem to w przypadku resetowania powinienem ustawić bit RST. Następnie włączyć zegar RCC (ponieważ w konfiguracji po restarcie jest on...
I to jest właśnie powód dla którego używam HAL, nie muszę czytać 1300stron dokumentacji - choć się przydaje. Jeśli mój program może być napisany używając HAL to dlaczego się męczyć. Rozpoczęcie bez HAL z STM- to wg mnie rzucenie się na głęboką wodę. Ile stron ma dokumentacja HAL? Pytanie podstawowe:...
Nejlepsza literatura to Reference Manual + Programming Manual + datasheet + wybrane Application note, i choć i tam zdążają się błędy to nic lepszego nie znajdziesz. A że lektura czerstwa i monotonna... Cóż przynaniej treściwa i starczy na lata (3500 stron to nie żadkość)
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...
Dzięki Panowie za szybką odpowiedź :) bonczi7 LinkDriver użyłem niestety nic nie dało :( Marek_Skalski - nigdzie nie znalazłem nic na temat uruchamiania LSE do SD, a myślę że o SD przejrzałem cały User Manual od HAL jednak dla pewności uruchomiłem LSE jednak problem pozostał :( załączam zdjęcia...
No już nie przesadzaj... Pół roku temu położyłem w projekt LPC1113-302 i tak został do dzisiaj, i nie znajdę mu lepszego odpowiednika nigdzie . W projektach, gdzie leżą STM32, tak samo nadal będą leżeć, bo po co to zmieniać? Czym według ciebie różni się procesor "lepszy" od "gorszego", w zakresie...
Witam wszystkich :) Postanowiłem rozpocząć przygodę z ARM. Kupiłem płytkę STM32F103C8T6 i zaprogramowałem ją za pomocą Arduino IDE korzystając z przejściówki USB-RS232. Działało fajnie, ale nie chcę programować za pośrednictwem Arduino IDE i portu szeregowego, więc zakupiłem ST-Link (taki o: www.waveshare.com/wiki/ST-LINK). Pier...
Brakuje w tym zestawieniu możliwości wyboru kilku opcji oraz możliwości "Inne". Bo w moim wypadku wygląda to tak: AVR - od tego startowałem i do mniejszych projektów zdecydowanie fajne procki. Aczkolwiek pewne rozwiązania mocno mnie w nich denerwują (progmem np. albo brak remapowania pinów). Z...
Witam Tworze ten temat aby ułatwić sobie i innym w podobnej sytuacji jak ja start z ARMami. Jak widzę informacje na temat ARMów są bardzo rozsiane, przez co wielokrotnie powtarzają się te same pytania co jak widać irytuje stałych doświadczonych bywalców tego działu przez co są oni coraz mniej chętni...
Witam jakiś czas już szukam takiego pdf viewera, który miałby opcje usprawniające (przynajmniej dla mnie) uzywanie dokumentacji w systemie wielomonitorowym. To co bym chciał, to: - wielokrotne instancje (ma foxit i PDF-Xchange) - zakładki (ma kazdy...) - potrafi otworzyć ten sam plik w wielu zakładkach,...
No ale teraz kilka wątpliwości - biorąc pod uwagę fakt, że STM32 którego używam do tego zadania nie ma żadnego komparatora, Ale przetwornik ADC w STM32 ma funkcje Analog Wachdog(przynajmniej tak mówi Reference Manual jaki mam na dysku), czyli coś na kształt komparatora(dyskryminatora) okienkowego....
Witam. Posiadam moduł z mikrokontrolerem STM32F207ZGT6, problem w tym że GPIO działa za wolno, mam napisany prosty program do testów który zmienia stan pinu 0 portu C. podłączyłem się oscyloskopem i sygnał na tym wyjściu ma około 2,308Mhz. To chyba zdecydowanie za wolno jak na ten mikrokontroler. Częstotliwość...
A teraz to samo AVR Nie ma to jak porównywać kod pracujący bezpośrednio na rejestrach do kodu z wyższej warstwy abstrakcji i to w dodatku błędnego. Poniżej jest jak to można zrobić na w tym wypadku stm32. [syntax=c] // Przypięcie zegara do AHB1 RCC->AHB1ENR |= RCC_AHB1Periph_GPIOD; ...
Na początek proponuję Cortex-M3 Technical reference manual (ze strony ARM) i STM32 reference manual. Sporo wyjaśnią.
Zgłupiałem :roll: Twój kod działa (USART3), ale chcąc na jego podstawie uruchomić USART1 [syntax=c] RCC->APB2ENR |= RCC_APB2ENR_USART1EN; RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN; gpio_pin_cfg( GPIOA, 9, GPIO_AF7_PP_50MHz_PULL_UP ); gpio_pin_cfg( GPIOA, 10, GPIO_AF7_PP_50MHz_PULL_UP ); USART1->BRR...
Można wiedzieć dlaczego kolega chce ingerować w firmware ? Nie chcę "ingerować" w firmware. Chcę wgrać kompletnie własny firmware. Nie interesują mnie te moduły jako typowe sterowniki PLC. Chcę wykorzystać tylko hardware, jako uniwersalny mikrokontroler z układami we/wy. 1) Kup programator ST-Link...
To nie jest istotne jaką mamy prędkość, tylko jaki ty masz procek. JTAG na FTDI musi działać przynajmniej 6x wolniej niż rdzeń (-> manual do OpenOCD). Jeśli Twoj procek startuje z jakimś wolnym wewnętrznym oscylatorem, to i JTAG będzie działał wolno. STM32 ma wewnętrzny oscylator 8MHz, JTAGa mogę odpalić...
Na początek może pożegnaj się ze starociami i zainstaluj coś nowego (CodeSourcery). Co do reszty: Moim zdaniem nie ma sensu pisanie samemu tych plików, ale warto rozumieć co i dlaczego tam jest. Szczególnie nie warto pisać ich "tylko pod konkretny zestaw", bo to się mija z każdą ideą jaką...
Działa. Wystarczyło zmienić szukany znak z backslasha na '\n'. Ostatecznie modyfikacja wygląda nastepująco: if (character == '\n') { __fputc_('\n', stream); __fputc_('\r', stream); continue; } Dopracowałem rownież...
Coś ostatnio pokręcili na tej stronie... Wszystko można znaleźć w dziale Support ->Technical Literature Główny dokument dla STM32 to jest Reference Manual [url=]link 4\/3!!