Witam ponownie, W STM32F3 SPI jest tak samo dziwne jak STM32F0, więc zapis/odczyt do/z rejestru DR trzeba realizować przez magiczny wskaźnik, gdyż inaczej SPI wysyła/odbiera 2 bajty. Postanowiłem sprawdzić jak to jest w STM32F4, konkretnie użyłem płytki STM32F429I-DISCOVERY i napisałem naprędce poniższy programik: [syntax=c] 1 2 /***************************************...
To nie jest do końca rozwiązanie problemu. Kurcze szkoda bo mam już spory projekt i wszystko poza tym jednym szczegółem działa jak trzeba tzn programowanie przez bf30, debugowanie. A zna ktoś może jakiś dobry przykład pod stm32f107 bo przykłady Freddiego Chopina są na stm32f103. Dodano po 1 Dziwne jest to, że jeśli to nie jeśli projekt nie jest do końca...
Ale to widziałeś? Nie. Jestem ostatnio regularnym bywalcem twojej strony, ale to przegapiłem. Mea culpa.. W skrypcie linkera należy ustawić rozmiar stosu dla przerwań - domyślnie jest zero, co zwykle źle się kończy. Ustawiłeś jakąś sensowną wartość? I to jest pewnie przyczyną. Sprawdzę po pracy i dam znać czy to rozwiązało problem. Masz na myśli wartość...
Witam! Próbuję zaprogramować mikrokontroler STM32F107, aby współpracował z siecią. Najpierw chciałbym skompilować kod z przykładowym projektem dostarczonym do STM32 jako EthernetDriver, czyli stm32_eth_lib. Przykład napisany jest z użyciem stosu TCP/IP uIP. Całość kompiluje się bez żadnych błędów (ew. warningi) z użyciem kompilatora CodeSourcery G++...
Co znaczy zbyt mały, czy 1024 bajty to za mało? Używam twojego (jakiegoś może nie najnowszego) skryptu linkera... [syntax=c] /***************************************... * author: Freddie Chopin * file: stm32f103rb_rom.ld * last change: 2009-09-19 * * chip: STM32F103RB * compiler: arm-none-eabi-gcc 4.3.3 * * description:...
Witam. Przerobiłem mrugacz diodami Freddiego Chopina na procesor STM32L, jednak coś nie tak jest z tym ... nie działa. Podczas debugowania doszedłem do wniosku że chyba źle skonfigurowałem porty. Albo robię źle coś innego gdzieś. Niby adresy rejestrów portów są prawidłowe, ale odczytane z tego obszaru pamięci wartości są zupełnie bez sensu i nie zmieniają...
Tylko u mnie nie jest to żadna sekwencja. Kanaly 11 i 12 są zamienione. No właśnie - dlaczego? Jak to stwierdziłeś? Próbowałeś kilka razy pod rząd uruchomić konwersję? Wziąwszy pod uwagę Niedoceniasz "HALa" od ST... (; pozostaje uruchomić debugger i sprawdzić co się właściwie dzieje w uC oraz HAL-u. Docelowo warto również sprawdzić metodę Użyj DMA...
Nie lepiej "nie należy zwierać zasilania"? 4\/3!! to napewno tez
Eclipse (Neon.3 release 4.6.3) Jak dobrze poszukasz, to może znajdziesz JESZCZE STARSZĄ wersję (; Nie ma co się ograniczać do takiej która ma ledwo trzy lata. Jest to wersja, jakiej używa System Workbench for STM32, pobrany w styczniu 2019. Czemu korzystają z niezbyt nowej wersji Eclipse? Nie wiem. Ale skoro ST poleca SW4STM32, to postanowiłem go użyć....
więc - ponownie - gdzie jest problem? Życie nie kończy się na STM32F1. Chociaż po głębszym przemyśleniu faktycznie problemu nie widzę.
Mam zainstalowane Eclipse Która wersja? Czy masz zainstalowany GNU ARM Eclipse Plugin? Bez niego ten projekt nie zadziała. Problemów szukaj więc w konfiguracji Eclipse/CodeSourcery/GNUArmEclipsePlugin... Wczytałem ten "template" i się bezproblemowo kompiluje (w konfiguracji Debug). W konfiguracji Release (optymalizacja) występuje błąd: Jeśli podczas...
Użycie wolnego zamiast wolnawego oprogramowania rozwiązuje problem.Ktoś konfiguruje z wolnego oprogramowania zestaw tnąc funkcje dostępne za darmo, aby ludziom wyłączyć myślenie i by kupowali to co jest bez ograniczeń za darmo. Patrz tutorial Freddiego Chopina. Albert
W STM32 domyślnie podczas zatrzymania rdzenia timery pracują, więc podczas twojej pracy krokowej zgłaszane są setki kolejnych przerwań. 4\/3!! No nic może uda się mi to wieczorkiem opanować to dam znać. W LPC...nie było tego problemu....ale z drugiej strony dokumentacja do STM32 ma dużo więcej stron :wink:. _____________________________ No i racja...
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 rodziny mikrokontrolerów ułatwi korzystanie z poradnika? szczywronek:...
Witam. Poskładałem Jtaga ze strony Freediego Chopina. Niestety nie mogę zaprogramować targeta(płytka HY-Mini z STM32F103VCT6). Wszystko jest konfigurowane wg tutoriala. To pokazuje mi konsola eclipse: Open On-Chip Debugger 0.5.0 (2011-08-09-23:26) Licensed under GNU GPL v2 For bug reports, read http://openocd.berlios.de/doc/doxyge...
Witam, a więc działam sobie na płytce ZL31 z kamami, w wersji z odłączonym st-linkiem, za programator i debugger służy mi jtag-arm z andtechu, jest to urządzenie na bazie ft2232. Soft to toolchain skonfigurowany podług tutka freddiego chopina. Wszystko ładnie działało jak trzeba do dzisiaj, gdy w którymś momencie zauważyłem, że skompilowany program...
Na potwierdzenie tego co napisał powyżej Freddie Chopin, zamieszczam poniżej programik ilustrujący problem: [syntax=c] #include <stdio.h> #include <stm32f4xx.h> #include <stm32f4xx_rcc.h> int main(void) { printf("stm32f429i\n"); printf("GPIOA\n%8.8X\n", (unsigned int)GPIOA); printf("RCC_AHB1Periph_GPIOA\n%8.8X\n", (unsigned int)RCC_AHB1Periph_GPIOA);...
Witam, próbuję uruchomić program napisany przez Freddie'go Chopin'a, na procku STM32F103R wlutowanym w moduł MMstm32F103R , na płycie ewaluacyjnej EVBmm Zainstalowałem oprogramowanie, sterowniki, Eclipse, openocd itp. według instrukcji umieszczonej na stronie Freddiego. Projekt udało mi się skompilować poprawnie. Problem polega na tym, iż nie mogę przez...
Witam! Mam problem z fatfs 0.09b (najnowsza; wersja 0.07 też nie działa) pod stm32f103vet6. Komunikacja SPI. Maksymalny prescaler SPI do debug'u. (Na każdej prędkości to samo). Disk timer proc na SysTick'u (działa). Karta formatowana na różne jednostki alokacji, FAT, FAT32 zawsze to samo. Nie korzystam z LFN. Strona kodowa 852, 125x, 1 (ANSI) bez znaczenia....
Witam Zacznę od początku, niedawno kupiłem sobie płytkę discoverystm32f4, początkowo programowałem przy użyciu Cocoxa, nawet nie tyle programowałem co wrzuciłem sobie parę kodów na mruganie diodami i delikatnie je przerobiłem, ale postanowiłem przenieść się na Eclipse, korzystając w filmiku na YT skonfigurowałem środowisko(open ocd,eabi) z tego co zauważyłem...
Witam wszystkich użytkowników, na studiach spodobały mi się stmy, chce iść w tym kierunku... Mam problem z poprawną konfiguracją środowiska. Oto kroki które poczyniłem: 1.Instalacja gdb_hardvare_debuging w programie eclipse 1.1Help 1.2Instal New Software 1.3Work with: --All Avaliable Sites – 1.3.1Instalacja GDB hadvare debugging 2.Załadowanie...
Witam, Dopiero co zaczynam bawić się ARMami, i na początek zakupiłem sobie moduł z propoxa (STM32F103VE) wsadziłem na mała płytkę uniwersalną ze stabilizatorem 3,3V do tego programator BF30... Tak więc skonfigurowałem sobie Eclipsa + CodeSourcery + openocd wg opisu na stronce tutro.net oraz skryptów załączonych do programatora. No i udaje mi się zaprogramować...
Witam Jeśli chodzi o ustawienia (ze wszystkimi konfiguracjami PLL, AFIO, GPIO itd) to jest to plik system_stm32f2xx.c ze strony stm32. version V1.0.0, 18-April-2011. Jedyna zmiana to PG9 na PG10 + #define DATA_IN_ExtSRAM [syntax=c]//GPIOG->AFR[1] = 0x000000c0; GPIOG->AFR[1] = 0x00000c00; // GPIOG->MODER = 0x00080aaa; GPIOG->MODER = 0x00200aaa; // GPIOG->OSPEEDR...
Witam, Zrobiłem najprostszy program z uruchomieniem jedynie RCC i GPIO. ... Kiedy log10 jest wyłączony komentarzem, LED świeci, kiedy log10 jest włączony, LED nie swieci. Czekam na jakąś odpowiedź od CooCoxa. Jeżeli to co powyżej napisałem nie zadziałało u Ciebie, to nie wiem. Przed wysłaniem poprzedniego postu wprowadziłem ww. zmiany w parametrach...
Posiadam gotowy projekt stm32_blink_led ze strony Freddiego Chopina, wszystko zostało poprawnie skonfigurowane pod linuxem i działało bez zarzutu na Eclipse Galileo wykorzystując pakiet CodeSourcery. Aktualnie po wyczyszczeniu systemu chcę przejść na Eclipse Juno i wykorzystać toolchain Linaro. Sama kompilacja i zaprogramowanie płytki (STM32L-Discovery)...
Mam na schemacie np. silniki ale są na razie nie podłączone. Mam TB6612 ale niepodłączone (bez zasilania głównego). Mam CP2102. Jeszcze sekcja zasilania. Ale jak mówiłem sprawdziłem w Keilu - działało normalnie. Wklejam ustawienia debugera. Może redefiniujesz piny od SWD? W kodzie na prawdę nic nie ma. Wklejam co mam dla pewności :). > reset init...
Witam, od jakiegoś czasu testuję zestaw uruchomieniowy STM32F429 discovery. Bazuje na modyfikacji przykładu Freddiego Chopina. Od jakiegoś czasu próbuje coś wyświetlić bez korzystania z bibliotek od ST (to mam już za sobą). Na początku dodam, że wyświetlacz startuje, wyświetla kolorowe tło (LTDC->BCCR). Następnie ustawiam żądany rozmiar okna korzystając...
Korzystam z gotowca Freddie'ego Chopin'a dla uC stm32f103 i używam CodeSourcery. Mam następujący problem: Próbuję obliczyć splot korzystając z funkcji: Linking target: out/stm32_blink_led.elf arm-none-linux-gnueabi-g++ -mcpu=cortex-m3 -mthumb -TSTM32F103xB_rom.ld -g -Wl,-Map=out/stm32_blink_led.map,--cref,... -Wl,--gc-sections -nostartfiles...
Wg dokumentacji MINIMALNA wytrzymałość pamięci w STM32 to 10k cykli. Jest taki jeden wyjątek: STM32F030 Można zerknąć np. do datasheeta (DM00088500), tabela 38. Miałem zabawną dyskusję z przedstawicielem producenta: Ja: Czemu ST daje tu gorszą pamięć? PP: Ta pamięć nie jest gorsza, niż w innych STM32, po prostu jest mniej testowana i dlatego producent...
Zdaje się że brakuje pliku "gpio.h" Korzystam z biblioteki do obsługi peryferiów: stm32f4xx_stdperiph_driver Natomiast nie działają mi (tzn. nie ma) następujących flag: GPIO_AF12_PP_100MHz GPIO_OUT_PP_50MHz GPIO_AF5_PP_25MHz_PULL_DOWN GPIO_AF14_PP_50MHz GPIO_OUT_PP_25MHz RCC_CR_HSERDY_bb GPIO_MODER_mask Wyraźnie napisałem że pliki które dodałem są...
Czyli tak - masz STM32L (zapewne STM32L1), a używasz nagłówków dla STM32F1. To niezbyt dobry pomysł... Wyłączanie ostrzeżeń kompilatora jest jeszcze gorszym pomysłem... No coś w tym jest hehe :), zaraz coś pokombinuje Dodano po 3 A zna ktoś jakiś tutek jak w eclipse doinstalować liby do tego uc na linux?
Plik nagłówkowy mikrokontrolera można wyłuskać np. z paczki SPL pobranej ze strony ST. Dla Twojego STM32F103VBT6: [url=]link (przycisk download na dole strony). Po rozpakowaniu archiwum: Libraries -> CMSIS -> CM3 -> DeviceSupport -> ST -> STM32F10x -> stm32f10x.h Obawiam się, że to nie środowisko, a jednak Ty nie rozumiesz zapisu 1<<MODE2...
Co rozumiesz przez "błąd"? Błędem nazywam wyświetlanie bitów które nie istnieją Ale teraz dzięki wam już wiem, że najważniejszy jest RM Spytałem o błędy w stm32f4xx.h, bo nie chciałbym się kiedyś zdziwić, że zapisując do rejestru wartość RCC_APB2ENR_ADC1EN zapiszę np. ((uint32_t)0x00000200) zamiast ((uint32_t)0x00000100) W RM napisali, żebyś nie ruszał...
Ok, coś jest nie tak. Przede wszystkim systick działa na trybie optymalizacji O1 i O2. Bez zmiany kodu. Na O0 od razu jest hard fault. Ale nie występuje na żadnej linijce kodu. Nie wchodzi do przerwania i wywala od razu błąd. EDIT: Działa w momencie kiedy wywaliłem inicjalizacje: N VIC_Init(&NVIC_InitStructure); A w to miejsce dałem: NVIC->ISER...
Witam, Bazuje na projekcie ze strony Freddie Chopin dla stma F4 z dodanymi bibliotekami STM32F4xx_StdPeriph_Driver. Zdefiniowałem sobie konfigurację timer'a w następujący sposób: [syntax=c]void Timers_Config(void){ RCC_APB2PeriphClockCmd(RCC_APB2Periph_TI... ENABLE); NVIC_InitTypeDef NVIC_InitStruct; NVIC_InitStruct.NVIC_IRQChannel = TIM1_CC_IRQn; NVIC_InitStruct.NVIC_IRQChannelPreemptio...
Teraz jest ok, nie miałem pojęcia że jest buffor w STM. CS_OFF odnosi się do pinu CS dla wyświetlacza LCD, żyroskop jak i on jest na wspólnym SPI5 (to nie mój pomysł, tak jest to zrobione w STM32F429I-DISCO :P ) Dodano po 2 starob próbowałem i sprawdzać falgę RXNE oraz BSY, niestety to nie działa. Dodano po 1 Freddie Chopin , wiem że to powinno się...
O popularności mikrokontrolerów STM32 wśród hobbystów i pasjonatów nikogo nie trzeba przekonywać. Firma ST taranem wbiła się w społeczność mikrokontrolerową rozdając płytki Discovery i Nucleo. Wraz z rosnącym zainteresowaniem STMami pojawiło się kilka (polskojęzycznych) książek oraz kursów/poradników na ich temat. Po co więc kolejny? Istniejące poradniki...
Witam wszystkich. Uzywam Eclipse + OpenOCD (0.9.0) + GCC. Do tej pory używałem STM32F103 (Cortex-M3), a teraz przesiadłem się na STM32F373 (Cortex-M4). Wziąłem ze starego programu skrypt linkera, startup, vectors.c i posklejałem do kupy odpowiednio je modyfikując. Program generalnie odpala się, mogę sterować GPIO. Następnie spróbowałem uruchomić SysTicka....
Witam od dwóch dni mam problem z USART na stm32f4discovery. Otóż napisałem sobie prosty programik na bazie tego przykładu pod stm32f4discovery ze strony Freddiego Chopina, tyle że sam napisałem sobie konfigurację zegarów itd. Zrobiłem konfigurację USART 6, napisałem funkcję do wysyłania jednego bajtu oraz całego słowa i wrzuciłem sobie wysyłanie bajtu,...
Chciałem się jeszcze zapytać, czy nucleo-F767ZI będzie odpowiednią płytką bazową do takiego projektu Trudno powiedzieć... Problem jest zarysowany dość ogólnie. Sam mikrokontroler to dość wydajna obliczeniowo jednostka i raczej powinna bez problemu sobie z takimi zadaniami poradzić. Mam nawet wrażenie, że jest nieco nadmiarowa a temat można by pociągnąć...
Faktycznie! Jeśli nie przekroczę 4 breakpointów to nic się złego nie dzieje. W kail-u wyświetla się okienko informujące że nie można dodać kolejnego breakpointu (max to 5). Dzięki Freddie! Mam jeszcze jedno pytanie. Chciałem użyć w projekcie kontenerów z biblioteki standardowej C++ (konkretnie vektora i kolejki) jednak gdy program chciał wykonać którąś...
Witam, zaprojektowałem i uruchomiłem sobie moduł z Cortexem STM32. Do programowania używam JTAGa ARM USB od Freddiego Chopina ( pozdro działa bez problemu i jest szybszy od Wigglera ) i w IDE CrossWorks firmy Rowley w oparciu od biblioteke firmware FWLIB. Jak to bywa zawsze, na początku postanowiłem sprawdzić czy działają peryferia. STM32 domyślnie...
Hmmm. Wgrałem oryginalny program z Stm32 MassStorage. vectors.c startup.S i .ld o kolegi Freddie Chopin. Mam obecnie dwa przerwania z Usb: USB_HP_CAN1_TX_IRQHandler i USB_LP_CAN1_RX0_IRQHandler ( w vectors.c było bez jedynek kolo CAN ). Zrobiłem takie coś, orginalny program void USB_HP_CAN1_TX_IRQHandler(void) { CTR_HP(); }...
Witam W debugger jestem cały czas. Przy probie wywołania funkcji mam błąd. a= LaderFunADD(&b, &c); Nie wiem ewentualnie jaki rejestr mógłbym sprawdzić. Wziąłem nawet cały projekt od kolegi Chopina stm32_blink_led. W makefile dodałem, linia 59: LIBS = lib_addLader.a Header plik lib_addLader.h extern short LaderFunADD (short* a, short *b);...
(at) mrh Do mnie kod z Atollic doszedł w ciągu kilkunastu sekund. (at)Freddie Chopin Wersja Lite nie jest ograniczona ani czasowo, ani rozmiarem kodu i chyba nawet można jej używać komercyjnie. :D Jest okrojona funkcjonalnie w stosunku do wersji profesjonalnej. Listę różnic można znaleźć na stronie Atollic. Szczegółów nie znam, bo nie używam. Zainstalowałem...
Na koniec dodam, że ja osobiście niezbyt lubię makiety Opatentowałeś wpinanie TQFP i BGA bezpośrednio do płytki stykowej? :> Akurat sam mam F4 Discovery, ale jeszcze nie znalazłem czasu na dłuższą zabawę. I to samo dotyczy ARMów jako takich (wcześniej prawie dwa lata zabawy z AVRami), z tym że dodatkowo mam JTAG Freddiego i jeszcze jedną makietę, ZL26ARM...
Tą diodę możesz spokojnie zewrzeć (tymczasowo) A długo można tak bez tej diody "jechać" ? Bo ja też zwarcie zrobiłem, a nie mam gdzie jej kupić więc na razie działam bez niej.
Hehe, chyba ślepnę powoli :P Masz dobrą tablicę wektorów? Tablicę wektorów oczywiście napisałem sam, na podstawie twoich projektów dla µC LPC11xx i STM32. No i faktycznie, w tablicy wektorów zapisane miałem: Nie powinieneś działać na rejestrze 0? Tak, dokładnie, jedynka była wynikiem moich poszukiwań niepowodzenia, wcześniej widniało tam zero....
Witam! Od jakiegoś czasu męczę się z SPI na STM32, posiadam płytkę STM32F3 Discovery. Podłączyłem SPI1 z SPI2 (MISO-MISO, MOSI-MOSI, SCK-SCK, NSS nie podpięte), SPI1 pracuje jako master, po wysyłaniu danych do SPI2(slave) rejestr RXNE w SPI2 jest cały czas równy 0. Próbowałem zamienić rolami SPI1 z SPI2 ale sytuacja była taka sama. Próbowałem na początku...
Witam, Chciałem przerobić skrypt linkera i startup.s z projektu Freddiego Chopina stm32_blink_led na kopiowanie i uruchamianie aplikacji z pamięci RAM. Dodałem do sekcji .text analogiczne wpisy jak w sekcji .data udostępniające zmienne __text_init_start, __text_start oraz __text_end. .text : { . = ALIGN(4); __text_init_start = LOADADDR...
Argument o "przenośności" kodu wg Twojego pomysłu jest śmieszny, bo niby co - weźmiesz ten kod z STM32, wrzucisz go na LPC17xx i zadziała? Jeśli musisz go zmienić i tak, to ja nie wiem gdzie zysk. Nie chodziło mi o przekopiowanie kodu, ale o sposób postępowania, który będzie poprawny niezależnie od uC. Dobrze, postaram się przerobić konfigurację rejestrów...
A niby czemu "Kepler", a nie po prostu "najnowszą"? Bo Kepler jest najnowsza właśnie, a GNU ARM Plugin dostał wsparcie (którego nawet nie zdążyłem jeszcze przetestować) dla JLINK i OpenOCD. Za miesiąc Kepler zostanie zastąpiony nową wersją i wtedy Twój post straci aktualność. Taka jest naturalna kolej rzeczy, 99% postów na elektrodzie jest przestarzałych....
Nie, procek się nie grzeje Zworek nie ruszałem, St-link (oba) na dole JP2 i JP3 też i na górze JP1 zwarte jak były Programuję w środowisku Keil v5 #include "delay.c" #include "delay.h" #include "stm32f4xx.h" void GPIO_Config(void) // konfiguracja portow gpio { GPIO_InitTypeDef GPIO_InitStructure; //tu nalezy...
Zastanawiam się, czy to nie jest kwestia vector.c albo startup.S których używam od Freddie Chopin. Może coś tam powinienem jeszcze zmienić? Patrząc na te przykłady z Keila w samej aplikacji mam tak samo. Zmienilem rozszerzenia, bo nie mogłem dołączyć załączników: startup.h -> startup.S stm32f103rb_rom.h -> stm32f103rb_rom.ld
Ten parser zapewne ustawiłeś na "file", więc jeśli chcesz zobaczyć co "sparsował", to musisz oglądać właściwości pliku, a nie projektu. Próbowałem też ustawiać na folder i project - ten sam rezultat. W jaki sposób może być wyłączona z kompilacji? To że sobie w Eclipse klikniesz "exclude from build" nie ma żadnego znaczenia dla Makefile'a który jest...
Wrzuć tu plik .bin
OMG, ale po co ładujesz wciąż plik .bin... Załaduj po prostu plik .hex czy .elf - parametr offset nie ma wtedy żadnego znaczenia (jest ignorowany), bo pliki te zawierają adresy. Co do parametru "unlock" - jeśli masz układ z zablokowaną pamięcią, to ta komenda nie zadziała zawsze - jak widzisz - w niektórych układach po odblokowaniu pamięci konieczny...
Przyszedł i mnie czas sięgnąć po STM32. Dla miękkiego startu skorzystałem z tutoriala Chopina. Działa ok. Przykład ten korzysta jednak z gotowego make'a a ja potrzebuję docelowo generowanego automatycznie. Zrobiłem więc w eclipsie nowy projekt bazujący na tych samych źródłach ale z make'iem generowanym w eclipsie. No i prawie sukces. Nie całkiem bo...
Witam! Mam problem z projektem na STM32. Chciałem użyć pamięci flash do zapamiętania potrzebnych mi parametrów. Problem pojawił się przy czyszczeniu flasha. Po wywołaniu FLASH_ErasePage dostaję flagę FLASH_FLAG_BANK1_EOP,co wydaje się całkiem prawidłowe. Program wraca do pracy z tym, że przez około 5s nie działają mi przerwania od timerów. Same timery...
Cytat: W przypadku większej ilości urządzeń komunikujących się przez SPI zostaje mi albo użycie kolejnych portów SPI2 oraz SPI3 lub sprzętowe sterowanie końcówkami CS? Zakładając, że chciałeś napisać "... lub programowe sterowanie końcówkami CS" to też się zgadza. Zgadza się chodziło mi o programowe sterowanie końcówkami CS. Czyli w takim wypadku przy...
W STM32 rezystory pull-up / -down są w ogóle nie potrzebne, za to brak jakiegokolwiek rezystora na linii resetu raczej nie jest normalny... (...) Odgrzebałem stary wątek ale jak to jest z rezystorem przy reset? Na rysunku z dokumentacji STM32F103xC, STM32F103xD, STM32F103xE nie ma rezystora podciągającego. I drugie pytanie czy sygnały RTCK, DBGRQ i...
Wczoraj skonfigurowałem całe środowisko, Sourcery CodeBench Lite 2012.03-56 Eclipse Juno OpenOCD 0.6.0.RC1 Wszystko ruszyło niemal od pierwszego odpalenie, po drobnych zmianach dostosowujących do posiadanego sprzętu. (STM32L-Discovery) Świetny tutorial :) Oops, pomyliłem wątki, korzystałem z tutoriala Freddiego Chopina.
Jak więc tego dokonać? Jak to zrobić w CooCox czy w Keilu - no idea (; CooCox: Menu Project->Configuration, panel "Memory Areas", radiobutton "Debug in RAM" zamiast "Debug in Flash". Będzie widać, jak zmienią się adresy w polach powyżej radiobuttonów. Pozdrowienia, MKi
No tak, trochę zamieszałem. 4095 zapisze się na 12-bitach, więc mogę podzielić na 2 po 6 bitów czyli 63(dec). Zostaną mi dwa bity i mogę wykorzystać je do oznaczenia numeru kanału lub kodowania. a Ty Freddie Chopin jakie byś wybrał rozwiązanie, żeby było optymalnie? Odczytywałbyś ADC w trybie circular czy wyzwalał Timerem?
Będzie działać, o ile dobrze podłączysz piny, co z dokumentacją nie powinno być problemem. Środowisko polecam jednak sobie ustawić na podstawie tutoriala i przykładów [url=]Freddiego Chopina, z tym że w oparci o Linaro, a nie CodeSourcery.
Muszę przyznać, że Chcesz programować w C++, RTOS? ARM = tak, AVR = nie. bardzo mnie zachęcił. Znalazłem zestaw czy taki zestaw będzie dobry na początek? Proszę Was, wypowiedzcie się, nie chcę podejmować decyzji na podstawie jednej opinii :D. Nie chodzi o pieniądze, majątek to też nie jest. Ważne dla mnie jest, aby początek przygody z mikrokontrolerami...
Próbuje uruchomić przerwania: vector.c wygląda tak [syntax=c]static void __Default_Handler(void) __attribute__ ((interrupt)); static void __Default_Handler(void) { while (1); } /* +=======================================... | assign all unhandled interrupts to the default handler +=======================================...
Witam Na wstępie środowisko środowisko na bazie tutorialu Freddie Chopin-a , z dołączonym "STM32F10x_StdPeriph_Lib_V3.5.0" Płytka bazowa ZL27 Kamami. Kompilator CodeBench Lite for ARM EABI Praca bez systemu operacyjnego (na ARM) Problem jest następujący. Chciałem uzyskać możliwość pełnego wysyłania danych przy pomocy Printf na wiecej niż standardowe...
Nie łącz załączania SPI z jego inicjalizacją. Najpierw ustawiasz wszystkie rejestry potem dopisujesz SPE Nigdy w życiu tego nie dzieliłem i nigdy w życiu nie miałem z tego powodu problemu. 4\/3!! FAKT jak ustawiasz jeden rejestr to nie, ale jak kilka to ten drugi już się nie ustawi.
Witam. Zdaje sobie sprawę, że mój problem nie jest jedyny jednak zarówno w sieci jak i w praktyce nie znalazłem konkretnego rozwiązania. Problem dotyczy Komunikacji STM32L100 z pamięcią FLASH M25PX33 obsługiwaną po SPI. Nie widzę tu raczej problemu z pamięcią czy też z połączeniem procesor-pamięć. Używam programatora ST-Link z płytki Discovery F4, STM32L100...
Witam, podłączę sie pod ten wątek bo tytuł najlepiej oddaje moje uczucia, a nie chcę zakładać osobnego wątku "jak zacząć". Poszedłem za poradami na wikimarek.referata.com/wiki/Programowani... i po wielu perturbacjach udało mi się zainstalować kompilator debugger i openocd (niestety nie ograniczyło się to do wpisania trzeche linijek z "apt-get")....
Zacznijmy od początku, czyli od inicjalizacji. Coś wygrzebałem, post Freddie Chopin o inicjalizacji: [syntax=c] #defineI2C_CR2_FREQ_24MHz 0b011000 RCC_APB1ENR_I2C2EN = 1; // wl. taktowanie I2C2 I2C_CR1_SWRST = 1; // programowy reset I2C_CR1_SWRST = 0; I2C2->TRISE = 37; // ?? z kad ta wartosc ( Co tu wpisać ?) I2C2->CCR = 120; // 24MHz/120/2 ~= 100kHz...
i nie zadziała, bo plik nazywa się "STemWin528_CM7_GCC.a". a nie "libSTemWin528_CM7_GCC.a". Dlatego trzeba użyć formatu "-l:" zamiast "-l". Ok, do tej pory nie zwróciłem na to uwagi. No ale to w tym samym polu wystarczy wstawić :STemWin528_CM7_GCC.a i na to samo wyjdzie.
Spróbowałem przez ST-Link Utility. Dla sprawdzenia jak to wgrać przeprowadziłem test przy włożonych zworkach i odłączonym układzie zewnętrznym (czyli operowałem na wbudowanym ARMie w STM32F0DISCOVERY). Dałem radę tam wgrać program. Następnie spróbowałem (po wyjęciu zworek w PCB) połączyć się z zewnętrznym ARMem, lecz otrzymałem taki komunikat: Spróbuj...
ustawienie tego wszystkiego przy użyciu Makefile na pewno zajęło by dłużej Uważasz po poprzednich postach że Kolega autor ma na tyle wiedzy aby to zrobić? Nie wiem jak to ludzie robią, że im nie działa (trzeba się naprawdę postarać), ale ja używam od czasu do czasu SW i problemów żadnych nigdy nie miałem.
Tak jak pisałem w pierwszym poście IMO zachowanie normalne. Tak samo w STM32F4 nie ma żadnego FIFO w SPI. Teoretycznie ma bo masz rejestr przesuwny i DR. Dostajesz dlatego 2 TXE raz na poczatku a drugi jak przesunie z DR do tego rejestru. Aż sobie płytkę z 429 odpaliłem i nie widzę żadnego nieprawidłowego działania. FCh słusznie zauważył że akurat tu...
(at)Freddie Chopin Ja tam z boku widzę okienko deasemblacji co oznacza że błąd w kompilatorze był już poszukiwany :). Czekam na pytanie dlaczego to mnożenie wykonuje się w 900 taktach i wołane są jakieś tajemnicze funkcje, dlaczego nie jest to instrukcja FPU oraz dlaczego zrobienie tego mnożenia zwiększa rozmiar programu o 5k
Dzięki za wszelkie wskazówki Panowie, na przyszłość będę bardziej świadomy. Szczególne dzięki dla Pana Freddie Chopin. Doczytałem na temat specyfikatora extern, nie dodawałem definicji zmiennej ale usunąłem owy specyfikator, problem znikł. Na tą chwilę nie wiem jeszcze czy to dobra praktyka ale pomogło.
(at)kamil94goldman odpowiedź jest prosta - tak samo jak do PSC wpisujesz wartość o 1 mniejszą niż dzielnik który sobie policzyłeś, tak do ARR również powinieneś wpisać wartość o 1 mniejszą. no tak... ;) Walczę z odmierzaniem czasu, nie wchodząc w przerwanie. Opóźnienie chciałem uzyskać dzięki sprawdzaniu flagi przerwania ale gdy program uruchamiam...
Dziękuję za pomoc. Po dodaniu do Makefile tak jak podał Freddie Chopin działa teraz prawidłowo.
Wydaje mi się, że przykład ze strony podanej przez (at)Freddie Chopin rozwiązuje problem nawet w przypadku zagnieżdżonych sekcji krytycznych: [syntax=c]void foo(void) { int was_masked = __disable_irq(); /* ... */ if (!was_masked) __enable_irq(); }[/syntax]
I to sie nie kompiluje. Pewnie zgłasza jakiś błąd, który wypadałoby tu przytoczyć jeśli oczekujesz pomocy. Jeśli to co pokazałeś jest CAŁYM plikiem nagłówkowym, to masz w nim co najmniej dwa problemy: - brak include-guardów, - brak #include <cstdint> Jest to goły projekt automatycznie wygenerowany + ta moja bardzo zaawansowana klasa w pliku dodanym...
piotrek0207 napisał: Zauważyłem, że jak nie dodałem warunku while((SPI1->SR & SPI_SR_BSY) == 0) obraz był przekoszony, czyli były błędy w transmisji. I właśnie o tym piszemy od początku - jakiekolwiek modyfikacje dotyczące SPI (np. w Twoim przypadku machanie pinem CS) w przerwaniu od zakończenia transmisji DMA _nadawczego_ są błędem i tyle. Przepraszam,...
STM32 Primer2 Zawsze bawiło mnie czepianie się Windowsa Mnie bawi wiele rzeczy, ale staram się nie epatować tym innych, bo może nie mają takiego jak ja poczucia humoru ;> Czepianie się konkretnego OS nie jest w żaden sposób powiązane z używaniem komputera ani tym bardziej z udawaniem kogokolwiek. EOT w tym zakresie. Nie wnikając w mój szlak bojowy...
Witam. Mam problem z wybudzaniem (z usypianiem chyba też) procesora z trybu Standby za pomocą pinu WKUP. Procesor chyba wchodzi w ten tryb, bo pobór prądu maleje. Ale to chyba nie jesty tryb Standby bo pobór porądu maleje tylko do 2mA a piny IO zachowują swój stan. Kod jest raczej prosty i nic nie robi poza włączeniem wyświetlacza, odczekaniem kilku...
Witam, Programuje ten mikrokontroler w środowisku Eclipse. Program wgrywam za pomocą OpenOCD 0.5.0 bezpośrednio wpisując parametry w wierszu poleceń. Już na samym początku zauważyłem że po kompilacji pliki hex mają dużą wartość. Identyczny program skompilowany przy pomocy Keila zajmuje 9kB natomiast skompilowany w Eclipsie 18kB. Po wgraniu tegoż programu...
Bardzo często na forum pojawiają się pytania o wybór darmowego środowiska do STM32. Problemem jest tu programator ST-Link dołączany do niektórych płytek prototypowych (np. moja ST32 VL Discovery), a dla którego ciężko znaleźć wsparcie. Wyjątkiem jest tu TrueStudio które w "darmowej" wersji ogranicza nam możliwość podglądu rejestrów w czasie debugowania...
To jakaś prowokacja? 4\/3!! haha nie, przepraszam dopiero zaczynam i nie znam sie kompletnie na tym chodzi mi o to, ze mam plytke z mikrokontrolerem stm32f107, na stronie stm sa do niej rozne gotowe przyklady np. wlaczanie diod poprzez strone internetowa i potrzebuje wlasnie porty i piny tych diod juz znalazlem tylko jeszcze jedna prosba: jak mam napisane...
No chyba że książkę o podobnym tytule napisał by Freddie Chopin. Ale powinien mieć na to jakieś godziwe roczne stypendium. Mogę publicznie zdeklarować 100zł miesięcznie. Ale potrzeba by jeszcze kilkudziesięciu kolegów- najlepiej takich którzy skorzystali z Jego wiedzy. No i jeszce jakiś prawnik- jak założyć fundację czy jak to zwał, jak znależć wydawnictwo...
Witam! Walczę już od jakiegoś czasu z dziwnym problemem. Otóż: kiedy inicjalizuję piny odpowiedzialne za SPI1 jako normalne wejścia wyjścia (PA3, PA4, PA5, PA7 jako Output Push-Pull max 50MHz; PA6 jako Floating Input) bez problemu komunikuję się z urządzeniem slave (w tym wypadku panel LCD). PA3 i PA4 to dwie linie CS (bez żadnych pullupów). Przebiegi...
Witam wszystkich forumowiczów! Jak w temacie mam kłopot z zaimportowanym przykładowym projektem. Problem dotyczy debugowania a mianowicie w trakcie procesu debugowania pojawia się błąd: no source available for "". Spędziłem nad tym problemem mnóstwo czasu. Do debugowania używam GDB Hardware debuging z CodeSourcery. Do połączenia z JTAGiem używam OpenOCD...
Cześć, Korzystam z płytki STM32VLDiscovery (z programatorem ST-LINK), Keil uVision. Po raz kolejny wziąłem się za ARMy. I wszystko pięknie szło do czasu, aż zamarzyłem o fatfs. Bibliotekę dołączyłem, przepisałem kod tak, żeby nie korzystał z biblioteki stm32 standard peripherials. Uruchomiłem debugowanie - 17KB ma kod i... właśnie - w debugerze jak...
Ne wiem, po co do takiego zadania angażować RTOS, chyba, że docelowo ma być tego duo więcej. Skoro wiesz, co i jak trzeba zaprodramować - po prostu zaprogramuj timer, ADC i DMA, obrabiaj wstępnie próbki w przerwaniu DMA, a resztę przetwarzania zrób przez PendSV (obniż priorytet do najniższego), bez pętli głównej. Wiesz calosc dekodowania i wysylania...
A jakieś inne flagi się nie "świecą"? W rejestrze ISR cały czas jest 0. Coś ciekawego w erracie? W sumie co nic ciekawego tam nie widziałem.
Przerabiam projekt kolegi Freddie Chopin dla STM32F103xB na STM32F0. Wszystko już działa dobrze oprócz pliku Startup.S. Podczas kompilacji wyświetlają się błędy: startup.S: Assembler messages: startup.S:75: Error: selected processor does not support Thumb mode `ittt lo' startup.S:76: Error: thumb conditional instruction should be in IT block -- `ldrlo...
Rany julek, rzeczywiście, zmieniałem USARTy i stąd zostało USART2->DTR:P Freddie Chopin - użyłem Twoich funkcji i DZIAŁA! Dziękuję bardzo! :D Dodano po 6 A co do DR to struktura USART nie ma takiego pola, ma natomiast pole TDR, tak samo jak nie ma pola SR tylko ISR. Oczywiście mówię tu o stm32f3. Wklejam działający kod (wykorzystałem pliki szopena -...
Wykluczając na razie z listy eclipse.... Wszystkie te darmowe są i tak oparte na Eclipse, kolego-z-tego-samego-miasta (; 4\/3!! Już nie... EmIDE EmBlocks
Radzę zignorować powyższą poradę... Tablica wektorów ma poprawną "formę", więc radzę jej nie psuć... Wielu osobom działa, więc nie szukaj błędu tam gdzie go nie ma. Zresztą gdyby ta część była błędna, to układ nawet by nie wystartował, wiec chyba jednak warto założyć, że nie ma tu "błędu". W tablicy wektorów popraw tylko te wektory, które są "powyżej"...
Czy o takie poprawki chodziło? Dodano po 6 Kompilacja przebiega trochę dłużej, ale pomyślnie. Tak długo tworzy się plik wyjściowy *.bin. Czemu?
Bity rejestrów sterujących są ponazywane w pliku definicji rejestrów uC, który już włączyłeś do projektu - pooglądaj jego zawartość. Łatwiej czyta się program, gdy ustawiasz cały rejestr sterujący jedną instrukcją podstawienia, a nie zmieniasz po jednym bicie długą serią operacji logicznych. Skąd wziąć te wszystkie ładne nazwy podstawiane do rejestrów....