Witam, Potrzebuję przebiegu zegarowego 24 MHz, bez żadnych dodatków, po prostu ma cały czas tak tykać. I chciałabym się zapytać jak najprościej do tego podejść czy PWM? a możne dałoby się zrobić REMAPowanie tak, aby podłączyć jakiś z zegarów bezpośrednio do jednego z Pinów? No i najbardziej dręczące mnie pytanie, czy to w ogóle jest możliwe na moim...
Gdy ją od komentuję, podczas debugowania wszystko się sypie. W Zakładając że mówimy o projekcie stm32_blink_led, czyli tym dla F103. Jeśli w config.h ustawisz FREQUENCY na 24MHz max, w funkcji pll_start() wywalisz wywołanie funkcji flash_latency() (w F100 niby nie da się tego przestawiać), to powinno zadziałać, choć niekoniecznie optymalnie (w funkcji...
Zmieniłem obsługę przerwania aczkolwiek nie do końca rozumiem to podsatwienie: _t ) bufor1 bo kompilator wywalał błąd. Podłączyłem układ do do komputera odpaliłem i spodziewałem się uzyskiwania w terminalu albo samych zer albo losowych wartości, niestety nie ma nic. Postawiłem kilka breakpointów i chciałem zobaczyć konfiguracje poszczególnych peryferii...
tablica wektorów sprawdzana kilka razy Dodano po 3 [syntax=asm]void TIM14_IRQHandler(void) { 80002a4:b580 push{r7, lr} 80002a6:af00 addr7, sp, #0 TIM14->SR = ~TIM_SR_UIF; 80002a8:4b0e ldrr3, [pc, #56]; (80002e4 <TIM14_IRQHandler+0x40>) 80002aa:2202 movsr2, #2 80002ac:4252 negsr2, r2 80002ae:821a strhr2, [r3, #16][/syntax] wskazuje na adres...
Takie coś u mnie trwa ok. 0,8sek. (24MHz) [syntax=c] uint32_t count; for(count=0; count<1000000; count++) { TIM1->CNT=0; } [/syntax] a takie coś ok. 1 sek. [syntax=c] uint32_t count; for(count=0; count<1000000; count++) { LED1_bb=0; } [/syntax]
Tyle to ja wiem, tylko dlaczego programować można dopiero skasowane komórki? Przecież podczas zapisu i tak nadajemy im konkretne wartości. Flash jest wolniejszy od RAM, co ujawnia się przy wyższych częstotliwościach zegara. No tak, ale jak jest z szybkością odczytu do 24MHz gdy porównujemy te pamięci?
Czy aby na pewno częstotliwość przerwań od timera powinna wynosić 1kHz? Skoro masz (w teorii) 24MHz podzielone przez 24000 (preskaler), to faktycznie zegar dochodzący do samego timera będzie równy 1kHz, ale wg mnie przerwanie timera będzie co dwa jego cykle, bo timer liczy tak: 0 ... 1 (przerwanie) ... 0 ... 1 (przerwanie) ... EDIT: sekundy... normalnie...
Może trochę źle się wyraziłem ale zrozumiałem to tak że w STM32 instrukcja GPIOA->ODR = 0x44(czyli ustawienie na pinach odpowiednich stanów) może wykonywać się dłużej niż PORTB = 0x44 w AVR
Faktycznie trzeba było zmienić ustawienie z 24MHz na 8MHz (piszę dopiero dziś aby zamknąć temat ale sprawa od dawna rozwiązana).
witam posiadam STM32F103RET6 i jeśli ustawię PLL mnożnik na więcej niż 6 razy (co odpowiada 48MHz) to procek wysypuje się, przechodzi do HardFault_Handler, jesli konfiguracje przeprowadziłem w THUMBie to jeszcze na 56MHz pracuje. Po pierwsze chciałbym zauważyć, że STM32 (Cortex-M3) obsługuje tylko thumb-2, więc niby w jakim trybie jesteś normalnie?...
Zaraz będzie, że krytykuję albo się naśmiewam, ale widzę tutaj poważne braki w wiedzy. I właśnie na to liczę, że ktoś mi wytknie braki w wiedzy ;) Wiem, że SSD1289 wypada słabo w porównaniu z konkurencją. Nie mogę się zgodzić natomiast co do zawężania obszaru. Jest to jak najbardziej możliwe w tym układzie. Rejestry 0x44, 0x45, 0x46 umożliwiają zawężenie...
Gdyby to działało dobrze to chińskie portale handlowe byłyby zarzucone analizatorami na BluePill Nie będą handlować bo BluePill ma full-speed USB a klon Saleae high-speed USB. Mnie tam zużycie RAMu nie przeszkadza. Nie łapałem nigdy więcej jak minutę, zwykle po kilka sekund wystarcza. Próbkowanie 24MHz. (nie BluePillem, jest za wolny)
Witam, na początku opiszę mój problem. Mam gotową płytkę PCB na której znajduje się STM32F103VCT6 oraz diodka WS2812B podpięta pod pin PA14. Projekt do tej pory korzysta już z timerów 1 - 5 włącznie (zostały timery 6 7 8). I nachodzi mnie problem szybkiej i możliwie nieobciążającej CPU obsługi diodki WS2812B, stąd pomysł na użycie DMA. Znalazłem 2 ciekawe...
STM32F100RBT6B Ma max 24Mhz, W zasadzie są podobne tylko u mnie PB1 i PB2 są wykorzystane do przycisków, i nie mam JTAG jako takiego
Może dokumentacja wprowadza w błąd mówiąc, że FT311D obsługuje prędkości SPI do 24MHz? Czy gdziekolwiek stwierdziłeś, że nie obsługuje? Bo nic o tym nie piszesz. Opóźnienia, o których piszesz dodajesz PRZED lub PO transferze . Jaki według Ciebie mają więc związek z prędkością transmisji po SPI? Piszesz, że Wszystko jest OK, gdy stosuję opóźnienie pomiędzy...
Jakie zmiany wprowadziłeś w projekcie? Ten z mojej strony pracuje na 72MHz używajac kwarcu 8MHz, a Twój mikrokontroler ma maksymalną częstotliwość pracy 24MHz... Przede wszystkim wyłącz więc całkowicie konfigurację PLL (usuń wywołanie funkcji pll_start() z main()).
Aktualizacja z września 2025: zobacz tutaj, aby uzyskać szczegółowe informacje na temat konwersji STM32 przez UART zamiast J-Link (tj. J-Link nie jest wymagany) https://www.elektroda.com/rtvforum/viewt... (dzięki (at)max4elektroda!) zobacz tutaj, aby uzyskać wyższą wersję przekonwertowanego oprogramowania CK-Link Lite dla STM32...
Zostawmy temat podkręcania procesorów, jest to temat dla dwóch szkół: starej, która mówi jasno "nie, nie powinno się tego robić", oraz nowej szkoły, która mówi jasno: "tak do pewnego stopnia i w szczególnych przypadkach". Oczywiście nie należy tego wykorzystywać do obrażania kogokolwiek, jest to karygodne!!! Do niczego tym sposobem nie dojdziemy. Czyli...
Tylko pierwsze 74 impulsy zegara muszą być ~400kHz. Inicjalizacja natywna może być na pełnej prędkości (CMD0 + CMD8 + ACMD41 + CMD11 + ew.CMD59). Może kiedyś napiszę, w sumie trzeba tylko dorzucić kawałek kodu po CMD11 (CMD2 + CMD3 + CMD7 + CMD42 + ACMD6 + CMD6/3 + CMD6/1i4 + CMD19). Też pisałem jakieś 2..1,5 roku temu na Xmega (wszystko w asm) i wtedy...
Bez zewnętrznej pamięci będziesz miał małą pamięć próbek. Z drugiej strony przy zakładanym paśmie to możesz to wysyłać przez USB na FT232R (do 2Mbps). Ja bym podszedł inaczej do całości - jest analizator stanów logicznych który przesyła dane przez USB nazywa się Saele (https://www.saleae.com/logic). Klony dostępne na allegro, ebay za 30zł. Może lepiej...
Dało by się. Polecam program ISP Programmer (już niestety nie rozwijany ale i port LPT też już w nowych sprzętach rzadko się pojawia)- za jego pomocą dało się programować AT89S52 (czyli troszkę lepsze 8051-a właściwie 8052 z Atmela). Inną kwestią, że 8051 i jego krewni to w porównaniu do AVRów słabizna obliczeniowa. AVRy są to mikrokontrolery RISCowe...
Masz racje z tym 36 The PLL configuration (selection of HSI oscillator divided by 2 or HSE oscillator for PLL input clock, and multiplication factor) must be done before enabling the PLL. Once the PLL enabled, these parameters cannot be changed. Może spróbuj funkcji Frediego: [syntax=c] static void flash_latency(uint32_t frequency) { uint32_t wait_states;...
HCLK = 24MHz , Cube w funkcji void SystemClock_Config(void) ustawia SysTick w taki sposób: [syntax=c] /**Configure the Systick interrupt time */ HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()... /**Configure the Systick */ HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKS... /* SysTick_IRQn interrupt configuration */ HAL_NVIC_SetPriority(SysTick_IRQn,...
ST produkuje STM32 w wersjach od "ekonomicznej" STM32F100 (24MHz) do "wypasionej" STM32F107(72MHz). Coś mi się obiło o uszy, że jest przygotowywana wersja STM32F108. Nie tak dawno wprowadzili wersje z pamięcią 512kB i więcej FLASH. Wszystkie układy mają identycznie wyprowadzone sygnały. Dlatego trzeba jedynie zwracać uwagę by kupić w odpowiedniej obudowie...
[syntax=c]uint32_t wait_states; if (frequency < 24000000ul) // 0 wait states for core speed below 24MHz wait_states = 0; else // 1 wait state for core speed between 24MHz and 48MHz wait_states = 1; FLASH->ACR = wait_states;[/syntax] Pisze się bardzo przyjemnie wystarczą pliki CMISIS Rejestry mają układ. [nazwa peryferia]->[nazwa rejestru] bardzo...
To ja dodam podobne pytanie, dla STM32vldiscovery. Migająca diodka i dźwięki typu beeep:). Ustawienia źródła (kwarc 8MHz), pętli PLL (x3=24MHz), ten sam program programowany z Keil działa wg ustawień (Systick 1ms, delay = 1000 daje 1sek. pasuje). Oraz ten sam program .bin (lub .hex) programowany przez STM32 ST_Link Utility i diodka mruga dużo wolniej,...
Zapewne w większości aplikacji tak jest, ale w często na to trzeba uważać. Przecież nikt nie pisze tutaj o filtrach cyfrowych czy FFT. Niemniej jednak widać na forum tendencję, że nawet JEDNORAZOWE obliczenie czegoś na float to ogromny problem, bo "przecież można to zrobić na liczbach całkowitych, przez co program uruchomi się o 13 mikrosekund szybciej"....
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...
Dokładnie. Dzięki. PS. poprawne wartości dla serwo to: timeBaseInit.TIM_Period = 10000; timeBaseInit.TIM_Prescaler = 48; przy 24MHz zegara.
Nikt nie chce odpowiedzieć, więc sam sprawdzę ;) Chcę to sprawdzić dla małej rozdzielczości dla serwa przy 24MHz lecz pojawił się problem z brakiem PWM na PA8: [syntax=c]RCC->APB2ENR = RCC_APB2ENR_IOPAEN | RCC_APB2ENR_IOPBEN; ... GPIOA->CRH = 0x888884AA; ... RCC->APB2ENR |= RCC_APB2ENR_TIM1EN; TIM1->PSC = 239; TIM1->ARR = 1999; TIM1->CCR1= 150; TIM1->CCMR1...
Template i konfiguracja RCC freddiego, mam nadzieję, że się nie obrazi :) Program używa tylko pinu TX i cyklicznie wysyła tablicę, w tym przypadku w kółko tą samą. [syntax=c]#include "inc/stm32f10x.h" #include "config.h" #define CRYSTAL 8000000ul // quartz crystal resonator which is connected to the chip #define FREQUENCY 72000000ul // desired target...
Witam wszystkich. Po wielu wysiłkach udało mi się skonfigurować środowisko do programowania STM32 w ECLIPSE. Mam jednak problem z konfiguracją projektu z użyciem biblioteki StdPeriph_Driver. Projekt ma zainkludowane pliki: stm32f10x_rcc.h i stm32f10x_flash.h z tej biblioteki w celu skonfigurowania układu taktowania ale nie chce się kompilować. /home/grzegorz/Programowanie/STM32_Toolc...
STM32F100 to linia budżetowa, więc max to 24MHz. STM32F103, ...105 i ...107 pracują na 72MHz. Oprogramowanie do obydwu tych układów będzie na 99% takie samo - zalezy jakie środowisko wybierzesz. 4\/3!!
Nie interesują Cię szybkie ARM'y, ale wymieniasz w zestawieniu produkty Xilinx'a, gdzie można rozprowadzić zegar do kilkuset MHz (; Układy programowalne to nie mikrokontrolery. Zainteresuj się architekturą ARMv7, Cortex'ami. Najtańszy od NXP dostaniesz za ~7zł (LPC1113), a od STM za ~9zł (STM32F100x). I nie są tak od razu jakieś super szybkie np: STM32F100xx...
Akurat w tym przypadku kluczowym kryterium była ilość pamięci RAM (128kb) oraz obudowa UFQFPN48. SPI działa na max 1MHz, do tego jest jeszcze akcelerometr na i2c oraz UART (rs485) na 3MBaud (stąd zegar na 24MHz). Dane w głównej mierze są buforowane, obrabiane w niewielkim stopniu, pakowane w ramki i przepychane dalej po uarcie.Do tego jest jeszcze wyświetlacz...
Szanowni. Ostatnimi czasy wpadło mi w ręce rozszerzenie do płytek arduino z wyświetlaczem LCD 2x16. Zapewnia ono możliwość komunikacji w trybie 4-bit z pinem R/W podłączonym na stałe do masy. Postanowiłem go uruchomić na płytce Nucleo z procesorem STM32F103RB. Wyprowadzenia wyświetlacza połączone są następująco: Wyświetlacz uC RS PA9 E PC7 DB4 PB5 DB5...
Witam. Kupiłem płytkę uruchomieniową STM32vldiscovery z kontrolerem STM32F100RB. W przykładowym programie użyto licznika SysTick do wywoływania przerwania co 1ms. W programie użyto funkcji włączającej podział zegara systemowego (ustawionego na 24MHz) przez 8. "SysTick_CLKSourceConfig(SysTick_CLKSour... Jednak aby przerwanie było wywoływane...
Mam tą płytkę STM32VL Discovery od kilku dni. Na razie sprawdzałem ją pod Atolliciem free i to środowisko jest dość wrednie ograniczone, nag screeny przy każdym wejściu do debugowania i brak podglądu SFR. Sama płytka fajna, ale procek na niej nie jest zbyt wypasiony, 8kB RAM i 24MHz. Złącze SWD ma zworki na płytce, można odpiąć procek ze startera i...
Ok, więc sprawdzam bit RCC_CIR_CSSF i po wyjęciu kwarcu nie zmienia się jego stan. Chyba powinien. Czy aby ten bit zmieniał wartość trzeba to jakoś dodatkowo uaktywnić? Albo procesor nie widzi wyjęcia kwarcu jako błąd HSE? Dodano po 3 No to jest tak: Inicjalizacja Dodano po 2 Jeszcze można w obsłudze przerwania ustawiać jakąś flagę że było przerwanie...
Witam, Mam problem z którym już chwilę się borykam. Do STMa mam podłączony czujnik BAR180 z którym już się komunikuje po I2C. Dodatkowo skonfigurowałem ADC w trybie pomiaru jednokrotnego wyzwalanego przez Timer1 co 500µs. Dane z ADC chcę przerzucić do bufora przez DMA. Utworzyłem bufor jako tablicę o 256 pozycjach, ponieważ tyle chciałbym pomiarów....
No litości, od 3 lat steruję WS2812 z STM32 na dwa sposoby bez żadnych bramek i w dodatku przez DMA, czyli bez narzutu programowego w czasie rzeczywistym, a rozwiązanie z SPI dawno opublikowałem. W takim przypadku każdy bit WS2812 koduje się na trzech bitach wysyłanych przez SPI. Ale masz na myśli stary numer z kodowaniem bitu WS2812 na trzech bitach...
Od niedawna jestem posiadaczem zestawu ZL31ARM. Po przeczytaniu paru artykułów doszedłem do wniosku że jest to idealny układ do nauki programowania. Jednak mam już z nim sporo problemów (oczywiście biorą się one z mojej niewiedzy). Mianowicie zainstalowałem TrueStudio, wybrałem odpowiedni model uC, i napisałem pierwszy program który kompiluje się bez...
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);...
Ponowię pytanie w innej formie, jak masz ustawiony FLASH->ACR i jaką prędkość CPU ? 24MHz. Ustawilem nawet 1 waitstata dostepu do pamieci jako ze jest to wartosc graniczna. Prefetch jest wylaczony
Masz nagłówek "stm32f10x.h" to z niego korzystaj. A nie stawiasz wszędzie (1 << X). Na poniższym przykładzie widać co chce zrobić... nawet nie potrzeba komentarzy, kto już jest obeznany trochę z STM32. [syntax=c]inline void RCC_conf(void){ FLASH->ACR |= FLASH_ACR_LATENCY_0; //set FLASH latency[2:0]=001, one state wait state, if 24MHz < SYSCLK...
Problem rozwiązany. Okazało się, że kamerka nie może być taktowana 16MHz bez modyfikacji. Teraz kamerkę nadal taktuję nadal 16MHz, ale dokonuje pewnych ustawień w jej rejestrach. Mianowicie dzielę w preskalerze kamerki tę częstotliwość na 4 i mnożę x6. W ten sposób otrzymuję 24MHz i zero przebarwień. Ogólnie kamerka działa poprawnie, lecz problem pojawia...
#define configCPU_CLOCK_HZ ( ( unsigned long ) 72000000 ) Nie żeby to był specjalny problem, ale STM32F100 to akurat działają na max 24MHz z tego co wiem... #define configTOTAL_HEAP_SIZE ( ( size_t ) ( 19 * 1024 ) ) 19kB na heap, tymczasem większość STM32F100 ma MAŁO RAMu... dodałem również w pliku port.c: Dodaj to po prostu w FreeRTOSConfig.h bardzo...
Witam ponownie, mam teraz niezwykłą zagadkę, tak więc posklejałem kawałek kodu który obsługuje USART + Ethernet - program polega jedynie na tym że jak odbierze jakąkolwiek ramkę Ethernetową to powiadomi o niej i wyśle przez RS-232 MAC address nadawcy i odbiorycy (przy czym tutaj kwestia estetyczna jest niedopracowana) - tak czy inaczej kod ten przetestowałem...
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...
Da się tak ustawić PLL by uzyskać 48MHz na wewnętrznym RC. Testowałem USB na wewnętrznym RC (bez kalibracji HSI) i działało to poprawnie. Czy możesz napisać na jakim to było CPU? Problem jest taki ze na F105 maksymalny PLL to 9x. Czyli wg. schematu z dokumentacji (z 1 mojego postu) sygnal zegoarowy idzie tak. HSI 8mhz -> /2 = 4mhz -> PLL 4*9mhz = 36mhz...
Witam. Zaczynam dopiero swoja przygodę z STM32. I na samym początku mam problem. Posiadam płytkę z stm32f429ZIT6U i chciał skonfigurować sobie RCC i GPIO, zgodnie z książką Galewskiego. Po przewertowaniu Internetu napisałem kod, który miałby konfigurować te dwie funkcje. W celu sprawdzenia chciałem aby program zapalił tez odpowiednie diody. Niestety...
Ofensywa ARM jest faktem i to samo można powiedzieć np. o AVR-ach. Tzn. po co siedzieć na 8-bitowcach? Rzeczywiście ceny STM32F0 spadły do bardzo niskiego poziomu. Jednak w niektórych zastosowaniach STM8 mogą być szybsze do "oprogramowania" dzięki prostszej budowie. Są dość szybkie (do 20MIPs STM8S przy 24MHz taktowaniu). Tu np. porównanie wydajności...
Tak, NSS software management: [syntax=c] //konfiguracja SPI RCC->APB2ENR |= RCC_APB2ENR_SPI1EN; //włącz taktowanie dla SPI1 SPI->CR1=0; SPI->CR2=0; SPI->CR1 |= SPI_CR1_BR_2; //SPI_CLK/32, dla SPI_CLK=24MHz wychodzi 750kHz SPI->CR1 |= SPI_CR1_CPHA; //CPOL=0, CPHA=1 SPI->CR1 &= ~SPI_CR1_DFF; //8-bit danych SPI->CR1 |= SPI_CR1_SSI | SPI_CR1_SSM; //NSS...
Witam, znalazlem kawalek funkcji na ustawienie procesora na 72MHz i wydaje mi sie, ze działa bo uzywam system tick do togglowania pinu, ale chce uzyc poprostu funkcji dostarczonych od stm. Na screenie widze ze jest gdzies definicja o ustawieniu procesora typu "STM32F10X_LD_VL" przez co program chodzi na 24MHz. Gdzie ona jest? http://obrazki.elektroda.pl/5784698000_1...
Próbuje skonfigurować timer TIM1 jako generator pwm. W celach edukacyjnych puściłem go w zwolnionym tempie aby zobaczyć jak działa. Nie rozumiem dlaczego po ustawieniu opcji [Center-aligned mode] timer zaczyna pracę od zliczania w dół zamiast rozpocząć od 0 w górę. Przeglądam dokumentację i nic nie przychodzi mi do głowy, może ktoś zna odpowiedź bo...
Dzisiaj zacząłem uruchamiać wyświetlacz TFT na ILI9341 na SPI 5 pin. Procesor to STM32F100RB. Uruchomiłem komunikację SPI, sekwencję inicjalizacyjną, na razie wszystko jest ok, mogę wysyłać dane do pamięci wyświetlacza (np. jakąś grafikę) wypełniając pamięć od adresu 0. Teraz chciałbym zrobić funkcję zapalenia danym kolorem wybranego piksela i mam problem...
Witam wszystkich, Rozpocząłem swoją przygodę z mikrokontrolerami stm32 od najprostszego z możliwych programów, a mianowicie miganie diodą. Po rozkręceniu PLL do 72 MHz, postanowiłem zmieniać stan diody co około 1s(w pętli opoźniającej zliczałem zmienną "int i" do 72000000). Problem polega na tym, ze stan diody zmienia się nie co 1s, a co kilka sekund....
Zrobiłem najprostszy program z uruchomieniem jedynie RCC i GPIO. [syntax=c] #include "math.h" #include "stm32f10x_gpio.h" #include "stm32f10x_rcc.h" #include "stm32f10x_flash.h" float a = 123.4; float b; void GPIO_Conf(void); void RCC_Conf(void); GPIO_InitTypeDef GPIO_InitStructure; int main(void) { RCC_Conf(); GPIO_Conf(); if (a < 40) { a = 123;...
gdzie tu przerwania timera? cała funkcja jest wywoływana w przerwaniu 50us Po co tyle volatile? Może faktycznie za dużo. Poza tym, ten kod na pewno nie jest optymalny, lecz nie w tym rzecz. Sprawdzałeś czy na pewno STM jest taktowany 24MHz a nie przypadkiem wewnętrznym 8MHz? Na pewno 24, zgadzają się częstotliwości generowane przez timery. Z ciekawości...
Podstawowe pytanie, używać będziesz biblioteki ST czy swojej. Jak ST to jest bardzo zagmatwana i uczy złych nawyków, niestety na niej się uczyłem i nawyki zostały ;]. konfiguracja zegarów za każdym razem wygląda tak samo (z biblioteki ST): [syntax=c]RCC_DeInit(); //reset do stanu początkowego zegarów RCC_HSEConfig(RCC_HSE_ON); //zewnętrzny szybki oscylator...
Witam. Zamierzam nauczyć się programowania mikrokontrolerów ARM - z rdzeniem ARM Cortex - M3 w języku wysokiego poziomu C. Nie ma dużego wyboru jeżeli chodzi o książki, zdecydowałem się na: "STM32. Aplikacje i ćwiczenia w języku C" M. Galewskiego (http://www.kamami.pl/index.php?ukey=pro... Zastanawiam się nad tym, jaki zestaw startowy...
Znalazłem informację jak w tej bibliotece ustawić zegar : Spróbuj ustawić ręcznie takie drzewko: Wiem, że STM jest dużo bardziej skomplikowany niż AVR, dlatego nie operuje na rejestrach tylko korzystam z tej biblioteki, która operacje na rejestrach wykonuje za mnie. Ja tylko podaje co chce uzyskać. Dodano po 2 Rozwiązałem problem, komunikacja działa....
Wiec, probowalem jeszcze raz ale z innymi pinami sterujacymi - wybralem do tego PORT_B_PIN11 i PORT_B_PIN_12, nie jestem pewien czy dobrze to sprawdzilem w nocie katalogowej, ale wydaje mi sie ,ze one powinny byc 5V tolerant. Ponizej zalaczam caly config. h oraz main.c - probowalem znowu przetestowac mozliwe wartosci dla nowych pinow sterujacych niestety...
Witam Zaczynam swoją przygodę z STM32 (nie chce rozmawiać dlaczego nie atmega itp). Zakupiłem zestaw STM32F429- DISCO. Postanowiłem pracować z książką "STM32 Aplikacje i ćwiczenia w języku C". Programy od producenta działają bez problemu. Jednak podczas przepisywania szkieletu programu z książki występują problemy z biblioteką stm32f4xx.h (tak, jest...
Elementem PLL jest wewnętrzny VCO, ale sygnał do synchronizacji musi być w zakresie 0.95..2.10MHz. W czym 2MHz otrzymane jako 8MHz/4 jest lepsze od 24MHz/12? Wyższa częstotliwość kwarcu oznacza większy pobór prądu ze względu na przełączenia w układzie. Co do dokładności, to są klasy, np. 50ppm, 20ppm i tutaj jest zdefiniowana dokładność, a nie w częstotliwości...
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...
Wiesza się w tym samym miejscu co w moim programie - po włączeniu przerwania NVIC_EnableIRQ. W stosunku do oryginału zmieniłem tylko port GPIO oraz dodałem obsługę TIM3 i mryganie diodą na podstawie TIM3->CNT by wiedzieć czy licznik rzeczywiście działa. W skrypcie linkera ustawiłem oba stosy oraz tak jak sugerowałeś zmniejszyłem pamięć o połowę -...
Jeżeli znasz ASM na Z80, masz źródła i bazę softwareowo/sprzętową do pracy z Z80 (tak wiem wiele tam nie potrzeba ale najczęściej trzeba mieć chociażby programator i kasowarkę UV do epromów z okienkiem oraz soft z którym będzie on chciał działać) i jest to jedno urządzenie do modyfikacji w sensie jednej sztuki (czyli przypadek raczej szczególny niż...
Witam, rozpoczynam swoją przygodę z STM32F4 Discovery korzystając z książki "STM32. Aplikacje i ćwiczenia w języku C" Przy ćwiczeniu 0 tworzona jest funkcja RCC_Config(), gdy chcę jej użyc w swoim projekcie mam kilka błędów void RCC_Config(void) //konfigurowanie sygnalow taktujacych{ ErrorStatus HSEStartUpStatus; //zmienna opisujaca rezultat...
Witam, czy spotkał się ktoś z Was może z taką sytuacją, żeby uruchomiony zegar sterwonika FSMC uniemożliwiał generację sygnału start z i2c? Transmisja jest możliwa dopiero po jego wyąłczeniu, co może nie jest strasznie uciążliwe, ale nieprzyjemne i przede wszystkim nie wiem czemu tak jest... kod (pomieszany, ale po woli sie przesiadam z biblioteki na...
Witam Niedawno zacząłem "zabawę" z zestawem Kamami ZL27ARM z procesorem STM32F103VB. Mam problem z przerwaniem od timera SysTick. Jest ono generowane 4 razy za często - miało być 1 raz na sekundę, a jest 4. Kwarc 8MHz, SYSCLK = 72MHz, SysTick_CLK= 72/8=9MHz czyli załądowanie do licznika wartości 9'000'000 powinno dać zgłoszenie przerwania co 1s, więc...
Witam ponownie, zacząłem niedawno zabawę z CANem, a raczej powinienem napisać, że chciałem zacząć. Jako, że ostatnio nie mam dostępu do auta postanowiłem pogadac z interfejsem ELM327. Tak więc podłączyłem CANL z CANL i CANH z CANH między płytką a interfejsem. Idea jest taka: wysyłam komendy do interfejsu przez usart1 a on wysyła do mnie odpowiedzi po...
https://obrazki.elektroda.pl/8808596700_... Pokażę tu jak łatwo uruchomić MAX31855 z Arduino a potem omówię jego protokół komunikacji. MAX31855 oferuje 14-bitowy pomiar temperatury z zakresu zależnego od użytej sondy, od -270°C aż do 1800°C. MAX31855 oferuje prosty protokół komunikacji oparty o SPI, zasadniczo odczytujemy z niego tylko...
Witam, Żadne rozwiązanie z innych tematów nie działa. Posiadam płytkę STM32VLDISCOVERY, zasilam ją z portu USB. Dodatkowo posiadam konwerter na FT232, konwerter działa poprawnie, echo jest przesyłane. Korzystam z programu Terminal v1.9b. Program na odebranie 49 ma zapalać diodę LED a po odebraniu 50 ma gasi diodę. Proszę o pomoc w znalezieniu błędu....
Z detektora zera sieci dostaje sygnał jak na obrazku niżej. http://obrazki.elektroda.pl/1251410700_1... Kwarc 8MHz, po PLL 24MHz. No i mam między innymi [syntax=c]NVIC_SetPriorityGrouping(3); NVIC_SetPriority(ADC1_2_IRQn, NVIC_EncodePriority(3, 2, 0)); NVIC_SetPriority(EXTI9_5_IRQn, NVIC_EncodePriority(3, 3, 0)); NVIC_SetPriority(TIM4_IRQn,...
Częstotliwość zagara I2C powinna wynosić max.400kHz. Nie bardzo wiem gdzie to się ustawia. Nie widzę żadnego preskalera. W I2C_CR2 są bity FREQ - Peripherial Clock Frequency. Można tam ustawić 'coś' od 2MHz do 24MHz - ale jak to się ma do zagara I2C? Jak np. ustawić zegar (czyli impulsy na SCL) na 100kHz?
Skąd pewność, że Twój układ chodzi na 24MHz a nie np z domyślną prędkością po resecie (zapewne 8MHz)? 4\/3!!
Witam, Bawię się zestawem ZL27ARM i robię ćwiczenia z książki "STM32. Aplikacje i ćwiczenia w języku C" Jestem przy ćwiczeniu 18 i mam problem z DMA (pierwszy raz mam styczność z DMA). Zgodnie z przykładem wypełnienie PWM powinno zmieniać się od 0 do 100%. U mnie jest cały czas 50%. Dane z tablicy bufor_PWM nie są przekazywane do TIM1->CCR1 http://obrazki.elektroda.pl/9548353800_1...
Ok faktycznie, po ustawieniu tego zadziałało. W celu analizy tych próbek zdecydowałem się na wysyłanie w pollingu i zebrałem próbki po I2S. Po stwierdzeniu, że wysyłane są prawidłowo zadbałem jeszcze o wczytywanie karty po przesłaniu 512 próbek. Niestety to czytanie trwa strasznie długo (załączam sesję z logica). Mam dwa pytania: 1. Załączam plik audio,...
Witam. Zawsze używałem "mało zaawansowane" i "proste" STM32F1, teraz zakupiłem nucleo H5 i mam z nim pewien "drobny" problem. Program prosty jak drut: 1. TIM2 32bity zapętlony liczy sobie wg zegara systemowego bez preskalera 2. TIM1 16bit taktowany zegarem systemowym z preskalerem 62 (61) wywołuje przetwanie co 2000 cykli 3. w przerwaniu tim1 zapisuję...
Witam, Mam problem z odbiorem danych na magistrali CAN. Program wysyła dane na CAN co 500ms i to działa, natomiast kiedy pojawi się ramka na RX, program przestaje już wysyłać dane i wygląda jakby zawisł. Poniżej kod. Może ktoś sprawdzić i podać przyczynę problemu? [syntax=c]#include "stm32f10x.h" #include "stm32f10x_can.h" #include "hdr_rcc.h" #include...
Dalej nic. Przeanalizowalem caly dzialajacy kod od Hala i mam juz zeszyt z notatkami ze wszystkimi wartosciami rejestrow i kolejnosia wywolywania funkcji. Do etapu przechodzenia do trybu transfer mode wszystko jest identycznie. Potem oni uzywaja DMA a ja probuje poling i niestety bez skutku. Probowalem tez ustawic DMA w ten sam sposob co oni ale niestety...
Mam problem z poniższym programem. Podejrzewam, że chodzi tutaj o niepoprawne używanie zmiennej char. Program pisałem samodzielnie w oparciu o książki wydawnictwa BTC. Klawiatura i procesor działają poprawnie. program główny [syntax=C]#include "stm32f10x.h" #include "lcd_hd44780_lib.h" #include "kb4x3_lib.h" #include <stdio.h> void RCC_Config(void);...
Witajcie, dziękuję za wszystkie posty. Większość okazała się bardzo pomocna. Swoją modyfikację chciałam zacząć od najprostszej zmiany, tj. zmiany konfiguracji modułu bluetooth poprzez komendy AT. Najpierw jednak chciałam przetestować odbiór danych z terminala. Znalazłam program i nieco go zmodyfikowałam, którego celem jest odebranie wpisanej danej w...
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ń...
Tylko gdzie narysujesz linię podziału? Mam tu na przykład projekt sterownika, w którym w samych tylko plikach .cpp i .hpp jest na tą chwilę 48000 linii. Powiedzmy więc, że jest to ze 20000 linii kodu. Niektórzy naprawdę uparli się, że embedded na mikrokontrolery to tylko i wyłącznie małe "projekciki"... P.S. Ten projekt jest na STM32F100RC, który ma...
Witam. W działającej aplikacji podmieniłem procesor F100 na F103 i mam problem z ogarnięciem taktowania. Kwarc 8Mhz i F100 procował na 24Mhz Tak były ustawione taktowania pracujących peryferii : [syntax=c]ErrorStatus HSEStartUpStatus; RCC_DeInit(); RCC_HSEConfig(RCC_HSE_ON); while (RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET) { } HSEStartUpStatus =...
...Czy SPI działa "niezależnie" tzn do rejestru wpisujemy wartości i SPI samo działa sobie z boku... Dokładnie tak; nie wysyłasz bitów 'ręcznie'. Jeżeli włączysz SPI, to zapisanie bajtu danych do rejestru automatycznie rozpoczyna transmisję i równolegle odbiór 8 bitów. Po zakończeniu operacji zostanie ustawiona flaga/flagi przerwania, a samo przerwanie...
Sprawdziłem wartość rejestru. Po odebraniu bezpośrednio ładuję na USART, efekt - wartość rejestru się nie zmienia. To duża podpowiedź, bo błąd tkwi w SPI albo w rygorach czasu. Dodano po 1 Tak, tak, wiem. SysClock jest ustawiony na 8Mhz. PLL = 24MHz. Dodano po 1 UWAGA! UWAGA! Problem rozwiązany. Okazało się, że zakupiony MPX6675 ze sklepu bot****.com...
Bo pamięć Flash jest po prostu znacznie wolniejsza (chyba 24MHz max).
Raczej "katastrofalnie rozbudowany timer" ;) Kwestia zrozumienia filozofii działania i obsługi tego timera. Potem wystarczy wzrokiem ogarnąć wszystkie rejestry i od razu wiadomo co gdzie ustawić. Początkującemu nie rekomendowałbym programowania SCT nawet do prostego generowania PWM... ;) Konfiguracja PWM 16b 366Hz, tutaj akurat dla LPC1519. Naprawdę...
Dzięki za to, że napisałeś odpowiedzi na Twój problem, przydało się ale niestety nadal mam problem... Poniżej jest mój kod do odczytu przez I2C i wysyłanie po UART. Putty niestety wyrzuca "S▒▒" co restart. Ktoś wie czemu? (wiem, że ten kod nie jest najlepszy ale powinno działać. [syntax=c]#include "stm32f30x.h" void SysTick_Handler(void);...
Super, jakoś udało mi się Eclipsa uruchomić fakt że w innej wersji Version: Mars Release (4.5.0) ale bez problemu spiąłem to. Przerzuciłem kod i co się okazało. Ruszył. Ale do szczęścia trochę brakuje, okazuje się, że nie rozpoznaje USB. Tzn ten sam dokładnie kod śmiga na Keilu, a na eclipse już nie. definicje: DEBUG USE_FULL_ASSERT TRACE OS_USE_TRACE_SEMIHOSTING_DEBUG...
Machanie nogą też zajmuje czas (jakiś bit set na gpio też się musi ustawic), nie analizowałem tego nigdy głębko bo u mnie w aplikacjach prefetch zawsze jest właczony przy taktowaniu z PLL > 24MHz i wtedy dzięki 3 stopniowemu pipeline'owi to taki CMP się wykona chyba w 1 takcie. Jak się prefetch wyłączy to trzeba będzie czekać 3 takty zanim się wczyta...
Spróbuj wygenerować taki sygnał przy pomocy timera wbudowanego w stma. Wykorzystaj tryb PWM, ustaw nie za wysoki zegar np. 12MHz i dzięki PLL sensora zrób z niego 24MHz. A dodatkowo do uzyskania rozdzielczości 176*144 radzę wykorzystać decymator wbudowany w kamerę. Tak jak zrobiłeś teraz, ustawiasz tylko samą rozdzielczość, w ogóle nie ustawiasz reszty...
Więcej widzę, jeżeli mam zapisane cyfry i tutaj nie ma co się spierać. Pan może więcej widzi w makrach, ale to już kwestia personalna każdego człowieka. Nie prosiłem o obsługę FAT. Chcę się połączyć z kartą i czytać surowe dane. Mam problem z podłączeniem do karty. 'Poprawiony' kod, problem ten sam, czyli: Ustawiam breakpoint na __nop(); sprawdzam rejestr...
Witam, Mam pewien problem, a mianowicie mam taki fragment kodu: [syntax=c]void Timer2_Config(void) { TIM2->PSC = 65535; TIM2->ARR = 366; TIM2->CCR1 = 366; TIM2->CR1 = TIM_CR1_ARPE | TIM_CR1_CEN; TIM2->DIER |= TIM_DIER_CC1IE; }[/syntax] TIM2 ma za zadanie generować przerwanie co sekunde (zegar 24MHz) i kod powyzej spełnia to zadanie dlaczego wiec nie...
Witam. Na początku muszę zaznaczyć, że jestem raczej początkującym w temacie mikrokontrolerów i ogólnie elektroniki. Kupiłem sobie stm32f0 discovery oraz termometr ds18b20, podłączyłem wszystko jak trzeba - pin 1-wire do pc7, oraz piny zasilania odpowiednio do 3v i GND na płytce. Korzystam z IAR Embedded Workbench EWARM. Termometr działa, bo procedura...
Freddie Chopin Miałem na myśli taką funkcje(akurat dla F1): No, przestawienie zegara na 24 MHz z PLL to całe 4 linijki kodu - któż byłby w stanie napisać to sam... Ale chyba trzeba zrobić funkcję podobną do tej wyżej(od F1), odczekać az HSE bedzie gotowy itd. ??
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....
24mhz generator rezonator 24mhz analizator 24mhz
pękła płyta drukowanie plików protel samsung świeci standby
hörmann lineamatic hörmann lineamatic
VW Passat B6 2.0 TDI 2006 – lokalizacja przekaźnika głównego J271/J317 w E-boxie Diagnoskop Autel - brak synchronizacji: przyczyny i rozwiązania