Witam! Mam pytanie o kwestię banalną przy pracy z programatorem, ale niewiadomą puki co dla mnie, przy pracy z j-tagiem. Jak włączyć zabezpieczenie przed odczytem flash-a?
i tam napisane jest iż MLA trwa dwa cykle a np ADD, MUL jeden czyli ja zysku nie widzę przy wykorzystaniu tego rozkazu Moja odpowiedz mogła być trochę źle zrozumiana ale MLA trwa tyle samo (2 cykle) co (ADD 1cykl + MUL 1 cykl) no i tak jest, jednak czytałem że zaleca się używanie MLA. Następnie drodzy forumowicze co tak naprawdę oznacza wait state...
No tak: [syntax=c] /************************* * stm32 uart main.c *************************/ #include "stm32f10x.h" #include "stm32f10x_flash.h" #include "stm32f10x_gpio.h" #include "stm32f10x_rcc.h" #include "stm32f10x_usart.h" #include "stdint.h" #include "misc.h" #define CLK_FREQ 36000000 /* User defined function prototypes */ void GPIOA_Init(void);...
Witam wszystkich Czy spotkał się ktoś kiedyś z takim przypadkiem: Usart wysyła poleceniem USART_SendData(USART1, 0x55) do przejściówki wartość i po odczytaniu w progarmie np gtkterm uzyskuję literę "U" (czyli prawidłowo patrząc na tablice ascii). Niestety jest to jedyna wartość zgodna z tą tablicą :/ bo jak wysyłam np. wartość 0x5a to zamiast litery...
jesteś tego pewny to jak to się ma 24 MHz na moim do 74Mhz na 103 ruszy np taki program jak ten code #include "stm32f10x.h" #include "lcd4bit.h" #include <stdio.h> TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_ICInitTypeDef TIM_ICInitStructure; void RCC_Conf(void); void NVIC_Conf(void); void GPIO_Conf(void); uint16_t cnt; char I Proszę kod...
Przepraszam , że nie dokończyłem wczoraj ale przysnołem. Nie poszło tak prosto bo nie otrzymuje zapisu na kartę , cały program kompiluje się mi w porządku tzn otrzymuje hex -a, zadaniem poniżej przedstawionego programu jest tylko odczyt jednej wartości z wejścia adc1 oraz zapisanie jej na karcie do pliku o nazwie plik, poniżej przedstawiam listing z...
Witajcie, właśnie się bawię pamięcią Flash w STM32F0DISCOVERY (chcę się nauczyć obsługi). Efekt? Chyba zablokowałem możliwość zapisu... Kod (dopiero się uczę, więc komentarze mogą zawierać błędy): [syntax=c]#include "stm32f0xx.h" #include "stm32f0_discovery.h" int main(void) { RCC -> AHBENR |= RCC_AHBENR_GPIOCEN;//LEDY GPIOC -> MODER |= GPIO_MODER_MODER8_0...
Witam , Wracam do tematu . Zegar skończony i przetestowany . Podziękowania dla autora za pomoc . Kilka krótkich filmów z pracy zegara wykonane telefonem . Jedna z dwóch gier Tetris Na dłuższy film zapraszam do oglądnięcia Dokonane zmiany . W matryc liter dodałem jeszcze jedno zero , gdyż wyświetlanie godziny zero ( północ ) nie bardzo wyglądało . Teraz...
Witam serdecznie po raz kolejny :) proszę o pomoc ze względu na fakt, iż troszeczkę się pogubiłem. Próbuje obsłużyć panel dotykowy TSC2046 (nigdy wcześniej tego nie robiłem) na wyświetlaczu 320x240 ze sterownikiem ILI9320. Używam trybu 8bitowego, ale w 12 bitowym dzieje się to samo. Problem polega na tym, że od czasu do czasu, pomimo moich zabezpieczeń...
W oknie debugera możesz zobaczyć ile czasu wykonują się poszczególne fragmenty programu. Czy możesz pokazać zrzut ekranu z taką informacją? Na pewno pomoże to wielu Kolegom, szczególnie tym początkującym. (at)bartosz.tarnowski Mowa jest o STM32F4, czyli Cortex-M4, nie M3. Poza tym, w tych układach jest akcelerator dostępu do pamięci programu, który...
Każdy lubi Arduino, od najmniejszych modułów na Attiny85 po największe moduły oparte na mikrokontrolerach MEGA2560. Niestety, mają one swoje ograniczenia - jeśli potrzebujemy więcej mocy obliczeniowej, wyższej precyzji czy większej liczby wejść analogowych, to nie mamy zbyt wielkiego wyboru w rodzinie Arduino... Jest jednak pewne eleganckie wyjście,...
Znaczy że plik wgrywany jest większy od wielkości flasha. Na zdjęciu wyraźnie widać napis na procesorze STM32L071RBT6 czyli B = 128 Kbytes (8 = 64 Kbytes). Chyba że dawca i biorca mają różne flash-e. A co ciekawsze to program wyraźnie odczytuje wielkość flash_a jako 32kbytes. Twój odczyt flasha wygląda na poprawny, ale kończy się w okolicach 64kbytes....
Firma zleci wykonanie fragmentów kodu w języku C/C++ dla mikrokontrolera STM32. Wymagania dla kandydata: -Znajomość mikrokontrolerów STM32 (STM32F4 i STM32H7) -Język programowania (C/C++) -Znajomosć środowiska Atollic TrueStudio -Znajomość bibliotek HAL Opis zlecenia: -uruchomienie ADC z wykorzystaniem DMA -uruchomienie DAC z wykorzystaniem DMA -uruchomienie...
Nie mogę sobie poradzić z odczytem pamięci która jest podpięta pod stm32discovery. Funkcja którą mam odczytuje jedynie 1 stronę z pamięci NAND. Patrzyłem na przykłady które są dołączone do stlink utylity lecz przykładu do NAND nie znalazłem. Może ktoś posiada źródła do przykładu z kością NAND512W3A lub podpowie co dodać do mojej funkcji żeby czytała...
Witam, W kodzie nie udaje mi się ani odczyt, ani zapis. Mam STM32 128kB. Dopiero zaczynam z nim. Program działa w ten sposób, że po odczycie naliczone w danej sesji pracy motogodziny mają się zapisać do jakiejś zmiennej wraz z odczytaną liczbą z flasha i razem ponownie zapisane na końcu po wyłączeniu zapłonu. Korzystam z wcześniej napisanego na tym...
Witam Próbuje od jakiegoś czasu zmusić jeden procesor do zaprogramowanie części pamięci w drugim za pomocą protokołu swd. Bazowałem na początku na dokumentacji odnośnie EFM32 (jedyny cortex m3 który znalazłem w miarę opisany). Niestety zatrzymałem się na etapie, możliwości odczytu, zapisu do pamięci ram oraz odczytu z pamięci flash. Niestety nie jestem...
Wlutowałem nowy układ STM32F207VET6 na PCB i podłączyłem go przez ST-Link V2 do kompa. Odpaliłem STLink Utylity (najnowszy, soft programatora też) i przy próbie odczytu wyskakuje info, że procek zablokowany. Faktycznie po wejściu w Option bytes jest zaznaczone, że zablokowany jest Level 1. Przy próbie zmiany na Level 0 i ok, po kilku sekundach wyskakuje...
Mam problem ze zdjęciem blokady odczytu pamięci FLASH z procesora STM32F439 zasilanego z przetwornicy. Przy czym nie wiem czy to ma znaczenie. Wcześniej w żadnym projekcie na STMie nie zasilałem procesora z przetwornicy (przynajmniej nie bezpośrednio, jak była przetwornica to na 5V a potem post regulator liniowy na 3.3V), jak i nie używałem blokady...
Witam, Moje pytanie dotyczy co zrobić z cache instrukcji, cache danych i buforem przedwstępnego ładowania prefetch podczas zapisu lub kasowania pamięci w flash. W RM piszą, że jeżeli podczas zapisu modyfikuje flash to również zostanie zmodyfikowany cache. W RM jest też napisane, że podczas kasowania flash (danych lub instrukcji) trzeba się upewnić,...
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...
to tablicy unsigned charow w flashu stm32 juz nie mozna trzymać? sprawdzilem na tablicy uint8_t zarówno zapis jak i odczyt działa bez zarzutów. W takim razie nie wiem co mogło być przyczyną problemów w przypadku pojedynczych zmiennych. To, że ci nie działa tak jak trzeba to jest wina twojego softu, nie flasha ani kompilatora. Sprawdź jak zmusić GCC...
Witam, poczytałem sporo informacji nt. skryptów linkera, ale niestety jednej rzeczy nie mogę zrozumieć. Mam przykładowy zapis (sam napisałem): [syntax=c] .text : { . = ALIGN(4); __text_start__ = .; /* zmienna zawierająca początek sekcji text */ *(.text) /* kod wykonywalny aplikacji */ *(.text.*) *(.rodata) /* dane tylko do odczytu przechowujemy we flashu...
Witam. Pętle opóźniające niespecjalnie nadają się do precyzyjnego odmierzania czasu, niemnej chciałbym się dowiedzieć co dokładnie wpływa na czas ich wykonania. Funkcja opóźniająca wygląda tak: [syntax=c]void Delay(unsigned int delay) { for(;delay>0;delay--) { } } [/syntax] Przy niskiej optymalizacji kompilator kompiluje ją do trzech instrukcji: SUBS,...
Powyższy przykład jest właśnie implementacją 'sensownego' mechanizmu odbioru danych przez DMA. Procek tak czy siak musi parsować kazdy odebrany bajt, ale po co ma - co bajt - marnować 12 cykli na wejście do ISRa? Gdy nadawca przerwie strumien, nie stanie się nic. Jak rozsynchronizuje - stanie się to samo - nic . Zauwaz, ze DMA pracuje w trybie circular,...
Zacznijmy od tego, że OpenOCD nie uruchamia się poprawie, wiec warto byłoby dochodzić do sprawy "krok po kroku". Przede wszystkim plik lpc2xxx.cfg NIE JEST przeznaczony do uruchamiania bezpośredniego, należy ZAWSZE użyć któregoś z konkretnych plików. Tymczasowo możesz użyć pliku lpc2148.cfg, ale najlepiej przerób go sobie na lpc2146 - komentarze w środku...
A czy da się jednocześnie zadeklarować magistralę FSMC do LCD(magistrala 16 bitowa) i zadeklarować magistralę do pamięci FLASH NAND (magistrala 8bitowa). I w pętli odczytywać z pamięci NAND FLASH dane i wysyłać je do LCD? Chciałbym użyć 8 bitowej bo są tańsze i jest są ogólnie dostępne. Czy trzeba użyć 16 bitową NAND FLASH?
Muszę Ci powiedzieć, że ustawiałem bit STKALIGN w rejestrze CCR a także go resetowałem i wiele to dało... Podsumowywując: - kopiowanie (zapisywanie) z użyciem rozkazów STR i pochodne - nie działa - kopiowanie (zapisywanie) z użyciem rozkazów STREX - nie działa - kopiowanie (zapisywanie) przez DMA - nie działa - kopiowanie (zapisywanie) przez aliasy...
Tu nie chodzi o opóźnienia, a reakcję na pojedyncze wciśniecie (a konkretniej puszczenie) przycisku. Podobna obsługa na AVR działała bez zarzutu. Poniżej zaremowana procedurka bez "opóźnień" także nie działa dla podanych wartości. Przycisk ma przełączać kształt fali odczytywanej z Flash i generowanej przez DAC.
Czyli chodzi tutaj o to, że bez ustawienia opóźnienia może błędnie działać dalej opóźnienie FLASH i FLASH będzie źle programowany? To moja prywatna hipoteza, ale obstawiam, że jeśli nie ustawisz opóźnienia, to dane odczytywane z flash są błędne i program się wysypuje.
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...
No proszę. Z kolei ja mam płytki Blue Pill z identycznym prockiem jak na zdjęciu przy których ST-Link raportuje 128kB ROM i 20kB RAM. Podpowiesz gdzie można odczytać ilość RAM w ST-Link?? jedyne co udało mi się znaleźć to rozmar Flash.. Do odczytu rozmiaru flash i ramu użyłem st-info . Niestety wyniki dla wszystkich zakupionych BluePill wyniki są takie...
(może nie do końca początki bo coś już umiem) chyba jednak początek:). Uzupełniając powyższą odpowiedź należy wrócić do podstaw. AVR i RAM mają zupełnie różne architektury. AVR ma rozdzielone przestrzenie adresowe a ARM ma jednolitą. Dlatego w AVR musisz wykonywać jakieś magiczne sztuczki, aby odczytać wartość z pamięci programu, a w ARM nie. W ARM...
Jak chcesz aby ktoś Ci pomógł, to podaj więcej szczegółów. Nie napisałeś nawet, jaki to dokładnie układ. Jeśli włączenie read-out protection sprawia problemy Twojemu programowi, to musisz się zastanowić, co takiego ten program robi, że może to być problemem. Przykładowo funkcjonalność read-out protection sprawia, że kod wykonywany z RAMu nie może już...
Jeśli dobrze zrozumiałem treść to układ wtedy blokuje SWD. Tymczasem jest tak, że: - SWD działa. Procesor się przedstawia i nawet da się "coś" odczytać, - Mogę zmieniać poziom zabezpieczenia z Level 1 na Level 0 i odwrotnie i daje to efekt zgodny z zamierzeniem: jest blokada odczytu Flash, - Jak widać na screenach z ST-Linka wspomniany bit BOOT_LOCK...
wiem że niektóre uC potrzebują kilku taktów zegara aby ustawić stan logiczny na porcie. W starszych LPC opartych o ARM7 porty IO były bardzo wolne... W nowszych LPC21xx poprawiono to. Chciałem się dowiedzieć jak w tej kwestii wypadają STM32 (przy różnych zegarach) i chciałbym mieć porównanie do Atmegi8 bo na razie takie programuje. Zależy mi na szybkim...
Witam. Zaopatrzyłem się niedawno w aplikację zwaną Flash loader demonstrator. Umożliwia ona m.in. zapis i odczyt pamięci programu mikrokontrolera STM32 przez bootloader poprzez RS232. Gdy chciałem odczytać pamięć flash i zapisać obraz pamięci w pliku hex mocno się zdziwiłem, gdyż plik miał rozmiar 319744 bajtów, a flash mojego STM32F103RB ma "tylko"...
Musisz też przenieść kod który jest wtedy wykonywany (a więc odczyt flagi BSY) do RAMu, bo przecież dowolny odczyt flasha blokuje rdzeń. Innymi słowy - kod kasowania/programowania też musi być w RAM... 4\/3!!
Wylutowałem już procesor i dla testu przełożyłem go na inną płytkę bez wlutowanych jakichkolwiek elementów, efekt ten sam. Do pinów bezpośredni mam dostęp, z niczym się nie łączą. Kod przerobiłem na: [syntax=c]RCC->IOPENR =RCC_IOPENR_GPIOAEN | RCC_IOPENR_GPIOBEN; volatile uint8_t p=0xFF; while(p--); GPIOA->MODER &=~GPIO_MODER_MODE9_1; GPIOA->BSRR =...
Witam, Mam kilka pytań do znawców odnośnie pamięci FLASH w uC STM32. Chciałbym zapisywać dane do FLASH z poziomu działającego programu. Czy wstępne czyszczenie pamięci jest konieczne i dlaczego jest ono stosowane? (skoro i tak zapisujemy tu komórki) Jaka jest rzeczywista szybkość odczytu z FLASH w porównaniu do SRAM w kontrolerze? (jak rozumiem granicą...
tmf napisał: Kolego, kompilator nic nie wie o adresach, typach pamięci i całym tym bałaganie. Cóś jednak wie czasami - bo jak by nie wiedział to jak by avr-gcc generował poprawny kod dla NAS? Przecież nie generuje. NAS powoduje tylko związanie z danym obiektem jednobajtowego identyfikatora przestrzeni, a reszta leży po stronie frontendu. Każde odwołanie...
w razie czego jakbym zablokował sobie linie od SWD. Nie da się trwale zablokować SWD (poza blokada odczytu pamięci flash, ale wtedy BOOT0 i tak Ci nie pomoże). W razie jakbyś zablokował sobie SWD z poziomu softu, to w ST-LINKu w opcjach zmieniasz tryb połączenia na "connect under reset" i jeśli masz wyprowadzony reset, ST-LINK sam sobie poradzi. A...
OpenOCD zaktualizowanie tak jak kompilator wcześniej. Przerabiam przykład od początku teraz na bazie tego o którym mówiłeś LPC Będe wklejał tutaj co dokładnie przerabiam. Jeśli coś robię źle to mam nadzieje że mnie poprawicie. Jeśli dobrze to mam nadzieje że komuś się przyda. 1.Import projektu lpc1114_blink_led i rename na stm32f0_blink_led 2. Zmiany...
STMicroelectronics to jeden z najpopularniejszych producentów mikrokontrolerów w Polsce. Swoją renomę zawdzięcza nie tylko udanym konstrukcjom, ale i wdrażaniu najnowszych technologii oraz bogatej ofercie. W niniejszym artykule prezentujemy niektóre z ostatnio wprowadzonych układów ST oraz wybrane ciekawe modele, które od jakiegoś czasu cieszą się dużą...
Witam niedawno rozpocząłem przygodę z STM32. Korzystam z zestawu uruchomieniowego olimexp103 w którym zamontowany jest przycisk normalnie otwarty podpisany "wake up". Chciałbym go użyć do moich prostych programików, jest to możliwe czy jest on przeznaczony do innych celów? Jeżeli jest możliwe użycie go do prostych programów to poniżej opisuję mój problem,...
Witam, Jako że jestem początkujący w dziedzinie STM32 napotkałem problem nie do przejścia. Moim zadaniem jest wysyłanie inkrementowanej zmiennej "Dane" która jest wysyłana przez USART i odczytanie jej przez terminal. W konsekwencji wyrysowując otrzymane wartości powinienem uzyskać coś podobnego do piły o amplitudzie od 0 do 255. Bez DMA wszystko pracuje...
Witam, mam problem z komunikacją z czujnikiem ciśnienia HP02S. Szukałem swojego problemu na forum, ale nie znalazłem. Udało mi się bez problemu odczytać dane z EEPROMu. Udało mi się też skomunikować z czujnikiem, ale do czasu. Sekwencja odczytu ciśnienia wygląda następująco (pseudokod): [syntax=c] i2c_start(); i2c_write(0xEE); i2c_write(0xFF); i2c_write(0xF0);...
Witam! Chciałem sobie zrobić prosty Counter zliczający ilość wciśnięć przycisku podpiętego do wejścia PA0. Skorzystałem z przykładu który zamieszczam poniżej. Niestety mój prosty Counter nie zlicza naciśnięć i zmienna cnt cały czas wynosi 0. Mam takie podejrzenie że przycisk nie jest programowo połączony z TIM2 tzn w funkcja TIM_TIxExternalClockConfig(TIM2,...
Witam, Realizuję pracę inżynierską na zestawie uruchomieniowym ZL27ARM z mikrokontrolerem STM32. Praca jest w zasadzie gotowa, ale niestety nie działa do końca poprawnie. Praca jest tworzona głównie w oparciu o książkę STM32 Aplikacje i ćwiczenia w języku C. Środowiskiem programistycznym wykorzystywanym w pracy jest Keil uVision 5. W pracy wykorzystane...
Pytałem o sens rzutowania ze względu na to, że patrząc na wartości podane w tabeli amplituda powinna być zbliżona na wartości Vref czyli 3.3V, a teraz ledwo wyłania się z szumu... Powracając do mojej pierwotnej wersji z bibliotekami: [syntax=C] #include "stm32f10x.h" //rejestr 12-bitowy prawo-zorientowany #define DAC_DHR12RD_Address 0x40007420 void...
Witam mam taki problem, otóż mój STM32F4 bardzo dziwnie się zachowuje. Mój program ma odczytywać z 3 różnych czujników przez I2C dane i przeliczać je. I2C zrealizowane jest na przerwaniach (z najwyższym priorytetem), dodatkowo używam timera 2, by odmierzał czas. Oto kod: [syntax=c]#include "stm32f4xx.h" #include "stm32f4xx_conf.h" #include <stdio.h>...
Witam, muszę szybko ogarnąć pewien projekt a tak naprawdę nigdy nie bawiłem się mikrokontrolerami nawet nie jestem informatykiem więc jeśli popełniam niżej jakieś trywialne błędy to przepraszam. ogólnie projekt polega na zapisie na kartę SD danych z przetwornika. Układ który muszę zastosować ma wyjście SPDIF i aby uprościć sobie obsługę po drodze chcę...
Witam :) Chce zapisać zmienną do pamięci EEPROM w procesorze. Testuje peryferia dynamicznie i nie wiem co się z nimi dzieje w trakcie działania. Wysyłają do mnie dane po USARCIE i chciałbym je zapisywać w wewnętrznej pamięci. Znalazłem realizacje zapisu, lecz wszędzie bazuje się na bibliotekach HAL, których nigdy nie używałem i się przekonać nie mogę....
Walczę już kilka dni próbując różnych podejść i niestety się nie udaje, więc postanowiłem spytać, może ktoś miał coś podobnego. Mikrokontroler stm32F407VGT6, potrzebuję zapisać bajt w pamięci flash pod określonym adresem. Mam 2 funkcje do zapisu i odczytu jednego bajtu w sektorze 2 pamięci flash: void flash_init(void) { FLASH_PrefetchBufferCmd(ENABLE);...
Cała moja konfiguracja SPI jest w kodzie który zamieściłem... kod po zmianach z poprzedniego posta: [syntax=c]#include "stm32f4xx.h" #define EREVID (0x12|0x60) #define ENC28J60_BIT_FIELD_SET 0x80 #define ENC28J60_BIT_FIELD_CLR 0xA0 #define ECON1 0x1F #define ECON1_BSEL1 0x02 #define ECON1_BSEL0 0x01 #define ADDR_MASK 0x1F #define BANK_MASK 0x60 #define...
Bazując na main.c [syntax=c] /* Virtual address defined by the user: 0xFFFF value is prohibited */ uint16_t VirtAddVarTab[NB_OF_VAR]={0}; uint16_t Virtval[NB_OF_VAR]={0}; uint16_t VarValue= 0; int main(void) { HSE_init(); //systick_init(); FLASH_Unlock(); EE_Init(); //PLL_init(); uart_init(); uart_write("start"); uint8_t value = 0; for (uint16_t i =...
OpenCV uruchamiany jest głównie na wysokowydajnych platformach obliczeniowych czy mocnych mikroprocesorach, ale pakiet ten może wykonywać kilka rodzajów aplikacji do przetwarzania obrazu na prostych mikrokontrolerach. Przetwarzanie obrazu stało się częścią naszego życia. Nikogo nie dziwi rozpoznawanie twarzy w smartfonie czy wykrywanie pasa ruchu przez...
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 64bit. Jako toolchain używam Summon ARM (link do instalacji...
W niższych procesorkach (STM32F1xx) były rejestry BKP, w tych z Cortex M4 jest BKP_SRAM i mam kłopot z zapisem wartości do tego obszaru. Mam w tej chwili tak: [syntax=c] uint8_t *ram = (uint8_t *) 0x40024000; int main(void) { --- --- RCC->AHB1ENR |= RCC_APB1ENR_PWREN; PWR->CR |= PWR_CR_DBP; RCC->AHB1ENR |= RCC_AHB1ENR_BKPSRAMEN; FLASH->OPTCR &= 0xFFFF00FF;...
Witajcie, siedzę i szukam błędu w bibliotekach do obsługi NRF24L01. Skopiowałem je z biblioteki, którą wykorzystuje w ATmega8. Działa nawet dobrze tam, niestety na STM32F0DISCOVERY już nie chce. Będę bardzo wdzięczny za pomoc. To najpierw kody, które wyrażają więcej niż tysiąc słów ;) : main.c Czytałem już na tym forum w podobnym temacie, że SPI w STM...
Sam main.c raczej nic nie da ale proszę. /** ****************************************... * File Name : main.c * Description : Main program body ****************************************... * This notice applies to any and all portions of this file * that are not between comment...
Cześć Od razu nadmienię, że jestem w tym początkujący. Posiadam mikrokontroler STM32F100C4T6B oraz moduł GY-50 L3G4200D. Próbuję nawiązać połączenie za pomocą interfejsu I2C i wyświetlić informację na komputerze kominukując się po UART, który na pewno działa. Jeżeli chodzi o połączenie to jestem na 99% pewny, że jest dobrze. Korzystam z programu STM32CubeMX...
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->KEYR=0xCDEF89AB; 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ć zapis do pamięci zgodnie z diagramem na stronie 13 z STM32F10xxx...
Potrzebujesz: " RM0041: STM32F100xx advanced ARM-based 32-bit MCUs " -> www.st.com To też będzie potrzebne: " DS6517: Low & medium-density value line, advanced ARM-based 32-bit MCU with 16 to 128 KB Flash, 12 timers, ADC, DAC & 8 comm interfaces " i to (zakładam ,że to chociaż już masz) : " UM0919: STM32VLDISCOVERY STM32 value line Discovery...
Witam, Po paru dniach ślęczenia udało mi się - tak myślę :) , skonfigurować rcc na 72MHz. : void rcc_init(void) //RCC init włączający procesor na 72MHz { RCC->CR|=0x1; //wlacz HSI wewnętrzny oscylator, włączany jako pierwszy po zasilaniu. while(!(RCC->CR&0x2)); //poczekaj na HSI sprawdza czy HSI się włączyło RCC->CFGR|=(0xF<<18);...
A jak masz realizowane CS? Bo może w tym mam problem, że to nie do końca działa. Zmieniłem trochę program i teraz wygląda to tak: [syntax=c]/* Includes */ #include <stddef.h> #include <stdio.h> #include "stm32l1xx.h" //defined USE_STM32L_DISCOVERY #include "discover_board.h" #include "stm32l_discovery_lcd.h" #include "bma180.h" /* Private...
Wprawdzie program mojego bootloadera napisałem korzystając z bibliotek ST, ale odblokowanie dowolnych stron FLASH'a do zapisu bardzo ładnie działa i nie mam z nim najmniejszych problemów. Zrobiłem to w następujący sposób (kolejność jest ważna): 1. Odblokowanie FLASH'a: FLASH_Unlock(); 2. Skopiowanie ustawień bitów rejestru USER OPTION BYTES: KopiaOBR...
Dzieki wielkie za rady. Przepraszam że tak późno odpisuje ale mnie lekki wk**w złapał i musiałem to wszystko na kilka dni zostawić. Teraz wróciłem zrobiłem całe środowisko od nowa bo tak w starym namieszałem że już zupełnie nic nie działało. Na tworzenie nowego projektu zadziałało rename i clean z rebuild discovery option . Zmieniłem także kolejność...
Witam! Widziałem, że ten temat był już poruszany na forum ale pozostałe posty mi na razie nie pomogły więc zwracam się do was z prośbą o pomoc. Otóż chcę wypróbować działanie kodeka CS43L22 i mimo, że wydaje mi się, że dobrze go skonfigurowałem, ale nic nie słyszę na słuchawkach. Ogólnie mój plan wygląda tak, że przerwanie od timera generuje z częstotliwością...
Jeżeli w ST_Link Utility zrobisz blokadę odczytu - Option bytes - Read Out Protection - Enable - Apply, potem najlepiej zrestartuj procesor i połaczenie i odblokuj - Read Out Protection - Disable - Apply - wtedy zawsze kasuje cały flash. jeżeli nie przekasuje wszystkiego, to jest uszkodzenie fizyczne. Dodano po 3 Chyba też jest możliwość w trakcie pisania...
Jeśli pamięć ta jest "zapisywalna" jak RAM, to osobiście skonfigurowałbym sekcję EEPROMu jak sekcję .data w RAM, czyli kopia we flash, inicjalizacja w startupie. Tylo szkoda pamieci programu na kopie tych danych, zwlaszcza jak ich troche będzie. Sama pamiec chyba jest bardziej traktowana jak flash dla programu, żeby do niej zapisywac trzeba zrobic...
Mam również problemy z układem STM32F030 (obudowa TSSOP20). Główny problem polega na tym, że ST-Link (wykorzystuję ST-Link na płytce discovery) łączy się prawidłowo z układem ale nie programuje go. Nie działa również programowanie option bytes. Za każdym razem wyskakuje błąd weryfikacji już na pierwszym adresie flash (0x08000000). Natomiast odczyt pamięci...
Witam wszystkich Tym razem chciałbym przedstawić jeszcze programowy projekt odtwarzacza i dyktafonu zrealizowany na STM32F4Discovery. Pisząc ten program, sporo rozwiązań wykorzystałem z mojego poprzedniego projektu małego odtwarzacza MP3 na ARM-ie, ale dołożyłem też dużo nowości i usprawnień. Obecnie program umożliwia odtwarzanie plików MP3, AAC-LC...
Przeczytałem dział o RDP. Widzę, że są trzy poziomy zabezpieczeń. Level0 -brak; Level1 - zabezpieczony przed debugowaniem i odczytem z wew. bootloader'a oraz przy pracy z ramu Level2 - całkowicie zabezpieczony, brak możliwości przejścia na niższe poziomy zabezpieczeń, wyłączony JTAG i SWD. Czy to znaczy, że w Level2 nie będę wstanie w ogóle już zmienić...
zujnik jest podłączony bez rezystorów wzmacniających, ponieważ odczytałem ze schematu, że nie są potrzebne(próbowałem także z rezystorami 4k7). Przy sprawdzeniu bufora z danymi w programie Stm Studio, nic się nie zmienia a flaga busy jest ustawiona jedynie przy odłączeniu kabla SDA od czujnika. Proszę o pomoc w znalezieniu przyczyny braku odczytu i...
Witam, Próbuje skomunikować ze sobą STM32F4 z Arduino UNO po UARTcie. Skonfigurowałem UART1 i płytka komunikowała się bez problemu z Arduino. Lecz do mojego projektu potrzebna jest komunikacja przez UART2 (piny PA2-TX i PA3-RX), po skonfigurowaniu UART2 i podłączeniu do do Arduino nie mogę odczytać żadnych danych. Jeżeli podłącze UART1 z UART2 na płytce...
Próbuje osiągnąć maksymalny możliwy czas próbkowania (2.4MSPS) z STM32F407ZET6 Inicjalizacja ADC i DMA: ADC_SampleTime_3Cycles lub ADC_SampleTime_15Cycles powoduje że wartości odczytane z przetwornika są 0. Niższe prędkości próbkowania działają poprawnie lecz mi chodzi o "wyciągnięcie" tych 2.4MSPS Dla ADC_SampleTime_84Cycles : 982648 Dla ADC_SampleTime_56Cycles:...
Witam, Zaczynam przygodę z mikrokontrolerami STM32, posiadam STM32F429IDISCOVERY. Zaczynam pracę z kursem na youtube: Wykonałem konfigurację środowiska jak w poprzednim odcinku, jednak gdy teraz próbuję wgrać program (zwykłe zapalenie diody) to w STM32CubeIDE 1.3.0 pojawia się komunikat: Debugger connection lost. Shutting down... Nie bardzo wiem co...
Witam serdecznie. Niżej kawałek kodu z pliku main.c W tym kodzie odczytuje sekundy z zewnętrznego układu RTC po I2C. Jak widać stworzyłem sobie funkcję "odczytaj_sekunde" w pliku "main.c" przed funkcją główną: unknown type name I2C_HandleTypeDef Co oznacza, że funkcja nie wie czym jest "I2C_HandleTypeDef" i to jest dla mnie jasne. Próbowałem zainkludować...
Cześć! Po kilku małych projektach opartych na Nucleo i Discovery postanowiłem wykonać trochę bardziej skomplikowany i praktyczny projekt - odtwarzacz plików WAV z karty SD i... zwracam się do Was z prośbą o pomoc 😄 Projekt oparty jest o STM32F103RCT6 do którego podłączone jest gniazdo kart microSD i DAC (PCM1780). Za pomocą FatFs odczytuję plik WAV...
Są jakieś mechanizmy odczytu flash, jednak to nie jest ani bardzo proste ani za bardzo legalne. Tutaj jakaś wstępna lektura
Ja w ogóle nie kumam gdzie tu jest problem, skoro flash w tym (jak i w każdym innym w zasadzie) mikrokontrolerze można odczytywać w bajtach, półsłowach i słowach? Po co rzutujesz na zmienną 16-bitową skoro chcesz odczytać 8-bitów? 4\/3!!
Po tym jak wszystko prawie było dobrze wyskakiwał mi jeszcze jeden błąd: Coś że chce przydzielić większe workarea niż posiada. Metodą prób i błędów przekopiowałem plik targeta stm32.cnf zmieniłem wielkość workarea size na - czyli dodałem 0x100 (wyczytałem na anglojęzycznym forum): set _WORKAREASIZE 0x4100 i odziwo ruszyło. Nie ma absolutnie potrzeby...
Witam wszystkich !!! OKAZJA!!! Mam do zaoferowania bogatą w liczne peryferia makiete dydaktyczną z uC STM32F103VET6. Podstawowe parametry mikrokontrolera STM32F103VET6: * MCU,32BIT,CORTEXM3,512KFLASH,100LQFP * Series:STM32 * Flash Memory Size:512KB * RAM Memory Size:64KB * No. of I/O Lines:80 * No. of ADC Inputs:3 * No. of Timers:8 * No. of PWM Channels:16...
Witam wszystkich !!! OKAZJA!!! Mam do zaoferowania bogatą w liczne peryferia makiete dydaktyczną z uC STM32F103VET6. Podstawowe parametry mikrokontrolera STM32F103VET6: * MCU,32BIT,CORTEXM3,512KFLASH,100LQFP * Series:STM32 * Flash Memory Size:512KB * RAM Memory Size:64KB * No. of I/O Lines:80 * No. of ADC Inputs:3 * No. of Timers:8 * No. of PWM Channels:16...
W normalnym świecie SPI działa w ten sposób, że wysyłając jeden bajt, odbiera się jeden. Pisząc pewien ogromny program, używałem powyższego założenia implementując obsługę SPI1 z pomocą kanałów DMA (DMA1_Ch2 i DMA1_Ch3). Jeden kanał używany do transferu bloku z pamięci RAM do SPI1->DR, drugi kanał do transferu w drugą stronę. Wszystko działało bez najmniejszego...
Niestety nie mam oryginalnego wsadu demo żeby porównać to w podobny sposób jak kolega (swoją drogą możesz zmierzyć na oscyloskopie mniej więcej jakie tam są czasy dostępu) bo te w źródłach programu uCOS demo z Bootloaderem są szybsze niż wynikają z obliczeń, ale sam próbowałem we wszystkich kierunkach, w trybie SRAM jak i NOR Flash. Co do odczytu to...
Z tego co widzę masz tu ustawienia które są ok dla uVision v4. W v3 była taka różnica że w ustawieniach uLinka trzeba start zmienić z 0x8000000 na 0. Możliwe, że trzeba było tak samo zrobić w ustawieniach mapy pamięci (zakłada target). W v4 jest już to zrobione jak należy. PS. Ten komunikat może też chyba wyskoczyć gdy flash jest zablokowany przed odczytem....
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ść pracuje pod kontrolą systemu FreeRTOS oraz stosu TCP-IP...
Witam, pozwolę sobie na wykopaliska archeologiczne, ale myślę, że to może się jeszcze komuś przydać. Większość przypadków Hard Fault podczas działania DMA w STM32F1 powstaje przez błędną konfigurację kanału DMA przy użyciu biblioteki standardowej. Błędny fragment kodu: hlayer.c:167:43: warning: assignment makes integer from pointer without...
Mam problem z programowaniem przez OpenOCD 0.8.0 kontrolera STM32F429ZIT6 w STM32F429IDiscovery (STLINK-V2 lub zewnętrzny J-Link). Pierwsze 1MB programuje się prawidłowo. Z drugim są problemy. Problem jest raczej tylko z kasowaniem czego wynikiem jest brak możliwości programowania. Wykonując instrukcje OpenOCD (kasowanie , zapis, odczyt i diagnostyka)...
Próbuję napisać obsługę pamięci AT45DB041D. Komunikacja z układem jest, ale zapis i odczyt nie działa poprawnie. Dane w pamięci zapisywane są w dziwnej kolejności. Podczas odczytu pokazuje tak jak bym odczytywał strony 0,2,2,6,4,10,6,14,... [syntax=c] uint8_t flash_busy() { uint8_t status; cs(); spi_put(0xd7); status=spi_get(); cd(); if(status&&0x80)//gdy...
Ok, ta było źle, ale ten problem pokazałby się później. Ja obecnie mam problem z zapisem do FLASHa już przy "formatowaniu EEPROMu" Wykonuje taki kod: eeprom.h: I tak jest do końca strony. Dzięki
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...
Obecnie korzystam z STM32F030F4P6. No to nie masz dużego wyboru. Jeśli masz tych zmiennych nie więcej niż kilkadziesiąt, to wystarczy jeśli zajmiesz na eeprom dwa obszary 1k. Czyli stronę 14 i 15 a PAGE_NB_PVP ustawisz na 1. Jeżeli chciałbym, by EEPROM zapisywał mi od strony załóżmy 15, to wtedy ta linijka kodu przyjmie taką postać?: #define EEPROM_START_ADDRESS...
Witam. Mam STM32F030 i próbuję zabezpieczyć programowo procesor przed odczytem (Level1) - funkcją uruchamianą przy starcie programu. Proszę zwracać uwagę na pisownię. Proszę używać znaczników syntax dla kodu. Poprawiłem post.
Witam OK, zamieszczam nowy kod źródłowy i wsad do mikrokontrolera programu radiomagnetofonu, w którym usunąłem błąd powodujący wyciek pamięci podczas grania radia oraz dodałem dwa usprawnienia poza tym. Błąd wycieku pamięci polegał na zgłoszeniu faktu braku pamięci przez dekoder AAC podczas kolejnej próby nawiązania połączenia z serwerem wybranej stacji...
Witam, otóż mam problem, a mianowicie chciałbym obsłużyć przerwanie z pinu ALRT z przetwornika ADS1115 w celu wyeliminowania opóźnienia które teraz stosuje przy odczycie każdego z kanału (delay(20)) dokumentacja: z góry dziękuję za pomoc mój dotychczasowy kod: [syntax=c] /* Includes ----------------------------------------...
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: ? Poza tym przy wgraniu bootloadera trzeba pamiętać o zworkach, bo się kasuje, może uległeś rutynie? Dlatego robię notatki,...
Najlepszego w Nowym Roku i w następnch (rokach też). Proszęż uprzejmież : [syntax=c] #ifndef NOUVOTON_SD_CARD_H_INCLUDED #define NOUVOTON_SD_CARD_H_INCLUDED // #include "NouvotonSDCard.h" #define __IO volatile typedef struct { __IO uint8_t CSDStruct; /* CSD structure */ __IO uint8_t SysSpecVersion; /* System specification version */ __IO uint8_t Reserved1;...
Witam. Szkole się w programowaniu zacnych STM32 i od razu na poczatku mam problem z funkcja printf(); Po wywołaniu tej funkcji procesor się zawiesza. Mam zrobiony proste nadawanie i odbieranie danych przez UART. Używam Keila MDK ARM V5 biblioteki HAL wygenerowane w STM32CUBEMX. Korzystam z płytki Kamami Zl27ARM. Na razie chcę uzyskać następujące efekty:...