https://obrazki.elektroda.pl/9151185000_... Autor poniższego zestawienia jest inżynierem i konsultantem wsparcia dla systemów wbudowanych. W swojej karierze poznał on szereg różnych architektur mikrokontrolerów, różniących się wydajnością, wyborem peryferii, poborem zasilania etc. Wybór odpowiedniego układu stanowi zawsze o sukcesie...
gdzie znajdę plik który ma zdefiniowane adresy rejestrów, przerwań itp. Masz w środowisku: stm32f10x.h ale miało problem zrozumieć zapis: GPIOA->CLR ^= 1<<MODE2 Ja także mam problem :) W pliku stm32f10x.h masz definicje: Próbowałem Atollic TrueSTUDIO wybrałem sobie Embedded C Project naładował mi tyle syfu, że kompilacja trwała dość długo,...
Jeżeli zadajesz pytanie, to zamykanie tematu uniemożliwia uzyskanie odpowiedzi. Odblokowałem. Źródło taktowania po zwolnieniu sygnału reset jest określone sprzętowo. W przypadku STM32F302 jest to opisane w sekcji 9.2.6 w [url=https://www.st.com/content/st_com/e...
Cześć jakiś czas temu spotkałem się z takim zapisem mapowania rejestrów: C gives no guarantee of the ordering of fields within machine words , więc może być problem z portowaniem. Nie mam zamiaru "wynajdywać koła na nowo" tak pytam się z ciekawości o wasze opinie. Ewentualnie tak myślę że dałoby rade to zrobić też w C++ z template w taki sposób żeby...
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 nie widzę adresów poszczególnych rejestrów np. GPIOA-G,...
Witam. Przeglądając dokumentację uC STM32F10x natrafiłem na rejestr: AFIO_EVCR (Event control register) Zastanawia mnie do czego on dokładnie służy. Według dokumentacji jest to rejestr kontrolny zdarzeń (lub jakoś podobnie). Ustawia się w nim bit "EVOE", oraz poszczególne porty i piny. Czy ma on jakiś związek z przerwaniami EXTI? Dlaczego znajduje się...
Piszę program do sterowania wyświetlaczem LCD cyfrowym i muszę ustawić 0 i 1 bezpośrednio na rejestrach. Mikrokontroler jest taktowany z 1MHz żeby obniżyć pobór energii i ustawiając poszczególne bity w bibliotece HAL poleceniem: [syntax=c]HAL_GPIO_WritePin (A1_GPIO_Port, A1_Pin, GPIO_PIN_SET);[/syntax] powoduje to takie opóźnienie że zamiast prostokąta...
Witam! To znowu ja. Uczyli w szkole o generale, co się kulom nie kłaniał, a ja mam rejestry, co się resetu nie słuchają, ani sprzętowego z pinu, ani z jtag-a. Jak to rozumieć? Timer i dma też nic sobie z resetu nie robią. Teoretycznie po resecie powinienem mieć w rejestrach reset value, ale przynajmniej w wymienionych tak nie mam. Pomaga dopiero wyłączenie...
Witam Nie mogę porodzić sobie z banalnym problemem. Jak elegancko zapisywać bez biblioteki spl rejestry FSMC. metoda: [syntax=c] FSMC->BTR1 = (0x5<<8) | // DATAST = 0x5 (1<<0) ; // ADDSET = 0x1 [/syntax] nie działa no i nie może bo w stm32f10x.h są tylko definicję dostępu bitowego: [syntax=c] /****************** Bit definition for FSMC_BTR1...
Witam, Mam problem z programem. Otóż, po wejściu do funkcji rejestry zrzucane są w nieodpowiednie miejsce. W moim przypadku jest to bufor LCD, co powoduje wyświetlenie kompletnych bzdur na moim wyświetlaczu. Przed wejściem do funkcji: http://img36.imageshack.us/img36/6918/st... Po wejściu do funkcji: http://img27.imageshack.us/img27/196/bez...
Witam, Były tematy o bootloader ale mój problem jest trochę inny. Mam sobie soft, który standardowo jest wgrany pod adres 0x08000000. W pewnym momencie, pobieram sobie nowy plik HEX przez UART. Mój interpreter Hex dekoduje go do surowych danych. Olewam adres bazowy nowego Hexa (który również wynosi 0x0800000) i wgrywam go do 5 sektora pd adres 0x08020000,...
Witam, zwracam się do Was o pomoc, w jaki sposób zrealizować taki problem: Mam dwa pliki z oprogramowaniem na zewnętrzny układ. Zewnętrzny układ trzeba zaprogramować tymi firmware'ami za pomocą SPI podczas każdorazowego uruchomienia urządzenia. Docelowo będzie mikrokontroler np. STM32F103RCT6 ze względu na 256 kB pamięci FLASH. Czyli algorytm będzie...
Witam jakim programatorem odczytać i zapisać ten układzik st62t30bb6.
Witam. Od niedawna uczę się pracy na STM32. Programy piszę bez wykorzystania bibliotek, opieram się na poradnika tutaj z elektrody. Zauwazyłem, ze w sieci istnieje wiele bibliotek np. do LCD HD44780. Biblioteki te są pisane z wykorzystaniem biblioteki StdPeriph. Chciałbym zapytać jak to pogodzić, zeby móc pisać dalej na rejestrach ale wykorzystywać...
Do wyprowadzeń CAN L i CAN H nie można podłączać nic oprócz rezystorów terminujących, sygnalizację za pomocą diod LED można zrobić odczytując programowo znaczniki odebrania ramki CAN, każda transmisja na magistrali CAN uruchamia flagi w rejestrach procesora. Programowo można uruchamiać przez port procesora diody Led w zależności o odebranych danych,
Jestem pełen podziwu dla Twojego zapału i naprawdę szanuję Twoją wolę walki. Rozumiem, że wybrałeś już kontroler, nośniki danych i akcelerometr (3-osiowy) a teraz zastanawiasz się jak to oprogramować aby dało dobre wyniki. Masz też przygotowanie i wsparcie merytoryczne w postaci pracownika naukowego, który powiedział, że to wszystko da się policzyć...
Bez bibliotek zajmuje to jedną linię z jedną instrukcją - zapis wartości do rejestru AIRCR.
Witam Mam problem z zaprogramowaniem uC STM32F103RBT6. Układ wcześniej bez problemu chodził i się programował. Problem pojawił się gdy zmieniłem wartość rejestru FLASH->ACR z 2 na 0. Od tej pory H-JTAG widzi procka ale nie mogę wgrać flasha :( Otrzymuje taki komunikat: http://obrazki.elektroda.net/81_12461006... Czy można coś z tym zrobić ?
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ę.
No niestety, nie da się w prosty sposób nadrobić braków wywołanych nawykami związanymi z użytkowaniem Bascom-a. Brakuje podstawowej wiedzy o mikrokontrolerach, którą te środowisko maskuje - co to są rejestry, obszary pamięci itp. Trzeba po prostu wsiąść się za samodzielną naukę, istnieje sporo kursów/tutoriali programowania ARM w C. Miganie LED to na...
1. Ja się uczyłem z tej książki: https://helion.pl/ksiazki/jezyk-c-szkola... Dobrze opisane podstawy języka. 2 i 3. Cóż chyba najlepiej zacząć od podstaw, które arduino bezczelnie omija. Musisz zapoznać się z wszystkim co było "pod spodem" funkcji na arduino. Czyli co to są rejestry, jak je obsługiwać...
Mnie tym razem forma i treści od Kolegi Piotra nie satysfakcjonuje - szczególnie w kontekście innych wpisów na elektrodzie. Nie mogę zrozumieć czemu ta prezentacja miałaby służyć. Brakuje ewidentnie konkretnych walorów edukacyjnych, na pewno dla takiego amatora jak ja, być może jest to dobra inspiracja zaawansowanych użytkowników, ale szczerze wątpię....
Wszystko zależy od tego czy zaczynasz programować procesory i się uczysz czy tylko zaczynasz ARM'ami jako nową grupą urządzeń cyfrowych. Bootloader nadaje się w 2 przypadkach : przy kopiach gotowego softu (np. jak trzeba zrobić upgrade "wyjazdowy"), i przy pisaniu oprogramowanie z dużą wiedzą inżynierską (jeżeli nie potrzebujesz oglądać rejestrów, robić...
Dodajmy, że jak już ktoś musi zmieniać stan portu programowo, to w STM32 służą do tego raczej rejestry BSRR i BRR, a w innych uC albo analogiczne rejestry pod innymi nazwami (np. FIOSET, FIOCLR w LPC17xx) albo zapisu maskowany (np. w LPC11xx). W każdym razie nie robi się tego przez programowe operacje logiczne na portach.
Mamy rozumieć że ty przy starcie programu inicjalizujesz wszystkie rejestry procesora na domyślną wartość po resecie ?
Oczekiwanie na flagę powinno być PRZED działaniem na rejestrze. 4\/3!!
Prefetch jest wylaczony W tej serii nie ma "prefetch" w ogóle. Ustawilem nawet 1 waitstata dostepu do pamieci jako ze jest to wartosc graniczna. Waitstate'ów też nie ma. W manualu programowania flash dla STM32F100 wszystkie bity rejestru FLASH_ACR - poza HLFCYA - są opisane jako "Reserved, must be kept cleared."
Czytałem że porty STM-a nie lubią tak wysokiego napięcia a jak dam 5V na LCD to mogę ubić porty, a co z różnicą napięć na portach procek wystawi tylko 3,3v w stanie wysokim. No to jak bys jeszcze kawałek dalej poczytał to wiedziałbyś że są piny 5v tolerant I nic nie spalisz. Moje roszczeniowe podejście ............ forum to nie kafejka na pogaduszki...
A ja wprowadziłem i GCC i programowanie na rejestrach. A jak ludzie zobaczyli, że SPL to 2x większy kod, kilka uA więcej prądu dyskusja ucichła. Jak będę miał czym reprezentować swoją wiedzę, to na pewno pójdę w Twoje ślady. Teraz pozostaje mi przystosować się do firmy i zbierać doświadczenie.
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 bloków układu w tych przerwaniach. I to działało z użyciem...
Zamysł jest taki, że w sektorze 1-3 (razem 48KB) będzie Bootloader Po co aż tyle? Jeden sektor 16KB nie wystarczy? To mnóstwo pamięci. sektor 0 zostaje dla ISR_VECTOR Wektory można przemapować (rejestr VTOR). Ja robię bootloader w sektorze 0 a reszta dla aplikacji.
Dzięki za sugestie. Znalazłem błąd. Błędna była ustawiona kolejność portów. W moim przypadku największym utrudnieniem w programowaniu jestem na tym etapie sam ja. Przesunięcie bitowe, które wskazał Freddie Chopin również było błednie przeze mnie ustawione, zmieniłem i wszystko funkcjonuje jak powinno.
1. Najpierw włączasz transmisję UART, a potem programujesz jej parametry - to niezbyt sensowne. 2. (Nieaktualne, racja, to jest na przerwaniach.) 3. Jeśli będziesz używał nazw symbolicznych bitów w rejestrach, być może ktoś sprawdzi, czy dobrze ustawiłeś te bity i znajdzie jakiś błąd. 4. Nie używaj operatorów |= i &= przy początkowym programowaniu peryferiali...
Mikrokontrolery programuje sie nie tylko w C. Różne mikrokontrolery programowałem w asm, Z80, MCS51, PIC, AVR. Robiłem systemy z 40 mikrokontrolerami na I2C + główny mikrokontroler + PC itp. Ale od kilku lat nie programuję na zlecenia, bo wolę produkować urządzenia i sprzedawać je. val = GPIOx->IDR nie jest trudno zapamietać, jeżeli gdzieś się to znajdzie,...
Kod jest prawie taki sam. Widzę że jedną z różnic jest to że w Twoim kodzie nie ma inicjalizacji rejestrów kalibracji ani oczekiwania na jej zakończenie. Tak sobie myśle czy rejestr "JSWSTART" służy na pewno do wyzwalania programowego , czy może powinno się nim startować tryb ciągły?
PS. Jak załadować program za pomocą BootLoadera po RS232? Szukam i szukam w necie i nie widzę. Dokładnie to chodzi mi o to jakim programem. Program nazywa się Flash Magic http://www.flashmagictool.com/ Jak by jakiś pin był podłączony do GND a ja na nim bym wymuszał stan niski (a raczej próbował wymusić) i procesor by się palił to bym zrozumiał. Akurat...
Pytanie 1: http://infocenter.arm.com/help/index.jsp... CORTEX nie koniecznie wykonuje czynności w spodziewanej kolejności czy w spodziewany sposób, przekonałem się o tym dobitnie po kilku dniach nieustającej próby napisania tego w c/c++ bez podglądu na wygenerowany kod (tzn algorytm działał jednak występowały jittery...
Taki HAL od ST, może i wśród ludzi bardzo nielubiany (bo faktycznie ma swoje chore rozwiązania), ale u mnie spełnił swoje zadanie, gdy przesiadałem się z stm32F334 na nową STM32G4 to dzięki ich HAL miałem bardzo uproszczoną pracę, a różnicę między peryferiami niestety były znaczące, ale opis jaki dostarcza sam HAL po prostu robotę ułatwił. To co mogę...
1. Sprawdź flagi statusowe I2C czy nie ma tam jakiegoś błędu 2. Jeśli jest, to po inicjalizacj I2C zresetuj programowo ten układ peryferyjny (jest gdzieś jakiś bit w rejestrach I2C do tego - I2Cx_CR1_SWRST). 4\/3!!
(at)Karaczan - to nie kwestia tworzenia średnio optymalnego kodu - bierzesz mbed, spl, hal do ARM i głupie miganie diodą jest w stanie zeżreć 1k RAM i FLASH ;) A jedziesz bezpośrednio na dokładnie tych i tylko tych rejestrach peryferiów, których w projekcie używasz i masz 10x mniej kodu. To kwestia inicjalizacji/konfiguracji wielu rzeczy, które Arduino...
Odpal sobie debuger, nawet programowy i zobacz jak będzie zmieniał się bit w bajcie/słowie Nie musi do tego nawet mieć uC, czy używac crosskompilatora
Jeżeli w odmętach internetu nie znajdziesz prawidłowego wsadu to raczej marne widoki. ...changing the level of RDP protection is only peritted when the current prottection level is 1 Changing the protection level from 1 to 0 will automaticaly erase the entire user flash memory SRAM2 and backup register." Nie przeczytasz pamieci o ile jest zabezpieczona,...
Witam, Timery w tych prockach mają tyle opcji, że się w tym wszystkim pogubiłem. Jak można wygenerować na jakimś wyjściu przebieg prostokątny o programowo określonej częstotliwości? Pewnie będzie to tryb Compare z zerowaniem rejestru licznika i zmiany wyjścia na stan przeciwny. Nie mam jednak pojęcia co i gdzie poustawiać w rejestrach.
Teraz moje pytania którą bibliotekę lepiej poznawać czy może one są praktycznie takie same? "Biblioteki" te lekko się od siebie różnią, ale obydwie są równie beznadziejne (; Czy na armach mogę sobie programować tak jak na avr?tzn dodam sobie jakiś plik nagłówkowy jak to tam było avr/ io.h z definicjami rejestrów wejść/wyjść i mogę operować bezpośrednio...
Głownie na bibliotekach HAL, bo to jest najłatwiejsze do przyswojenia dla początkujących. Ale rozpoczął cykl kursów na rejestrach w formie webinarów na yt. W ofercie są kursy języka C, STM32 i RTOS. Jeśli chodzi o mirka, to dawno temu zaczynałem od bluebooka, książka fajna ale nie zachęciłem się wtedy do AVR, trochę ciężko było z kontaktem na forum,...
Ale wtedy sprzętowo nie zrealizuję zmiany stanu na pinie wyjściowym i zostają mi tylko przerwania i programowa zmiana stanu, tak? Czyli nie ma odpowiednika CTC w STM? Wybacz może głupie pytania, ale w porównaniu do AVR jest tego sporo, a siedzę 3 dzień dopiero. Albo jakbym wpisywał jednocześnie do rejestru ARR i CCR te same wartości, zadziałało by to?...
A może lepiej zmieńcie kontroler. środowiska atmela nie da się używać. w wersji 6 programowy symulator nie pokazuje stanu rejestrów wejścia wyjścia......... i ma tyle błędów że lepiej używać STM32. nie wspomnę, iż STM jest już tańszy od atmela na dodatek jest 32bitowy ma znacznie więcej pamięci i jest dużo szybszy.
Witam. Uczę się programować mikrokontroler STM32F334 rejestrami. Natrafiłem na jeden problem. Rejestr MODER : https://obrazki.elektroda.pl/3958434600_... https://obrazki.elektroda.pl/7168405500_... Do ustawienia typu pinu potrzebne są 2 bity, a więc jak ustawić wejście/wyjście jeśli bit MODERx[1:0] może mieć wartość...
Jakaś różnica musi być skoro na oryginale działa a na tym nie. Gruntownie rok temu na nim działałem i wszystko grało wiec pewnie coś z wgrywanym programem ale skoro daje sie programować na oryginalnym STlinku to nie będę sobie robić problemów z tym chińskim. Pod spodem podaje kod wygenerowany przez Stm32CubeIde z dopisanymi 4 liniami moimi czy miganie...
Zbyt wczesna euforia. Na skutek tego, że w debugerze ręcznie wyłączyłem FSMC i tego nie zauważyłem obsługa EEPROM była prawidłowa. Nie potrafię ustawić tego bitu FSMC_NADV w rejestrze MAPR2 ani programowo ani w debugerze. Zegar do AFIO włączony. Czy jest na to jakaś "sztuczka" gdzieś opisana. W necie znalazłem tylko jeden podobny przypadek https://my.st.com/public/STe2ecommunitie...
Hmm, widzę że chyba muszę rozwinąć trochę temat, albo raczej zamienić go w dyskusję niż poszukiwanie pomocy. Co do wpisywania adresu skoku +1- nawet chyba dokumentacja STMa (programming manual) pisze że ostatni bit adresu przy komendzie skoku musi być 1, a sam sprzęt zamienia go na 0 przed wpisaniem do PC. Nawet jak się przegląda kod assamblerowy, zawartość...
Jeszcze poprawniejsze to: preskaler 24 lub 240 okres 2000 lub 200 (do rejestrów ładujemy o 1 mniej) - wtedy przynajmniej widać , o co chodzi i czas możesz programować w ludzkich jednostkach...
To napisz może jak ustawiasz Option Bytes. Istnieje tutaj widoczna zależność - utrata komunikacji następuje chwilę po zaprogramowanie Option Bytes. Wartości z tych rejestrów ładowane są przy okazji resetu. Nie włączyłeś przypadkiem RDP? (read out protection) RDP =AA = LEvel 0, no protection - nic nie włączałem - ale sprawdziłem i nie ma żadnego write/read...
Ale opowiadacie bzdury, jakby to była jakaś czarna magia, dostępna tylko dla zamkniętego kręgu elity Oczywiście że nie. Każda babcia na emeryturze, zamiast szydełkować, może wziąć do ręki manuala i robić fajne MP3 dla wnuczków. Co za problem. Do zegarów jest prosty schemat, na którym widać jak się sygnał propaguje, gdzie jest mnożony, wystarczy ustawić...
Dzięki, dobrze wiedzieć, jak coś to zgłoszę się do Ciebie po najnowsze OpenOCD. Na razie spróbuje na tym starociu co mam - 0.6.1. Przeglądnąłem sekcję RCC. Znalazłem tam jakieś różnice w rejestrach do włączania zegarów dla poszczególnych peryferiów i ich resetowania. Co do samego ustawiania SYS_CLK nie znalazłem różnic, czyli wszystkie funkcje w projekcie...
Tzn, że program może działać dalej poprawnie a debuger wskazuje na to, że jesteśmy w np HardFaultHandlerze ? Mógłbyś nieco rozwinąć myśl ? Czasem może być jakiś problem sprzętowy/programowy/systemowy, który może spowodować wywalenie się debuggera, który będzie np. uparcie twierdził, że jesteśmy wciąż w jakiejś linii, choć mikrokontroler sobie wtedy...
Spróbuję jutro ustawić eclipsa, chociaż opisy w necie są strasznie pogmatwane, chciałem używać coocoxa ponieważ tam tylko ustawia się patha do toolchaina wybiera programator i można działać. Czytałem także o True Studio i System Workbench, ale to są środowiska raczej nastawione na używanie biblioteko ile się nie mylę? Poniekąd można tak pomyśleć, chyba...
To, które znaczniki przerwań kasują się same i w jakich okolicznościach, jest dokładnie opisane w manualu. NVIC swoje znaczniki kasuje sam z chwilą wejścia do obsługi przerwania. Peryferiale, w których przerwanie jest związane z żądaniem jakiejś akcji, kasują znaczniki przy wykoananiu akcji (np. przy odczycie rejestru z odebranymi danymi). Inne, np....
http://obrazki.elektroda.pl/9377221800_1... W dziale mikrokontrolery ARM znajdziecie bezpłatny (do osobistego użytku edukacyjnego) poradnik STM32 przygotowany przez szczywronek . Materiał dostępny jest w temacie: techekspert: Do kogo kierowany jest poradnik, jakie podstawy powinien mieć opanowane czytelnik? Czy znajomość określonej...
Zauważ że w funkcji rejestry są konfigurowane w innej kolejności niż w Twoim kodzie "na chama", no i oczywiście jeszcze w kodzie "na chama" konfigurujesz na raz obydwa piny. Obstawiam że konfiguracja przez funkcje powoduje wejście interfejsu w jakiś dziwny tryb z którego nie chce już łatwo wyjść. Rzeczy do sprawdzenia: 1. Skonfigurować "na chama" rejestry...
Na I2C może być JEDEN (słownie: 1) master i JEDEN (słownie: 1) slave aktywny jednocześnie. To co chcesz zrobić nie jest żadnym monitorem, tylko aberracją i nawet jeśli zadziała to tylko przypadkiem i tylko w specyficznych warunkach. Innymi słowy - Twój "monitor" aktywnie wpływa na transmisję pomiędzy układami. Już zupełnie inną rzeczą jest fakt, że...
rejestr stm32 stm32 rejestr programowa stm32
yanosik pliki podłączyć antena automatyczny sektory cylindry
manetka hulajnoga pilot zgemma
70mai S500 – czy kamera wysyła powiadomienia o zdarzeniach na telefon? FirstChip FCMCPTool: Choose End Product or Test Rack for USB Flash Recovery (FC1179, FC1188, FC8308, FC1710)