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 Zacząłem się bawić ARM, no i postanowiłem napisać sobie funkcję której będę używał do wstępnej konfiguracji zegarów. Problem jest następujący, gdy kompiluje kod bez dodania funkcji do main.c, to wszystko się ładnie składa bez błędów. Natomiast gdy tylko dodam funkcję do main.c, to wywala mi takie oto błędy: [syntax=c] [cc] ..\obj\stm32f4xx_rcc.o:...
[syntax=c] #include "stm32f10x_conf.h" #include "stm32f10x_gpio.h" #include "stm32f10x.h" #include "stm32f10x_rcc.h" #include "stm32f10x_flash.h" #include "misc.h" #include "stm32f10x_exti.h" #include "stm32f10x_flash.h" #include "integer.h" //#include "rtc.h" #include "diskio.h" #include "ff.h" #include "ffconf.h" #include "stdio.h" //------- Pin Defs...
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 sprawdzałem ten przykład dla atollica i keila v4 ,w obu...
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...
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...
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 :) 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ę....
Poniżej program do obsługi wyświetlacza TFT: Interesuje mnie dlaczego funkcja LCD_Clear(WHITE) na STM32 działa wolniej niż na Atmedze32 z kwarcem 16MHz. Wydawało mi się że powinno czyścić ekran szybciej na STM32 a już na pewno nie wolniej. Tylko nie zwracajcie mi uwagi na temat pętli opóźniającej;) ponieważ i tak nie jest wykorzystywana w LCD_Clear....
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...
To jak już znajdziesz tam jakieś DOBRE porady to daj znać (; Chyba znalazłem. :) Pomocny okazał się STLINK/V2 z kupionej okazyjnie przeze mnie płytki STM32F4DISCOVERY (niejako dla samego STLINK-a). Po paru próbach z konfiguracjami udało mi się ustalić pierwszą rzecz - czyli programowanie i kasowanie pamięci Flash. Najpierw plik konfiguracyjny : [syntax=c]#...
Dzień dobry Po wielu dniach podchodzenia jak do jeża zabrałem się na serio do zapisu paru danych (siedmiu liczb uint32_t (słownie 7) ) do pamięci flash. Ponieważ bez Was by się to nie udało postanowiłem się podzielić moim "osiągnięciem". Muszę zapisać jasność ekranu i skalowanie ekranu dotykowego. Wyszło tak : [syntax=c]/* * 6 wspolczynnikow kalibracji...
Pod koniec ubiegłego roku firma STMicro zaprezentowała, jak twierdzi, pierwszy mikrokontroler na rynku wykonany w technologii 90 nm - STM32G0. Jest to układ z rdzeniem ARM Cortex-M0+ o taktowaniu zegarem o częstotliwości 64 MHz. W momencie prezentacji pierwszego układu, rodzina ta obejmowała elementy dostępne w obudowach mających 24, 32, 48 i 64 pinów....
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;...
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);...
Cześć, Próbuję stworzyć zapis na kartę microSD danych z CAN''a na płytce stm32f7-nucleo767zi. Na razie to dane 8-bitowe z dwóch potencjometrów, ale w przyszłości będzie ich więcej. Obsługa przerwania CAN działa(na ledach testowane), zapis działa, muszę to jakoś połączyć. Koncepcja jest taka, że przy obsłudze przerwania sprawdza ID ramki i na tej podstawie...
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...
Witam! Chcę wgrać parę danych do pamięci mikrokontrolera STM32F107 (ustawienia domyślne). Nie wiem za bardzo jak powinien wyglądać kod linkera do takiego zapisu? Korzystam z CodeSourcery ze strony Freddiego. Nie posiadam debuggera, więc kod mogę wgrywać tylko poprzez bootloader na USART. Pamięć chciałbym zapisać paroma danymi 32bit, a następnie mieć...
Witam. Jestem w trakcie pisania programu do zdalnego/lokalnego upgrade'u oprogramowania. Produkcyjnie program oczywiscie ma byc zabezpieczeony przez odczytem i tu pojawil sie problem. Okazalo sie ze przy RDP aktywnym (Read-Out protect) sa automatycznie zabezpieczone przed zapisem pierwsze strony flasha, co uniemozliwia mi calkowity upgrade softu. Przy...
Stosy są wyrównane do 8. A pamięci prawie nie używam, zmiennych globalnych jest jakieś 100b a stos jest ustawiony na 2000b. Trochę podłubałem w temacie i doszedłem do wniosku, że wykrzaczanie następuje gdy rozmiar kodu wynikowego zbliża się do 8kB (robię na F100c4t6b który ma 16kB). Dla testu zrobiłem [syntax=c]int sscanf_( char *src, const char *format,...
Jeśli nie chce używać rejestrów backupowych to zostaje Tobie tylko zapis do flasha. Twój uC ma 128KB flash, chcesz zapełnić całą pamięc programem? Zakłożę się, że nie, więc nie widzę problemu z poświęceniem mniej niż 1% pamięci na tą flagę. Inny sposób to zapis wybranej komórki EEPROMA jakąś znaną wartością po pierwszym zaprogramowaniu uC. Przed każdym...
[syntax=c] #define User_reset0x01 #define AIRCR_VECTKEY_MASK ((uint32_t)0x05FA0000) __IO uint32_t tmp = 0; RCC->APB1ENR |= (RCC_APB1Periph_PWR | RCC_APB1Periph_BKP); PWR_BackupAccessCmd(ENABLE); tmp = (uint32_t)BKP_BASE + BKP_DR1; if(((*(__IO uint32_t *)tmp)& User_reset)==0) { SCB->AIRCR = AIRCR_VECTKEY_MASK | (1<<SCB_AIRCR_SYSRESETREQ_Pos);...
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, 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...
Witam ponownie, Przygotowałem się że będę musiał skakać po Reference Manual a tu pierwsza zmiana i wszystko zadziałało. Zmieniłem [syntax=c] TIM1 -> PSC |= TIM1 -> ARR |= [/syntax] w ustawieniach timera na to [syntax=c] TIM1 -> PSC = TIM1 -> ARR = [/syntax] Tego się nie spodziewałem, zawsze sprawdzam kod w debuger`ze żeby zobaczyć czy mi...
kleki: z tego co wiem, boundary scan to jest cos co umozliwia bardziej zaawansowane badanie pracy ukladu w trakcie wykonywania programu ale do tego chyba potrzebne jest specjalne oprogramowanie (i sprzet?). W kazdym razie programowanie i debugowanie programu przy pomocy jtaga jest wykonywane przy JTAGSEL nie podpietym do VCC. Z tego co pamietam to przy...
Ok, dzięki za wskazówki. Nie chce mi się układać kodu bo to i tak zupełnie przebudować muszę. Wyślę taką kaszanę jaką mam ale działającą: FLASH_Unlock(); //printf("\n\rSend the file\n\r"); /* Start address for flash programming */ sprintf(RxBuffer, "Przykladowy string"); FlashAddress = 0x08040000; if (FLASH_ErasePage(FlashAddress...
Okazało się, że podszedłem do tematu z niewystarczającą wiedzą. Przed każdym zapisem, należy określony sektor wyczyścić instrukcja Sector Erase. Chcialbym móc kasować pojedyncze komórki i aktualizować tam niektóre dane, jednakże pamięci flash tego nie umożliwiają, cóż coś za coś. Może uda się niektóre zmienne zapisywać do flashu procesora. Coś wymyślę,...
Jeśli ADC wykonuje konwersje to nie zabiera czasu procesora. Jeśli chodzi o zapis do pamięci do procesor i DMA mogą jednocześnie czytać/zapisywać pamięć FLASH bo procesor jest połączony bezpośrednio z pamięcią poprzez I-BUS. Jeśli procesor i DMA będą w jednym momencie chciały uzyskać dostęp do SRAM, APB1/2 to włączy się arbiter i procesor dostanie 1/3...
Dzięki :) - właśnie tak wywnioskowałem z pliku *.h i napisałem coś takiego - chyba działa. Dziwi mnie tylko brak konsekwencji w nazewnictwie. Dodano po 1 Dalsze problemy: Nie potrafię nic zapisać do skonfigurowanej pamięci (LCD). Kontroler LCD nie jest fizycznie podpięty ale to chyba nie ma znaczenia. Podejrzewam,że należy załączyć stosowny bank pamięci...
Witam. Jestem początkującym elektronikiem i mam pewien problem i biblioteką fatfs. Tj : nie wiem w ktorym miejscu w programie mam umieścić kod żeby móc czytać dane z karty i zapisywać do flasha. Czy to ma być w mainie ? . Dodam tylko że nie zależy mi na ciągłęj pracy proca z kartą, tylko o jednorazowe przegranie obrazków z karty do flasha dołączonego...
Generalnie adres w PC wskazuje na kilka instrukcji "po" faktycznym problemie, bo zanim problem "dojdzie" do wykonywania, to PC jest już nieco dalej. Przed PC na stosie masz odłożony też LR - możesz sprawdzić też tam czy czegoś dziwnego nie ma wcześniej. Generalnie ciężka sprawa zwykle jest z tymi HardFaultami... Sprawdzam stos -> w chwili wystąpienia...
Jakikolwiek ST-Link (tutaj St-LinkV2 z płytki testowej). Ustawienie tej opcji powoduje zablokowanie odczytu z FLASH aż do pełnego skasowania pamięci do 0xFF. Poniżej jest tabela z prawami zapisu do stron pamięci flash. Ustawienie tych opcji powoduje brak możliwości zapisu do pamięci flash z poziomu programu. (o ile sobie nie odblokujemy tego w programie)....
Zrobiłem coś takiego: - buforuję transmisję do STM32 (10 ramek * 400B = 4KB) i wtedy wykonuję zapis Niestety zapis na kartę 4KB trwa więcej niż 1 sekundę (raz na kilka minut) i mam overrun transmisji do STM32. A nie myślałeś, żeby łączyć się z kartą przez DMA? Wówczas odpalasz transfer tych 4KB i o nim zapominasz, idzie sobie asynchronicznie do programu....
Od kilku miesięcy bez problemu wgrywałem na niego kod Coś mi się nie chce wierzyć, że przekroczyłeś liczbę dostępnych zapisów do Flash. Jednak możliwość taka jak najbardziej istnieje. Sprawdź poprawność napięcia zasilania. Nie jestem pewny - ale jak widzę z datasheet masz tam "option-bytes" do blokowania zapisu. Czy są puste one puste w STLINK Utility...
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...
No to masz przyczynę. Proponuję sprawdzić czy któraś strona nie jest zabezpieczona przed zapisem ("flash protect 0" chyba). Warto skasować option bytes (całe). Ewentualnie można próbować z narzędzia ST pokasować wszystko równo, choć na Linuxie (czy co tam masz (; ) pewnie nie działają. 4\/3!!
Mam problem z wgraniem programu do procesora po tym jak wrzuciłem do niego program mający zapisywać dane do pamięci flash w trakcie jego działania (kod do emulacji eeproma zaczerpnąłem: Aktualnie każdorazowo po próbie przeprogramowania procesora wyskakuje mi komunikat „Flash timeout. Reset and try again.”, a następnie „Error: Flash...
Tak wygląda skrypt linkera po poprawach [syntax=c] /***************************************... * author: Freddie Chopin, * file: STM32F4xxxG_rom.ld * last change: 2012-03-15 * * chip: STM32F4xxxG * compiler: arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.6.2 * 20110921 (release) [ARM/embedded-4_6-branch...
Korzystam z CooCox 1.7.7, używam Discovery z STM72RBt6 (128k FLASH) Realizuję wg ST programową implementację EEPROMa. Ustawiłem start adres w bibliotece: [syntax=c]#define EEPROM_START_ADDRESS ((uint32_t)0x0801F800)[/syntax] i zmniejszyłem dostępną pamięć dla linkiera o te 800 bajtów: [syntax=c]MEMORY { rom (rx) : ORIGIN = 0x08000000, LENGTH = 0x0001F800...
Ustawienia zostają w wewnętrznym "EEPROM" - a raczej symulowanym bazującym na zapisie w pamięci FLASH. Producent dostarcza do tego bibliotekę, aczkolwiek jest ona zbyteczna - warto używać bezpośredniogo zapisu do FLASH za pomocą bibliotek peryferii. Zaoszczędzi się trochę miejsca jeśli to wymagane. Ale wracając do zegara, który odpowiada za włączanie...
Już od wielu lat znam problem ale nigdy nie chciało mi się do niego przysiąść. Czyli lenistwo poziom expert. Do obsługi FLASHa używam nieznacznie przerobionych kodów autorstwa w123456xy (nie z elektrody, tylko gdzieś w internecie znalazłem). I problem taki: Dam optymalizację -O0, działa. Dam -Os, nie działa. Do tej pory radziłem sobie po prostu pozostawiając...
Witam, Mam następujący problem z biblioteką HAL do zapisu danych w pamięci flash. Posiadam dwie tablice 160 elementowe tabX oraz tabY (typ int16). Chciałbym zapisać dane te w pamięci nieulotnej flash, a dokładnie w adresach 0x08080xxx oraz 0x08090xxx. Cały mój problem pojawia się przy dokonywaniu polecenia EARSE przy zapisie drugiej tablicy. Aby poprawnie...
Witam, mam problem z pamięcią nand flash (S34ML01G200TFI0) a mianowicie z prędkością zapisu/odczytu. Piszę własny sterownik i ogólnie wszystko działa tzn. zapis, odczyt, kasowanie, kopiowanie... Problemem jest to, że operacja odczytu jednego page'a trwa aż 7ms(mierzone przy pomocy oscyloskopu)! Zegar mam ustawiony na 216Mhz, poniżej ustawienia rejestrów...
Witam, Czy można wykorzystać DMA przy zapisie do pamieci flash? Pewnie nie bo trzeba odczekać na ustawienie statusu ale pytanie zadam dla upewnienia się, może ktoś jakoś wykombinował z obniżoną częstotliwością zegara.
Chciałem zrobić powtórny zapis dla pamięci flash w procesorze (bo z nieznanych mi jeszcze powodów nie zapisują sie poprawnie mimo braku zgłaszanych błędów programowania) i chciałem skasować tylko niektóre bity w zapisanym wcześniej słowie. Przykładowo mam juz wpisana wartość 0xFFF0 i teraz chce zapisać w tej samej komórce (bez kasowania!) 0xFF80. Teoretycznie...
W emulowanym EEPROMie najwygodniejszą opcją jest przechowywanie danych o stałym rozmiarze, który przy okazji w jakiś sensowny sposób pozwala wykorzystać rozmiar strony. Jeśli możesz się ograniczyć tak że KAŻDY wpis ma ten sam rozmiar, to emulowany EEPROM jest opcją. Choć wiele zależy od tego jaki dokładnie STM32 - w niektórych (np. STM32F4) najmniejszy...
Witam serdecznie Poniższa funkcja ma zapisywać dwie dane, jedna po drugiej, pod wskazane adresy. Niestety po wykonaniu programu w pamięci zapisuje się tylko var1.i (Temperature). Program zachowuje się tak, jakby drugi raz funkcja HAL_FLASH_Program nie była wywoływana. Nie mam pojęcia dlaczego? Czy istnieją tutaj jakieś ograniczenia wywoływania funkcji...
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...
Witam Chcę zapisywać z własnego programu dane do flash procesora, jednak program zawiesza się w tym miejscu: [syntax=c]void FLASH_write(void) { FLASH->KEYR = 0x45670123; FLASH->KEYR = 0xCDEF89AB; while(FLASH->SR & FLASH_SR_BSY); FLASH->CR |= FLASH_CR_PER; //Page Erase Set FLASH->AR = Page_60; //Page Address FLASH->CR |= FLASH_CR_STRT; //Start Page Erase...
(at)silvvester Jak byś przeczytał inne posty to wiedziałbyś, że tak i owszem oglądałem pod mikroskopem. Rezta postu jest na takim poziomie, że szkoda klawiatury na odpowiedź. Ciekawe jak działa emulowanie EEPROM w FLASH, ale skoro Mechanizmu zapisu do FLASH działają na prawdziwym FLASH i na SRAM jednocześnie. W końcu kontroler FLASH to oddzielne peryferium.
Zlecę napisanie działającego szablonu kodu dla STM32F030 gdzie: -pracuje jeden dowolny timer i wywołuje przerwanie -jest funkcja zapisu jednej strony do flash nie powodująca zatrzymania obsługi przerwania timera Nie wiem czy jest to możliwe, lecz wydaje mi się, że by to uzyskać należy przenieść do RAM: -tablicę wektorów przerwań -funkcję obsługi przerwania...
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ć,...
A w skrypcie linkera sekcja z atrybutem KEEP? Wtedy nie powinien tego odśmiecacz wywalić, i potem po prostu sekcja #pragma? :/ Nwm tak sobie pomyslałem. Może zadziałać :D Zawsze też możesz zapisać coś do flasha pod odp oadresem jeden raz a potem to będzie. Jeśli zapiszesz to we fragmencie pamięci którego programator nie wyczyści :/ Edit: Pozwolę sobie...
Witam Chcę wykorzystać część pamięci FLASH do zapisu danych, aby nie utracić ich po wyłączeniu zasilania. Udaje mi się zarówno zapisać jak i odczytać z FLASHa ale nie jest możliwe nadpisanie danej komórki. Po próbie nadpisania wcześniejsza wartość pozostaje bez zmian. Funkcję do zapisu i odczytu: u8 FLASH_odczytaj(u32 Address) { return...
Napisałem na listę dyskusyjną OpenOCD o tej sprawie, zobaczymy jaki jest faktyczny powód wg twórców, choć mam już swój typ. Jedno i drugie działa prawdopodobnie na tej samej zasadzie. Ładowany jest loader do ramu który komunikuje się z środowiskiem. Problemem jest prawdopodobnie protokół komunikacyjny miedzy tymi dwoma składnikami, zbyt małe porcje...
Działać będzie bez problemu. oczywiście że potrzebny będzie system plików jeśli chcesz na karcie umieszczać pliku zapisując kartę wcześniej na komputerze. Dodatkowo będzie potrzebny stos TCP/UDP/IP no i rzeczony serwer FTP. Można ruszyć w kierunku darmowego uIP. Nie lubię tego uIP bo napisany jest chyba przez konia ale da się zrobić i TCP i FTP/HTTP....
Nie no maksymalnie to udało mi się osiągnąć transfer 390kB/s ale przy wydłużeniu ramki do 820B. A, że ja chcę to wykorzystać głównie do przesyłania stron NAND flasha to wykorzystałem 512B + mały naddatek. Generalnie korzystając z funkcji API wszystko poszło. Maksymalna prędkość jest już jednak uzależniona głównie od długości ramki, którą wysyłamy. U...
No myślę, że rozwiązaliśmy problem dostatecznie go podsumowując, także zamykamy. A ja dziękuję za zagorzałą :) dyskusję. Pozdrawiam. Temat okazał się być niedostatecznie rozwiązany gdzyż funkcje nie działały poprawnie. A oto 100% działające kody do obsługi flash: Wyłączenie zabezpieczenia zapisu wybranych oczywiście grup stron : [syntax=c]if((GPIOA->IDR...
OK. Udało się wreszcie. Problem tkwił w funkcji do zapisu danych. Wydawało mi się że zapis był realizowany poprawnie. Zapisywałem zmienną 16 bitową naraz a wolno tylko po pół słowa, jednak po zapisie zbyt dużej ilości danych sprawdzałem tylko jedną komórkę i wyświetlałem na wyświetlaczu i się zmieniała - więc myślałem, że jest wszystko z zapisem porządku...
Niech się Kolega nie przejmuje Freddie'm. On tak już ma... Co do meritum - wgłębienie się w dokumentację po angielsku jest obowiązkowe! Bez znajomości języka "lengłicz" w elektronice nie ma Kolega co szukać - i takie są fakty. Większość osób tutaj siedzi na Stm32 i problem też jest nietypowy. Dlatego odzew na Kolegi pytanie dot. LPC jest słaby....
Embedded flash brzmi dokładnie tak samo jak zielona trawa. To tak jakby wątek był o rodzajach trawy a byś rozprawiał o tym tym dlaczego jest zielona. A co do aluzji do AVR, to tylko niektóre wynalazki muszą czytać flash za pomocą dedykowanych instrukcji i w tym przypadku ten wątek też nie jest o tym. W w AVR też masz pamięć "embedded" flash na kod i...
No to już jakaś pocieszająca informacja, choć raz już miałem problem wprowadzając w programie blokadę SWD i JTAG, musiałem trochę pokombinować z programatorem i przyciskiem RESET, żeby programator załapał kontakt z procesorem przed wykonaniem pierwszych rozkazów. Dodano po 7 Mam pytanie bardziej praktyczne - jak tego używać w ST_Link Utility. W Option...
(at)JacekCz Przejrzyj ofertę pamięci dataFLASH, są pamięci z intgefejsem SPI (obudowy zazwyczaj SO08) lub równoległym (większe obudowy). Odczyt sekwencyjny jest szybki (do kilkunastu MB/s), zapis odbywa się blokami o stałej długości dla danego typu pamięci i jest raczej wolny (do kilkuset kB/s przy zapisie do wcześniej skasowanych bloków). Masz też...
Tak z ciekawości, jaka może być przyczyna tego błędu? 1. Jakiś błąd podczas programowania. 2. Błąd w kodzie programu jeśli są w nim jakiekolwiek operacje zapisu flash i/lub option bytes. 3. User error (;
Witam Czy obsługa przerwań STM32F1 od UARTa nie koliduje z jednoczesnym zapisem do pamięci flash mikrokontrolera (czy podczas zapisu do pamięci flash nie są blokowane przerwania) ?
Wydaje mi się, że to akurat mi ułatwi pracę z danymi gdyż będą one kilka razy przeliczane poczym jeśli będzie trzeba to zapisywane pod innym adresem we flashu. Miałby ktoś skany tego artykułu lub jakiś link?
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...
(...)co zajmie 10 cykli zegara w przypadku wykonywania z ITCRAM. Jezeli z FLASH to trochę dużej, bo FLASH jest wolniejsza. Wiesz o ile wolniej? Bo u mnie właśnie z flasha się to wykonuje. W sumie, nie dałoby się po prostu zliczać jakoś cykli zegarowych? Albo może użyć timera, tylko czy on wyrobi przy częstotliwości np 100MHz?
Wiec tak.. Pobralem program z poprzedniego linku i go skompilowalem (nie wiem czemu ale nie posiadam cs-make cs-rm ...): $ pwd /home/holekrob/workspace/stm32_blink_led... $ make Size of modules: arm-none-eabi-size -B -t --common out/startup.o out/main.o out/vectors.o text data bss dec hex filename 104 0 0 104 68 out/startup.o 444 0 0 444...
Witam serdecznie Mam problem z okiełznaniem przetwornika DAC w wymienionym w tytule układzie. Zanim pokażę kod powiem, że już brak mi pomysłów, moim zdaniem robię wszystko identycznie jak w przykładowym programie "DAC_SignalsGeneration" z taką różnicą, że nie wykorzystuję mechanizmu DMA. Po 2 dniach siedzenia nie ma wielkich postępów, na pinie wyjściowym...
Proszę o sprawdzenie kodu konfiguracyjnego, Na razie dla STM32VLDiscovery. Skonfigurowałem Timer, ADC i DMA. Nie mam jeszcze skonfigurowane przerwania od zakończenia DMA. Funkcja Board(); [syntax=cpp] #include "stm32f10x.h" #include "Board.h" void RCC_Config(void) //konfigurowanie sygnalow taktujacych { ErrorStatus HSEStartUpStatus; //zmienna opisujaca...
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, udało mi się skonfigurować TIM1 do pracy w trybie PWM z dead time'em. Poprzez dolutowaną złączka podłączam go do przekształtnika i 'kręce' silnikem - tutaj wszystko jest ok. Potrzebuję dokonać pomiaru 3 prądów z przekształtnika, napięcia Udc oraz nap 1 fazy - do tego celu stworzyłem i zlutowałem układ oparty na wzmacniaczach TL072CN bo jak wiadomo...
Jak to obliczyłeś? Pewnie 1024/4 bajty = 256, ale tutaj tak to nie działa. Strona 1024 bajty to 1024 bajty, inaczej 512 półsłów. Zapis do stron pamięci w STM32F0 wymaga zapisywania półsłów, do jednej strony oczywiście można zapisać 512 półsłów. Tzw. "emulacja EEPROMu" zapisuje wartość zmiennej (2 bajty) + "identyfikator zmiennej" (2 bajty), a więc...
Zmieniłem trochę w projekcie. Zastosowałem najnowszą wersję FatFS. Plik z konfiguracją funkcji zadeklarowanych diskio.h pobrałem ze [url=]TEJ strony i przerobiłem go by pasował do STM32L. Po testach objawy wyglądają tak: Karty 512MB i 16GB: porgram mniej więcej w 3/4 przypadków zawiesza się po inicjalizacji (f_mount zwraca "FR_OK = 0, /* (0) Succeeded...
Udało mi się rozwiązać problem sprzed kilku postów. Dla przypomnienia mój OS to: Fedora 17, zestaw to ZL31ARM (JTAG - zgodny z ST-LINK v1), kiedy to przy uruchamianiu OpenOCD z uprawnieniami roota nie chciał mi zadziałać. Wszystko się kończyło w ten sposób: [root(at)Piotek-TOSH src]# ./openocd -f /home/yoda/Pobrane/openocd-0.6.0-rc1/tcl...
Witam, Skonfigurowałem eclipse z GNU ARM Eclipse plugin do zarządzania make oraz CodeSourcery. Build przebiega pomyślnie, ale hex jest prawie pusty:) [syntax=text]:0400000508000000EF :00000001FF[/syntax] Zapis z konsoli: [syntax=text]10:30:32 **** Build of configuration Debug for project CM0_automake **** cs-make all 'Building file: ../Setup/vectors.c'...
Zgadza się. Dlatego każdy plik .h w moim projekcie został podzielony na dwie części. Jedna która dołącza się jeżeli pewien ciąg został zdefiniowany, a druga jeżeli nie. W pliku c dołączam bez definicji i wtedy mam wszystkie zmienne globalne i prototypy funkcji. Jeżeli będą mi one potrzebne w innym pliku c do przed include robię define i wtedy mam tylko...
Witam Zastanawiałem się ostatnio czy ktoś już przypadkiem nie wpadł na to, żeby napisać bootloader dla STM32 ale nie connectivity line? Przykładowo taki STM32F103ZET6, nie ma wbudowanego bootloadera który byłby w stanie zgrać program przez usb (chyba, że źle przeczytałem notę katalogową). Generalnie wymyśliłem sobie takie coś. 1. Uruchamiam urządzenie,...
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...
Staram się połączyć STM32F0 z kartą SD (w sumie to mikroSDHC), ale niestety marne są tego skutki. Próbowałem już kilka kodów znalezionych w internecie ale w końcu zatrzymałem się na znalezionym na jakiejś niemieckiej stronie.. Skompilowałem, wyskoczyło mi kilka błędów związanych z nazewnictwem i deklaracjami funkcji to je poprawiłem. Kod teraz wygląda...
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...
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...
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,...
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...
Po wymianie pamięci na Am29LV640MB zapis ruszył, jednak zapisuje max 4KB. Każda próba zapisu większej ilości danych kończy się komunikatem : Error: flash write block failed status: 0x0 Error: error writing to flash at address 0x64000000 at offset 0x00000000 Runtime Error: flash1.script:8: in procedure 'script' at file "embedded:startup.tcl",...
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...
Każdorazowy zapis oraz dodanie syscall pomogło. Finalnie program do sprawdzenia FPU ruszył jednak wyniki mnie zastanawiają: [syntax=c] #include <stdint.h> #include "inc/stm32f4xx.h" #include "config.h" #include "hdr/hdr_rcc.h" #include "hdr/hdr_gpio.h" #include "gpio.h" #include <stdio.h> #include <string.h> #include <stdlib.h>...
Pierwsza rzecz to ponowna próba odbezpieczenia "obszaru opcji" powoduje u mnie lądowanie w HardFault. Piszę o tym: [syntax=c] FLASH->OPTKEYR = 0x08192A3B; FLASH->OPTKEYR = 0x4C5D6E7F; while( FLASH -> SR & FLASH_SR_BSY ) {}; -> FLASH->KEYR = 0x08192A3B; -> FLASH->KEYR = 0x4C5D6E7F; -> while( FLASH -> SR & FLASH_SR_BSY ) {}; [/syntax] Po drugie po co...
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ść...
Jest to kontynuacja problemów z tych dwóch wątków: Temat jest naprawdę irytujący, ponieważ ostatnio (w STM32F1) problem "magicznie" sam się rozwiązał następnego dnia, wiec w zasadzie nie wiem o co chodziło... Dla przypomnienia - problem jest tego typu, że gdy chcemy zapisać coś do RAM (dziwnym trafem problem występuje tylko gdy jest potrzeba wykonywania...
Witam wszystkich, mam stm32f7 disco. Chciałbym ogarnąć temat Karty uSD. I męczę się z tym któryś już dzień i mi nie wychodzi... Używam cuba doi generowania kodu. Karta jest po SDMMC. Używam FATFs. I ciągle nie mogę nic na kartę zapisać.. W plikach wygenerowanych z Cuba nic nie zmieniam, dopisuje tylko w main.c wydaje mi się poprawną obsługe. Jakieś...
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...
Mam funkcję sin(x) zapisaną w tablicy y_sin_obl[100] czyli 100 próbek (przeliczone na wartości 0-4094 żeby do DAC można było od razu wpisać). Konfiguruję PLL: void pll_init(void) [syntax=c]{ // HSI enable RCC->CR|=RCC_CR_HSION; // HSI enable while(!(RCC->CR&RCC_CR_HSIRDY)); // wait for HSI ready RCC->CFGR |= RCC_CFGR_SW_HSI; //Select HSI...
Dane do zapisu musisz buforować, bo "zajeździsz" kartę SD. Co dokładniej masz na myśli? Ja u siebie zapisuje próbki co minutę, czy jest to za często? Czy ilość danych ma znaczenie? FAT, którego pewnie używasz, nie nadaje się do częstych zapisów. BAM siedzi w pierwszych sektorach i każdy zapis zmniejsza liczbę żyć FLASH. Wystarczy poużywać karty SD...
Witam!!! Piszę program w języku C pod uC STM32F105 Zastanawiam się na rozwiązaniem takiego problemu a mianowicie: Chciałbym zdefiniować stałą, która będzie umieszczona w pamięci programu, a więc trafi do pliku .hex, który ładowany jest do flasha. Stałą będzie tablica znaków zawierająca poszczególne litery tekstu np: "Autor: Andrzej Brzozka" w programie...
W jakiś sposób udało (?) mi się zainstalować bootloadera do mojego MC. Wygląda na to, iż Blinkiem arduino IDE działa. Nie napisałeś w jaki sposób podłączasz Blue Pill do komputera podczas programowania, bo opcji jest kilka. Co prawda nie jestem w stanie odtworzyć tej Twojej sytuacji u mnie, bo mnie osobiście zupełnie nie interesuje co jest wgrane do...