Cześć :) W związku z tym, że w miejscu w którym pracuję istnieje potrzeba programowania pamięci SPI których wsad jest taki sam, stwierdziłem że zbuduję urządzenie, które będzie kopiowało zawartość jednej kości do drugiej. Niby nic, ale z czasem chciałbym zająć się zawodowo projektowaniem oraz programowaniem mikrokontrolerów, więc jako pierwszy projekt...
Rzeczywiście, ta metoda nadaje się znacznie więcej niż dla Wemos D1, nie chciałem nic takiego sugerować, po prostu na Wemos D1 będzie kilka tematów stąd taki tytuł. Tutaj jest nieco więcej szczegółów: https://github.com/JAndrassy/ArduinoOTA ArduinoOTA wspiera: - classic ATmega AVR with at least 64 kB of flash (Arduino Mega, MegaCore MCUs, MightyCore...
jedynie Eclipsowe sprawdzanie składni krzyczy przy w konstruktorze Spróbuj zindekspowac projekt. Jak nic nie da to znaczy ze eclipse ma jakiś problem. Raczej kieruj się tym co wypluwa kompilator a nie IDE.
Dziękuje za szybką odpowiedź W swojej aplikacji chciałem wykorzystać jakiegoś stm32 więc bœdę mógł skorzystać ze sprzętowego CRC tmf mógłbyś podać jakie inne sposoby można stosować do sprawdzania integralności ? Słyszałem jeszcze o March C ale to wymaga zapisu komórki więc nie bardzo wg mnie nadaje się do pamięci Flash. Pozdrawiam
Witam. Przejrzałem prawie całe google i nie potrafię znaleźć dlaczego nie działa mój prosty kod. 1. Wpisuje ręcznie przy wgrywaniu programu losowe dane w komórce 0x08014310 2. Program do kasowania uruchamiam 3. Sczytuję program z mikrokontrolera i wpisane losowe dane nadal są. Kod programu: [syntax=c]FLASH_Unlock(); //FLASH_OB_Unlock(); FLASH_ClearFlag(FLASH_FLAG_EOP...
Zapisujesz do flash przy pierwszym uruchomieniu po programowaniu. Po resecie sprawdzasz czy tam jest ta wartość i jezeli jest to jest pierwsze uruchomienia, a jeżeli nie to kolejne Bez flagi to raczej się nie da (aslbo przynajmniej sprawdzenia czy coś jest zaprogramowane). Oczywiście mogę sobie wyobrazić rozwiązanie typu - ResetHandler jest do procedury...
Przeczytaj sobie np ten temat: http://www.elektroda.pl/rtvforum/topic17... Od siebie napiszę tylko tyle, że jak porównasz kody bez bilioteki ze źródłem biblioteki to zauważysz jedną rzecz: coś co często można zrobić w dwóch linijkach (konfiguracja) tam jest robione w dwustu. Jest tam mnóstwo niepotrzebnych obliczeń do sprawdzania jaki bit gdzie...
Czy można wykorzystać DMA przy zapisie do pamieci flash? oczywiście że możesz. Procedura: 1. Ustawiasz transmisję 1 halfword-a 2. W przerwaniu DMA sprawdzasz flagę 3. powtarzasz procedurę oczywiście to żart - ale pewnie by zadziałał sądzę
w caałym kodzie nigdzie nie jest ponownie uruchamiane zabezpieczenie stron. Jak usuwam zabezpieczenie - tak go niema i sprawdzając programem ulink zgadza się - zabezpieczenie zapisu stron jest cały czas wyłączone .
Ponieważ nie zdradziłeś tajemnicy jakiegoż to STMa używasz to poniższa funkcja może być błedna (np L4 programuje się podwójne słowa a można też programować sekwencje 32 podwójnych słów za jednym zamachem). Czasami RM sugeruje odczytanie zapisanie słowa a czasami tylko sprawdzanie EOP. Zakładam że już właczyłeś w rejestrach programowanie i wykasowałeś...
Czy jedynym rozwiązaniem jest próba zapisu RAMu i sprawdzanie czy wystąpił Hard Fault? To akurat nic by nie dało. dla przykładu 32kB wersja i tak ma 64kB flash, ale tylko połowa jest testowana. Dodano po 1 Ale chodzi o RAM :D Padonsik. Zdekodować na podstawie rozmiaru flash? Zdaje się, że wygadało by to dość banalnie.
Domyślnie uruchamia się program spod adresu 0x8000000. Jeśli napiszesz go tak, żeby sprawdzał co ma zrobić i ewentualnie skoczył do innego programu to da się. W innym przypadku się nie da. Nie wiem jednak po co takie kombinacje zamiast po prostu zrobić normalny bootloader...
Jak sprawdzić gdzie kompilator Keila umieścił tablice? Zadeklarowałem jedną zwykłą w RAM a drugą jako static do Flash. A chciałbym się przekonać że tak na prawdę jest. Przeglądałem plik .map ale jak wyłowić z niego potrzebne informacje? Ctrl+F w pliku map i sprawdzasz czy tablica jest pod adresem 0x08xxxxxx (flash) lub 0x20xxxxxx (RAM). Zresztą zobacz...
Odkopię temat, bo ostatnio próbowałem sobie kupić zapasowy ST-LINK v2 (klon oczywiście), kupiłem dwa i w obu siedział APM32F103CBT6 tylko w jednym sygnowany przez APEXMIC, a w drugim przez GEEHY. O ile z ST-LINK Utility te programatory działały, to z STM32 Cube Programmer - nie chciały. Niby je widział, ale w polu SERIAL NUMBER była pojedyncza litera,...
Ależ jest i to znacznie lepszy mechanizm bo zabezpieczyć procesor można zarówno programatorem jak i z poziomu programu a odbezpieczenie wymaga skasowania całej pamięci i odblokowanie nie nastąpi do momentu kiedy cała pamięć nie będzie wykasowana (algorytm sprawdza wszystkie komórki - zabezpieczenie przed trikiem z wyłączeniem zasilania po rozpoczęciu...
Kontaktował się ktoś z ST w tej sprawie? Ciekaw jestem co oni na to? Mają zamiar to poprawić, czy będą udawać że nic się nie dzieje? Pisałem już wcześniej, że z ST się kontaktowałem i razem doszliśmy do wniosku, że przyczyną zakłóceń jest odczyt z pamięci flash. Teoretycznie gdyby napisać program działający z RAMu powinno być ok, ale już nie miałem...
Najprostszy bootloader to jakies 100 linijek kodu :) Najprostszy znaczy: - flash dzielony na 3 (bootloader, wsad, miejsce na nowy wsad) - łopatologiczna praca: na rozruch sprawdza się czy jest nowy wsad, sprawdza checksumę, jeśli ok, nadpisac stary, zweryfikować, skasować nowy - jeśli nie ok, skasować nowy, wpisać jakąś sygnaturę błędu... Dołożenie...
Dzieki. Jeszcze chciałbym się upewnić co do samego startu procesora. Zastanawia mnie co się dzieje zanim procesor pobierze adres stosu i resetu z pamięci Flash. Napewno musi funkcjonować już zegar HSI, czy on jest uruchamiany domyślnie w momencie wystąpienia napięcia? Następnie po 4 zboczu sprawdzany jest stan na nóżkach Boot i zależnie od stanu dopiero...
Po Co emulować eeprom flashem? Może nie rozumiem problemu, ale... skoro jest do zapisania ileś bajtów danych, to wypada po prostu je zapisać . W stm32 jest flash controller i maszynka do CRC, więc aż się prosi po prostu zapisywać dane po kolei , w międzyczasie wrzucając do to CRC->DR, na koniec kazdej strony doklejać CRC. Praktykuję taki zapis i sprawdza...
Ok, problem rozwiązałem poprzez zapis do flasha, na pierwszy rzut oka, działa dokładnie tak jak chciałem, ale może jest coś o czym nie wiem - nieporządane efekty czy cos. [syntax=cpp] const uint16_t CFlashSignature::SIGNATURE = 0xFFFF; bool CFlashSignature::isFristRun() { return *(uint16_t*)&SIGNATURE; } FLASH_Status CFlashSignature::setSignature()...
Witam Mam problem z debugowaniem i programowaniem mikrokontrolera STM32F103VE. Używam plików udostępnionych na stronie FreddieChopina. Problemów jest kilka: 1. Nie da się zaprogramować mikrokontrolera. Wcześniej przy openocd 0.4.0 cały czas po resecie występował Hard Fault. Teraz zainstalowałem 0.5.0 i już tego nie ma, za to próba wgrania pliku ELF...
//wlaczenie opoznienia FLASH FLASH ->ACR |= (FLASH_ACR_LATENCY_1); Dla częstotliwości 72 MHz, żeby pamięć Flash działała musisz ustawić jej dwa cykle opóźnienia a nie jeden. słuszna uwaga, poprawiłem na: A gdzie masz ustawienie bitów SW na PLL w RCC? Nie byłem pewien wcześniej czy trzeba ustawić te bity. Dopisałem w konfiguracji RCC: ustawiam bity...
Sprawdziłem to i zwracam honor freddie :) , po poprawnym skonfigurowaniu optionbytes - a można to zrobić w ten sposób: [syntax=c]while(FLASH->SR & 1<<0);//BSY: Sprawdzam czy flash nie jest zajęty. //Jeśli jest to będzie się kręcić pętla i kręcić. FLASH->OPTKEYR = 0x45670123;//Jak taką sekwencją zapiszę klucz, to się odblokuje jednorazowo...
Jeśli chodzi o komunikaty to CrossWorks krzyczy że wszystko jest ok ale później jak sprawdzam JFlashem (oprogramowanie J-Linka) to okazuje się ze flash jest pusty, gdy za jego pomocą próbuje coś wgrać to dostaje komunikat w stylu "Program does not fit into selected flash sectors", choć wydaje mi się że wskazane obszary pamięci są poprawne (0x80000000...
Cześć Odpaliłem w nim prawie wszystkie peryferia włącznie z SPI Master i Slave. Tutaj masz kod wycięty z jakiegoś ich exampla i napewno działający: /***************************************... * Function Name : SPI_FLASH_SendByte * Description : Sends a byte through the SPI interface and return the byte *...
Tak tych rzeczy jestem pewien. Jeszcze specjalnie sprawdzałem .map i dissasembly tych miejsc. No ale chyba naprowadziłem się na błąd. Rzeczywiście udawało mi się czasami wejść do SysTicka w trakcie gdy FLASH był BSY. Tylko, że nie przewidziałem tego, że są jeszcze inne przerwania m.in. EXTI, które już mam we FLASHu i na nich m.in. program się zatrzymuje....
W jakim systemie operacyjnym chcesz to zrobić? Przede wszystkim potrzebujesz odpowiedniego toolchain-a do mikrokontrolerów ARM. Dla Windowsa wejdź na stronę https://msys2.org i ściągnij instalkę "msys2-x86_64 ...exe" i zainstaluj. Otwórz terminal "MSYS UCRT64" (o ile nie otwarł się automatycznie przez instalator) i w nim wykonaj następujący skrypt:...
Ściągałem kiedyś ze strony ST program StM32-StLink-Utility i tam był driver. Z tym że ja używam StLinkV2. Znalazłem ST-link-v1 [url=http://www.st.com/web/catalog/tools... i zainstalowałem tą aplikację i nie mogłem się połączyć. W akcie desperacji ściągnąłem sterowniki na XP i je zainstalowałem...
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...
https://obrazki.elektroda.pl/8071235800_... Firma STMicro zaprezentowała właśnie swój pierwszy mikrokontroler z linii STM32 wyposażony w interfejs bezprzewodowy. STM32WB to rodzina dwurdzeniowych procesorów z rdzeniami ARM (M4 i M0+) wyposażona w transceivery Bluetooth 5 i 802.15.4. Producent tych mikrokontrolerów mówił już o nich...
Witam od dwóch dni walczę z bibliotekami Fatfs, i mam niezidentyfikowany błąd, wykończyły mi się pomysły. Sprawa wygląda tak posiłkuje się przykładami z książki STM32 w praktyce Autor: Krzysztof Paprocki. W zasadzie chce skompilować gotowy kod , (przykład R9 sd_fatfs) działam na układzie STM mini http://allegro.pl/zestaw-uruchomieniowy-...
Chcesz JTAGa czy tylko po prostu programować Flash? Jeśli to drugie - nie ma żadnego problemu. Praktycznie dowolna przejściówka USB/RS232 powinna zadziałać. Najlepiej taka z układem PL2303. Podczas programowania trzeba tylko ręcznie manipulować przy Boot0 i Reset. Zobacz opis [url=http://www.st.com/internet/com/TECH...
To, w jaką obudowę producent układ "upchnie" nie ma żadnego znaczenia. Ma znaczenie i to nie małe. Jak by nie miało to robić różnicy to producenci nie robili takiej różnorodności bo to dla nich koszty. Obudowa układu i rodzaj może zależeć od przeznaczenia modułu, sposobu chłodzenia i innych aspektów konstrukcyjnych których możesz nie rozumieć. Choć...
Sam pracuje teraz nad urządzeniem, które wykorzystywać będzie kod do sterowania, i oczywiście piszę go w Atmel studio, wiem jaki prosty jest C bo przesiadałem się z BASCOM i mnie wryło dosłownie. No ale nie jest dział DIY działem innowacyjnych technologii. Zrozumcie to. Takie przekrzykiwanie się o wyższości jednego języka nad drugim to w zdecydowanej...
Mogłem się nieprecyzyjnie wyrazić z "modelem pamięci". Ale uderzyło mnie to, że w STM32 mam totalnie inaczej porozkładane sekcje "peryfiera-flash-ram" aniżeli np. w LM4F. Zwróc uwagę jak zaczynają w STMach sekcje rom(rx), jak w LPC, a jak w LM. W STM od 0x08000000, od LM od 0, w LPC nie wiem bo ich nie używam ;). Jasne, różni producenci i różne realizacje,...
https://obrazki.elektroda.pl/5099522300_... Jakiś czas temu zrealizowałem pewną konstrukcję, jaką jest kamera Pan Tilt na Raspberry Pi. Z racji tego, że jest to forum traktujące o elektronice skupię się właśnie na takich aspektach. Zanim zacznę opiszę architekturę systemu, czyli co z czym się łączy i jakie komponenty wchodzą w jego...
Witam. Jestem początkujący w świecie st32 i na początek stworzyłem sobie projekt w którym mam tylko pliki : main.c , startup - który dołączył keil (usunięte 3 linie odpowiedzialne za automatyczne uruchomienie funkcji SystemInit), Oraz 3 pliki z CMSIS: stm32f10x_it.c , stm32f10x_it.h , system_stm32f10x.c . Program wygląda następująco: [syntax=c]#include...
Panowie, A czy to nie jest jakieś dziwne, że problem wystepuje tylko przy debugowaniu? może coś sam projekt hw jest walnięty (sprawdzałem na dwóch egzemplarzach tego kitu i to samo). [url=http://www.elektroda.pl/rtvforum/do... Jeśli chodzi o konfigurację rcc i flasha to wygląda ona tak [syntax=c] void RCC_Conf(void) { ErrorStatus...
(at)Monys Widzę że jak nie gotowca to nie pójdzie. Dałem Ci link do dokumentacji. A tu masz gotowca: [syntax=c] int EraseFlash(uint32_t address, int lockatexit) { if(address & 2047) return -1; // must be 2048 bytes aligned if(FLASH -> CR & FLASH_CR_LOCK) { FLASH -> KEYR = 0x45670123; FLASH -> KEYR = 0xCDEF89AB; while(FLASH -> CR & FLASH_CR_LOCK) {/*...
Witam Zgodnie z poradami ze .text .global _start _start: (at) Label, not really required mov r0, #5 (at) Load register r0 with the value 5 mov r1, #4 (at) Load register r1 with the value 4 add r2, r1, r0 (at) Add r0 and r1 and store in r2 stop: b stop (at) Infinite loop to stop execution Nastepnie kompilujemy: $ arm-none-eabi-as -mcpu=cortex-m3...
Witam, Napisałem program, w którym do odliczania czasu używam SysTick'a i przerwania od niego. Gdy skompiluję i zapiszę program do pamięci Flash, program ten działa jak należy i możliwe jest jego debugowanie. Jeśli skompiluję i wpiszę program do pamięci RAM, to program nie działa poprawnie, a debugować go można jedynie do momentu wystąpienia przerwania...
(at)grko - właśnie do mnie dotarły blue pill :) 128KB flash (tzn. oficjalnie 64, ale akurat mają w rzeczywistości 128KB) i 20KB RAM. Teraz z ciekawości wgrałem ST-Linkiem prosty blink ;) Szkic używa 13028 bajtów (19%) pamięci programu. Maksimum to 65536 bajtów. Zmienne globalne używają 2816 bajtów (13%) pamięci dynamicznej, pozostawiając 17664 bajtów...
Witam, Ja po złożeniu JTAGa od freddiego napotkałem na taki o to problem: Open On-Chip Debugger 0.4.0 (2010-02-22-19:05) Licensed under GNU GPL v2 For bug reports, read http://openocd.berlios.de/doc/doxygen/bu... 3000 kHz trst_and_srst srst_pulls_trst srst_gates_jtag trst_push_pull srst_open_drain jtag_nsrst_delay: 500 jtag_ntrst_delay: 500 Warn...
Eclipse CPP Juno SR1 - świeżo wypakowane od nowa Katalog Workspace - Wyczyszczony Projekt wypakowany do innego katalogu niz Workspace Odpalamy Eclipse Ustawiamy Workspace na C:\_Prog\Workspace Zamykamy ekran powitalny. File->Import->General->Existing Project into Workspace Wskazuję plik z archiwum projektu. Projekt został dodany Sprawdzam ustawienia...
Wielkie dzieki za pomoc ale mam jeszcze z tym problemy. Jeśli chodzi o umieszczanie funkcji w konkretnym miejscu (czyli konstrukcja void f(void) __attribute__ ((section(".NAZWA_SEKCJI"))); to oczywiście działa. Jednak gdy zrobię listę plików, która ma być umieszczona od konkretnego adresu to co prawda linker "nie czepia się " do niej ale i tak umieszcza...
Teoretycznie powinno sie dać (chyba) Praktycznie też. Przykładowo takie właśnie powtórne zapisywanie do jednej komórki używa oficjalnie STM w przykładach pt. EEPROM emulation i jest tam sprawdzanie statusu operacji i jest ok. No chyba nie do konca. Byc moze nadpisują tylko samymi zerami. W/g dokumentacji: FPEC preliminarily reads the value at the addressed...
4,7k jest wyliczony raczej dla 5V, DS18B20 jak i STM32 może działać na 3.3V i wtedy proporcjonalnie to już jest ~3k. A jak zasilasz układ czujników jednak 5V to tym gorzej dla układu. Nie mam styczności z MacOS, sprawdzałeś to: http://macappstore.org/stlink/ ? Poza tym przy wgraniu bootloadera trzeba pamiętać o zworkach, bo się kasuje, może uległeś...
Witam Szanowne Grono, Może mój problem okaże się lamerski, ale niestety nie znalazłem nigdzie informacji, które pomogły by mi rozwiązać mój problem. Otóż chciałbym móc pisac programy na STM32 w Keilu. Zainstalowałem sobie najnowszą wersję 4.21 i napisałem na poczatek bardzo prosty program do obsługi wyświetlaczy 7-segm. Jest w nim konfiguracja PLL,...
https://obrazki.elektroda.pl/8808596700_... Pokażę tu jak łatwo uruchomić MAX31855 z Arduino a potem omówię jego protokół komunikacji. MAX31855 oferuje 14-bitowy pomiar temperatury z zakresu zależnego od użytej sondy, od -270°C aż do 1800°C. MAX31855 oferuje prosty protokół komunikacji oparty o SPI, zasadniczo odczytujemy z niego tylko...
korzystam z wewnętrznego generatora. PLL na 72Mhz, zegar dla APB2 ustawiony maksymalnie. GPIO jako push/pull/50Mhz. Sprawdzane na oscyloskopie cyfrowym. Obciążenie na wyjściu pinu, w sumie nie ma to znaczenia, ale jeżeli ma, to jest nieobciążony. void RCC_Configuration(void) { /* RCC system reset(for debug purpose) */ RCC_DeInit();...
http://obrazki.elektroda.pl/7258579400_1... Witam. Chciałem dzisiaj przedstawić kolejny projekt z cyklu "inni mają - mam i ja" ;) Tym razem jest to miniaturowy sterownik ethernetowy - " uWebServer ". Układ zbudowany został w oparciu o mikrokontroler Cortex-M3 - STM32F103C8T6, do tego kontroler ethernetu "znany i lubiany" - ENC28J60. Całość...
flash stm32 stm32 flash stm32 flash loader
czujnik płyty indukcyjnej amica projekt podnośnika śrubowego boardview radeon
orange programator oscyloskop kupić
Najmniej awaryjny silnik w Opel Vectra C - opinie Android Gmail – jak wylogować się z konta Google na telefonie