Tutaj udokumentuję moją podróż z tanią płytką deweloperską / hobbystyczną STM32F103C8T6 "blue pill" zakupioną w Ali Express. Pomimo układu scalonego oznaczonego jako "STM32F103C8T6", wewnętrzna pamięć flash wydaje się mieć 128k zamiast 64k, co czyni go bardziej podobnym do STM32F103CBT6. Wydaje się, że nie jest to nieoczekiwane w przypadku podróbek/klonów...
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...
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 +=======================================...
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...
pętla dla atmegi musi wyglądać tak:....... Mając tyle dostępnych timerów w STM32 robienie pętli opóźniającej w tak prymitywny sposób woła o "pomstę do nieba" :)
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?
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...
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...
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,...
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....
Faktycznie trzeba było zmienić ustawienie z 24MHz na 8MHz (piszę dopiero dziś aby zamknąć temat ale sprawa od dawna rozwiązana).
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)
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
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...
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...
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]
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()).
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...
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...
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;...
Bo pamięć Flash jest po prostu znacznie wolniejsza (chyba 24MHz max).
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?...
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...
[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...
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 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....
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"....
Czy w ten sposób dobrze konfiguruję procesor na 72MHz ?? void rcc_init(void) //RCC init włączający procesor na HSI+PLL=64MHz { RCC->CR|=0x1; //wlacz HSI czy HSE jak zwał tak zwał :) - wewnętrzny, szybki oscylator, włączany jako pierwszy po zasilaniu while(!(RCC->CR&0x2)); //poczekaj na HSI RCC->CFGR|=(0x9);//(0xF<<18); //mnorznik...
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...
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, 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...
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...
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...
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...
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...
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...
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...
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...
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...
Dzięki ;) Czyli powinno to wyglądać mniej więcej tak: [syntax=c] //Prescaler fclk = 24MHz/24 = 1MHz TIM1->PSC = 24-1; //Zliczanie od 25(dec) = 25us TIM1->CNT = 25-1; TIM1->ARR = 25-1; //Tryb zliczania w gore, trub powtarzania i wlaczenie licznika TIM1->CR1 = (TIM_CR1_ARPE | TIM_CR1_CEN); [/syntax] Paprocki wypisuje, że artość rejestru CNT jest przepisywana...
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
For instance: in standard mode, the maximum allowed SCL rise time is 1000 ns. If, in the I2C_CR2 register, the value of FREQ[5:0] bits is equal to 0x08 and TPCLK1 = 125 ns therefore the TRISE[5:0] bits must be programmed with 09h. (1000 ns / 125 ns = 8 + 1) The filter value can also be added to TRISE[5:0]....
#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, 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...
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...
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....
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...
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!!
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...
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...
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;...
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...
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...
by przy tym samym zegarze procesor działał szybciej. Sprawdzałeś czy na pewno STM jest taktowany 24MHz a nie przypadkiem wewnętrznym 8MHz?
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. 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...
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...
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. ??
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, 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...
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, Ż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....
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...
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...
Dokładnie. Dzięki. PS. poprawne wartości dla serwo to: timeBaseInit.TIM_Period = 10000; timeBaseInit.TIM_Prescaler = 48; przy 24MHz zegara.
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...
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);...
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...
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...
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,...
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,...
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!!
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ę...
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...
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,...
szczywronek Coś mi się nie podoba w tej prędkości transmisji. SDIO 24MHz 4bit -> efektywnie 12MiB/s -> ~43us/sektor -> ~2,74ms/klaster 32768 bajtów, typowo dla kart >=2GiB. Odczytując ciągle, na pewno możesz odczytywać cały klaster (32KiB), który jest niepodzielną jednostką danych w systemie FAT. Czas oczekiwania na gotowość karty, to typ. 3x0,5ms...
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...
Dziękuję kolegom za cenne uwagi. Co do wersji z os.mbed.com, to próbowałem ją do siebie przeportować ale niestety efekt był podobny. Poprawiłem kod według wskazówek kolegi Freddie Chopin, przerwanie SysTick jest generowane co 10 us oraz wydłużyłem czasy dla półbajtów, ale efekt jest dalej taki sam. Pojawiło się też słówko volatile. Kod wygląda teraz...
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...
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...
Napisałem program liczący wariancję z obu tablic, dodatkowo skonfigurowałem Timer2 do pracy w trubie PWM o częstotliwości 1Hz z wypełnieniem 10%. Podałem ten sygnał na mój przetwornik A/C. Przetwornik próbkuje sygnał i liczy wariancję z obu tablic. Po wykryciu że wariancja jest bardzo duża zmienia stan diody LED PC9. Druga dioda jest połączona do wyjścia...
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...
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...
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);...
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ę -...
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...
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...
...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...
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ń...
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ę...
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...
Dzięki, spróbuję więc podłączyć pull`upy, no kwestia interpretacji, jak piszą, że "are pulled up" to odbieram to tak, że są już podłączone ;-) Zastanawiam się jeszcze nad samym I2C, powyżej (at)m_nowy pisał, że kamera milczy gdy nie ma MCLK, trochę dziwne, czy faktycznie nie wystarczy SCLK od mastera.. I takie pytanie, mój procek (STM32F103) jest taktowany...
Praktycznie każdy Cortex M0, M0+ nie ma 10-krotnie wyższej wydajności niż taki 20 MHz tinek, pomijając nieżyciowe przypadki, w których ktoś robi pętlę od 1 do 10 przy pomocy 64 bitowej zmiennej. O takich jak sądzę z kol. BlueDraco pisaliśmy, bo niesądzę aby jakieś mega wypaśne ARMy były w SSOP20. Wchodzimy więc na http://www.eembc.org/coremark/index.php....
at89c2051 24mhz 24mhz generator rezonator 24mhz
wgranie firmware samsung renault megane bezpiecznik wycieraczka programatorem rt809f
Schemat instalacji ogrzewania Mercedes W210 E300 TD 1998 Zabezpieczenie Mercedesa W213 220d przed kradzieżą