Przy okazji polecam zajrzeć do RM0090 sekcja RCC i jedna z pierwszych stron to będzie taki duży obrazek zatytułowany clock tree.
Twoje problemy rozwiązałby jakiś TMS320 z serii C2000. Ale to tylko moje dywagacje. Jeśli chodzi o STM32F4 to musisz przemyśleć czy rzeczywiście 4 MHz jest niezbędne dla ADC. Kiedyś bawiłem się timerami w Keil'u więc kod wstępny na pewno Ci się przyda (kanały timera3 działają na GPIO->C6-C9): odznacz NVIC_EnableIRQ !!! ): [syntax=c]void TIM3_IRQHandler(void)...
Procesor chodzi na 168Mhz, szyna tego zegara chodzi na APB1 i jest dzielona od nominalnej przez 4 to jest 42Mhz. Preskaler zegara 640 i przerwanie w momencie przepełnienia czyli po 65536 taktach, co o ile się nie mylę daje raz na około sekundę. Tu się mylisz. Zajrzyj na clock tree w sekcji RCC i się okaże, że jednak APB1 dla timerów jest mnożone x...
Keil startując CPU odpala funkcję SystemInit() która to jest zdefiniowana w pliku system_stm32f4xx.c . Plik ten możesz napisać sobie sam, lub możesz skorzystać z gotowca. Gotowce masz w przykładach od STM lub możesz wygenerować go za pomocą Excela jak wspominał kolega imarszi . Tutaj masz opis jak się tym narzędziem poslugiwać i skąd je wziąć : Clock...
Nie wnikałem, więc to strzał na ślepo, ale obstawiam, że częstotliwość timera wcale nie wynosi 45 MHz, tylko 90 MHz. W dziale o RCC jest taki obrazek "Clock tree" - przeczytaj dokładnie to co pisze pod nim (w przypisach, albo w dalszej części). Zresztą na obrazku też jest to namalowane.
rozdział 5.1.2 : • Access to the RTC and RTC backup registers 1. Enable the power interface clock by setting the PWREN bits in the RCC_APB1ENR register (see Section 7.3.13 and Section 6.3.13) 2. Set the DBP bit in the PWR power control register (PWR_CR) for STM32F405xx/07xx and STM32F415xx/17xx and PWR power control register (PWR_CR) for STM32F42xxx...
Jeśli podejrzewasz opóźnienia, to po prostu tymczasowo powiększ je kilkukrotnie (od "zbyt dużych" nic się nie dzieje) i jeśli wtedy będzie dobrze, to będziesz miał winnego. Jesteś 100% pewny tych 42MHz na timerach? Wiesz o tym, że jeśli na magistrali od timerów dzielnik wynosi 2, to timery taktowane są podwojoną częstotliwością magistrali (przyjrzyj...
Witam, od dłuższego czasu walczę z tym problemem i nie potrafię znaleźć rozwiązania. Mam projekt, który pochodzi z anglojęzycznego tutoriala: [url=http://www.mind-dump.net/configurin... Wrzucony do Keila i skompilowany działa jak powinien. Problem w tym, że próbuję przenieść go na wykorzystanie bibliotek HAL, z których...
Czy na pewno PLL jest dobrze skonfigurowana? Wg tej strony PLL_N powinno być 360 by uzyskać 180MHz. https://stm32f4-discovery.net/2015/01/pr... Tyle u siebie dałem i działało.
Po podłączeniu dostaję takie błędy od OpenOCD: Open On-Chip Debugger 0.5.0-dev (2011-06-07-18:11) Licensed under GNU GPL v2 For bug reports, read http://openocd.berlios.de/doc/doxyge... Info : only one transport option; autoselect 'jtag' 1000 kHz adapter_nsrst_delay: 100 jtag_ntrst_delay: 100 #0 : stm32.flash...
Problem rozwiązany prz sprawdzaniu flagi TXE też brakowało średnika ;) działająca inicjalizacja i odczytywanie rejestru definicje #define LSI302DL GPIO_BSRR_BS_3 #define LSI302DL_SPI1_DISABLE GPIOE-> BSRRL |= (LSI302DL) //Set #define LSI302DL_SPI1_ENABLEGPIOE-> BSRRH |= (LSI302DL) //Reset #define LSI302DL_I2C1_ENABLE GPIOE->...
Nie, nie używam dma. Wysyłam w przerwaniu od I2S. Przeanalizowałem hex editorem zawartość wave'a i faktycznie pobiera mi dobrze próbki (zgadzają się co do bitu). W takim razie prawdopodobnie nie umiem ich poprawnie wysłać na kodeka. Największy problem zawsze sprawia mi synchronizacja clocków. Czy master clock I2S jest jednocześnie master clockiem codeca?...
"// Must send at least 74 clock ticks to SD Card" ...a wysyła 64. I parę innych kwiatków w tej samej funkcji, które świadczą o tym, że programista nie do końca wie, co robi.
Sprawa się rozwiązała, po prostu po zaimportowaniu projektu w opcjach debugera w startup miałem odznaczone opcje reasume i breakpoint at. Teraz wszystko się uruchamia. Jednak pojawił się drugi problem. Mianowicie wcześniej w atollic true studio napisałem program obsługujący wyświetlacz LCD zgodny z HD77480, który działał bardzo dobrze. Chciałem teraz...
Witam Spróbuj włączyć zegar według poniższego (w Twoim kodzie nic podobnego nie widziałem) ========================================... * How to use this driver * ========================================... * * 1. Enable peripheral clock using the following functions * RCC_APB2PeriphClockCmd(RCC_APB2Periph_SP...
Witam, mam problem z generacją PWM z tablicy z wykorzystaniem DMA. Wcześniej ten sam projekt działał na STM32F103 ale po przejściu na Cortex M4 coś nie działa. Konfiguracja peryferiów wykonana w Cube, wszystko analogicznie do tego co działało mi na F103. W debuggerze cały czas wartości rejestrów CCR mają 0, czyli jakby DMA nie chciało przesłać z tablicy...
Hej. Pacjent to STM32F401VCT6 taktowany domyślnym zegarem wewnętrznym 16MHz. Uruchomiłem sensor HC-SR04 wykorzystując TIM2 do zliczania długości impulsu ECHO wykorzystując tryb capture oraz DMA. Do rejestru TIM2->PSC ładuje 15, ponieważ chcę aby wartość CNT inkrementowała się co 1us. Kod źródłowy poniżej: [syntax=c] #include "stm32f4xx.h" static...
Zmieniłem na podane przez Ciebie funkcje: [syntax=c]#include "stm32f4xx.h" #include <stdio.h> #include "stm32f4xx_spi.h" #include "main.h" #include "gpio.h" #define CS_0 GPIOE->ODR &= ~(1<<3); #define CS_1 GPIOE->ODR |= (1<<3); void spi_init( void ) { RCC->APB2ENR |= RCC_APB2ENR_SPI1EN; RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN;...
Hej, Poprawny kod który działą, to ten ponizej. Mysle ze mozemy zamknac temat. void UART6_Configuration(void) { __HAL_RCC_GPIOC_CLK_ENABLE(); /* Enable clock to PORTA - UART2 pins PA2 and PA3 */ __HAL_RCC_USART6_CLK_ENABLE(); /* Enable clock to UART2 module */ gpio.Pin = GPIO_PIN_6 | GPIO_PIN_7; gpio.Mode = GPIO_MODE_AF_PP;...
Witam, Od niedawna planuję przejść na mikrokontroler stm32f407vgt6 z stm32f103vct6, ze względu na szybszą pracę. Niestety napotkałem na bardzo poważny problem. Aby przedstawić jak najlepiej dany problem, zamieszczę printscreen z analizatora stanów. http://obrazki.elektroda.pl/6745447700_1... Na wykresie widzimy przerwanie pracy timera,...
Jeżeli uruchomiłeś "system ochrony" zegara "głównego" (Clock security system (CSS)) i zegar główny zatrzyma się (np. dotkniesz palcami wyprowadzeń kwarcu) to system wywoła NMI, w którym to możesz zadecydować czy próbować przełączyć się z powrotem na zegar główny (np. kwarc) czy też zgłosić błąd (oczywiście bez zatrzymana procesora bo w ciągu kilku us...
MAM TO ! (at)simw dziękuję za zaangażowanie , to motywuje :) . Coś mnie naszło , żeby zobaczyć zakładkę "Option bytes" w ST utility przy podłączonym innym uC. Bity nRST_STOP , nRST_STDBY i WDG_SW są zaznaczone, toteż w pierwszym uC powinny być zaznaczone. Po ich zaznaczeniu i wgraniu(?) do uC , debugowanie działa bez problemów. Wcześniej podczas czyszczenia...
Faktycznie, a to ciekawa sprawa, bo te fragmenty kodu są wygenerowane automatycznie przez STM32CubeMX. Automatycznie owszem, ale ja bym tu jednak rozważył "czynnik ludzki" w błędnym wskazaniu portu w CubeMx. Ale może przemilczmy to. Spróbowałem zmienić wszędzie zarówno na GPIOD jak i na GPIOB, w żadnym wypadku dioda się niestety nie zaświeciła. Diody...
Więc z czego mam korzystać? Tylko dokumentacja? teraz dostaje taki komunikat Build target 'Target 1' compiling cw0.c... STM32F4xx.h(101): error: #35: #error directive: "Please select first the target STM32F4xx device used in your application (in stm32f4xx.h file)" #error "Please select first the target...
Mówimy o STM32F4 czy zwyczajnym? Bo jak o zwyczajnym, to tam po prostu musisz sobie zrobić "czas unixowy", czyli liczbę sekund od jakiejś daty i przy potrzebie przekształcenia tego na format czytelny po prostu przeliczać. P.S. Definicje z których korzystasz (np. RCC_APB1Periph_PWR) są dla funkcji z biblioteki SPL, a nie do wpisywania wprost do rejestrów....
[syntax=c] RCC->AHB1ENR |= RCC_APB1ENR_PWREN; /* zapis do AHB1ENR zamiast APB1ENR */ /* brak opóźnienia, patrz errata 2.1.13 Delay after an RCC peripheral clock enabling */ PWR->CR |= PWR_CR_DBP;[/syntax]
Zacytuje z pliku stm32f4xx_spi.c ========================================... * How to use this driver * ========================================... * * 1. Enable peripheral clock using the following functions * RCC_APB2PeriphClockCmd(RCC_APB2Periph_SP... ENABLE) for SPI1 * RCC_APB1PeriphClockCmd(RCC_APB1Periph_SP...
Witam [syntax=c]/* Enable SPI1 Clock*/ RCC->APB1ENR |= RCC_APB1ENR_SPI2EN;[/syntax] Używasz SPI1 czy SPI2? A konfiguracja pinów? Pozdrawiam
Skąd wziąłeś pomysł na wstawki z FLASH->ACR? Czytam RM0401 Jest dedykowany do tego rozdział: 3.4.1 Relation between CPU clock frequency and Flash memory read time Latency zależy od częstotliwości taktowania oraz napięcia zasilania, tak w skrócie. Co do ustawień zegara dla STM32 to warto zapamiętać sobie schemat działania, który wynika bezpośrednio...
Można Panie można, ale są tu też wady Twojego rozumowania, tzn niekoniecznie pola są w takiej kolejności to raz a dwa niekoniecznie wszystkie trzeba ustawiać a tamtym zapisem wybierasz tylko wybrane pola (no polonistą to nie jestem) Lepiej koledze doradź których clock enable nie ustawia, żeby mu projekt ruszył :D
Witam kondensatory 4,7pF (już wymieniłem, ale takie na F4 mi działają) jak ustawiłem Clock na LSI to działa ale to nie jest rozwiązane problemu. Pozdrawiam
Przy wyłączonym zasilaniu linia DATA i CLOCK nie jest zwarta. Podczas stania w pętli po START obie linie mają względem siebie 33.8 OHm
Teraz wiem ze ten przykład mi działa to zaraz się przekonam czy faktycznie to MCO2 się do tego lepiej nada. Spróbuj może tego: [syntax=c] void mco2enable() { volatile uint32_t tmpreg = 0x00U; // set mco2 port clock RCC->AHB1ENR |= RCC_AHB1ENR_GPIOCEN; // delay after an RCC peripheral clock enabling tmpreg = RCC->AHB1ENR & RCC_AHB1ENR_GPIOCEN; (void)(tmpreg);...
Może zbyt namieszałem. Zasadniczo chodzi po prostu o to jak stworzyć projekt w SW4STM, który nie zawierałby tych wszystkich śmieci z SPL i HAL i dało się pisać na rejestrach. Taki czysty podstawowy projekt pod rejestry z tylko niezbędnymi rzeczami jak w przypadku pisania na AVRy. Ja robię to tak: I. Potrzebne narzędzia: 1. System Workbench for STM32...
Witam, mam pewien problem z komunikacją pomiędzy STM32F4 a modułem nRF24L01. Kłopot polega na tym, że dane przez SPI przesyłane są "niedokładnie", tzn. pomijany jest ostatni bit w każdym transmitowanym bajcie (najmniej znaczący). Sprawdzałem to poprzez odczytywanie rejestrów z nRF24L01 i przesyłanie ich poprzez UART na terminal w komputerze. Zawsze,...
Witam. Posiadam STM32F4-discovery, do którego chciałbym podłączyć kartę SD poprzez interfejs SDIO. [syntax=c]#include "stm32f4xx.h" // Device header int main(){ //////////////// SDIO ////////////////// // USED: // PORTC -> AF12 -> PC[12:8] // PORTD -> AF12 -> PD[2] ////////// GPIO CONFIG ////////// ///// Enable clock for SDIO ports RCC->AHB1ENR...
A delay between an RCC peripheral clock enable and the effective peripheral enabling should be taken into account in order to manage the peripheral read/write to registers. This delay depends on the peripheral’s mapping: - If the peripheral is mapped on AHB: the delay should be equal to 2 AHB cycles.
GPIOD->AFR A cóż to ma wg Ciebie robić? Przecież masz ustawić na ostatnich 4 bitach (PD15) liczbę 2 - co odpowiada AF2, zatem: Dodano po 14 Jeszcze tu masz błąd: TIM4->CCR1 = 50; Powinno być: TIM4->CCR4 = 50; Dodano po 1 Działający kod wygląda tak: [syntax=c] RCC->AHB1ENR |= RCC_AHB1ENR_GPIODEN; RCC->APB1ENR |= RCC_APB1ENR_TIM4EN; //...
Witam Staram się podłączyć wyświetlacz oled Waveshare 0.96 cala (A) na sterowniku SSD1306 do mikrokontrolera STM32F401RE. Wyświetlacz posiada 8 wyprowadzeń i może komunikować się zarówno poprzez i2c jak i spi. Chcę połączyć się z nim poprzez i2c i móc wyświetlać na nim tekst czy też figury. Mój kod wygląda aktualnie tak: /* Includes ----------------------------------------...
Czyli z taktowaniem mam problem. Próbuję zrobić tak jak tutaj http://stm32f4-discovery.com/2014/04/lib... U mnie jest: Core Clock = ((HSE_VALUE / PLL_M) * PLL_N) / PLL_P Niestety po takiej konfiguracji STM wariuje, nawet USART wysyła śmiecie. Jak prawidłowo skonfigurować...
Cześć, Kilka dni próbuję coś zapisać jak i odczytać z eeprom at24c256. Problem polega na tym że program zatrzymuję się na [syntax=c]while (!(I2C1->SR1 &(SR1_ADDR))){}[/syntax] w funkcji i2c1_burst_write. Sprawdzałem rejestr DR i adres jest dobry. Pamięć eeprom ma adres 0x50 sprawdzałem skanerem i2c. Dodałem nawet przerwy czasowe pomiędzy inicjalizacja,...
Witam, wydawałoby się, że problem jest banalny, a mimo to już dzień nad nim spędziłem (a czas mi nagli bardzo). Moim zadaniem jest odczytanie wartości ADC i wysłanie przez USART do PC (do Hyperterminala przez konwerter RS232 ->USB). Ogarnąłem wysyłanie np. znaku "a", jednak wartość ADC to jakiś ciąg cyfr (chyba 4-cyfrowy). I nie wiem jak po konwersji...
Cześć wszystkim, Zabrałem się za obsługę wyświetlacza 4.3" opartego na SSD1963 w oparciu o FMC w STM32F429ZIT6. Konfigurację wszystkich podzespołów przeprowadziłem bezpośrednio na rejestrach. Sama procedura konfiguracyjna SSD1963 pochodzi z biblioteki UTFT z Arduino (oczywiście przepisana na potrzeby STMa) - na tamtym procku działa, więc tutaj ten sam...
Jednak jest coś nie tak z zasilaniem, kumpel jakoś ogarnął i z PC przez kompa zasilił i mu się diody zapaliły na klawiaturze. Sprowadziłem nową klawiaturę, podłączyłem do kompa i również diody się zapaliły. Postanowiłem zasilić klawiaturę w inny sposób = z płytki stykowej 820 pól oraz zasilacza do płytek stykowych AVT3072B + zasilacz do tego zasilania...
Pisze program na STM32F429i DISC1 Wygenerowałem kod w CubeMX na ADC i LCD ale nie chce działać razem. Działa ADC albo LCD i zależy to od kodu w sekcji "USER CODE BEGIN 2" Jeśli pierwsze są linijki ADC_START to działa ADC, jeśli BSP_LCD to działa LCD. Ktoś wie jak odpalić oba naraz? [syntax=c]int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END...
Witam, Uczę się programować i mam problem z wyświetleniem jakiegokolwiek napisu na wyświetlaczu TFT. Pracuję w STM32Cube IDE. Sprawa wygląda tak, inicjalizacja kontrolera przebiega ok, ustawiam sobie kolor tła ekranu tak jak chcę i to mi działa. Problem jest wtedy, gdy chcę przesłać zwykły napis "Hello World". Używam do tego takiej funkcji: https://obrazki.elektroda.pl/8838834100_...
(at)Marek_Skalski Kolega bartosz.tarnowski ma rację z procesem pipeline. faktycznie pomylił się z rdzeniem, ale m3 i m4 mają podobny proces przetwarzania instrukcji. https://www.google.pl/url?sa=t&rct=j&q=&...
Cała moja konfiguracja SPI jest w kodzie który zamieściłem... kod po zmianach z poprzedniego posta: [syntax=c]#include "stm32f4xx.h" #define EREVID (0x12|0x60) #define ENC28J60_BIT_FIELD_SET 0x80 #define ENC28J60_BIT_FIELD_CLR 0xA0 #define ECON1 0x1F #define ECON1_BSEL1 0x02 #define ECON1_BSEL0 0x01 #define ADDR_MASK 0x1F #define BANK_MASK 0x60 #define...
HSI clock The HSI clock signal is generated from an internal 8 MHz RC Oscillator and can be used directly as a system clock or divided by 2 to be used as PLL input. HSE clock The high speed external clock signal (HSE) can be generated from two possible clock sources: ● HSE external crystal/ceramic resonator ● HSE user external clock Czyli...
Naskrobałem taki oto "program" [syntax=c]RCC->CFGR = RCC_CFGR_SW_HSI | RCC_CFGR_PPRE1_DIV2; //Przełaczamy sys clock na 16MHz z HSI i ustaiamy peskaler APB1/2 (reszta bitów i tak była 0 więc dałem =) RCC->CR |= RCC_CR_HSEON; //Właczamy 16MHz External //RCC->CFGR = RCC_CFGR_SW_HSE; //Przełaczamy sys clock na 16MHz z HSE (przy okazji kasujemy resztę bitów)...
OK, poprawiłem definicję. rzeczywiście zrobiło się "masło maślane" z tym (uint32_t)19UL :) Mam jeszcze problem z ADC. Nie chcę zakładać nowego wątku, gdyż to pewnie jakiś drobiazg (pewnie znowu) w konfiguracji, a działanie podobne: pętla główna się zawiesza w oczekiwaniu na flagę konwersji (jak mniemem), ale przerwania działają i przebieg jest generowany....
[syntax=c]//Initialization SPI RCC->APB2ENR |= RCC_APB2ENR_SPI1EN; // Enable clock for SPI1 SPI1->CR1 = SPI_CR1_SSM | SPI_CR1_SSI | SPI_CR1_CPHA //NSS set by software mode 1:1 | SPI_CR1_CPOL | SPI_CR1_BR_2 | SPI_CR1_BR_1 |SPI_CR1_BR_0;// Baud rate divide = 7 //Initialization LIS302DL LISWrite(0x20,0x47); LISWrite(0x21,0x00); LISWrite(0x22,0x00);[/syntax]...
Witam. Po ogarnięciu portów i/o chciałem przejść do konwersji ADC. Początkowo zakładam, że nie korzystam z przerwań, nie korzystam z DMA. Screeny z Cube: http://obrazki.elektroda.pl/6506556500_1... http://obrazki.elektroda.pl/5974943000_1... http://obrazki.elektroda.pl/2033015600_1... Plik main: /** ****************************************...
Witam, Zaprojektowałem płytkę PCB z procesorem STM32F405RGT6, w fazie projektowej postanowiłem, że do wgrania programu na procesor użyję bootloadera. Po zlutowaniu podłączyłem procesor pod komputer, uruchomiłem program "Flash Loader Demonstrator", wgrałem mu następujący program: #include <stm32f4xx_gpio.h> #include <stm32f4xx_rcc.h> GPIO_InitTypeDef...
St-link v2 na płytce Discovery, próbuję nim zaprogramować zewnętrzny układ. STM32F401 ma podłączone wszystkie zasilania, na każdej parze 100n, kondensator na Vcap. Próbowałem w czasie łączenia ściągać NRST do masy, BOOT0 do Vcc, nic to nie zmienia. Na Vcap jest ok. 1,2V, więc regulator pracuje. OpenOCD pokazuje: [syntax=bash]openocd -f interface/stlink-v2.cfg...
opisz jak w procesorze STM32F411 skalibrować RTC używająć rejestrów. Posiłkuj się Reference Manual i notą aplikacyją AN4759 Wstępna ocena dostępnych informacji Użytkownik prosi o szczegółowy opis kalibracji RTC w mikrokontrolerze STM32F411 przy użyciu rejestrów, opierając się na Reference Manual oraz nocie aplikacyjnej AN4759 . Celem jest precyzyjne...
Standardowo jest taktowany 168MHz na wewnętrznym źródle sygnału: Dodano po 13 Dodano po 28 [syntax=c] /** ****************************************... * (at)file system_stm32f4xx.c * (at)author MCD Application Team * (at)version V1.0.0 * (at)date 30-September-2011 * (at)brief CMSIS Cortex-M4 Device Peripheral Access...
Ok, pomogło zainstalowanie libusb-win32-bin-1.2.6.0 ze strony projektu. Przy uruchomieniu pokazuje komunikat: Open On-Chip Debugger 0.6.0-dev-00448-gc59a441 (2012-02-29-17:05) Licensed under GNU GPL v2 For bug reports, read http://openocd.sourceforge.net/doc/doxyg... Warn : must select a transport. 1 kHz trst_and_srst separate srst_gates_jtag...
Witam, Próbuje skomunikować ze sobą STM32F4 z Arduino UNO po UARTcie. Skonfigurowałem UART1 i płytka komunikowała się bez problemu z Arduino. Lecz do mojego projektu potrzebna jest komunikacja przez UART2 (piny PA2-TX i PA3-RX), po skonfigurowaniu UART2 i podłączeniu do do Arduino nie mogę odczytać żadnych danych. Jeżeli podłącze UART1 z UART2 na płytce...
Witam, Próbuje skomunikować STM32F4-DISCOVER z modułem RN-171 po UART. RN-171 działa na 3,3V; STM32 na 3V. Masę mają wspólną. Generalnie wygląda, że działa, ale nie wiem co źle robię bo wygląda jakby STM32 był 'głuchy' na sygnał przychodzący. Na oscyloskopie wygląda to tak, że STM32 wysyła sygnał prawidłowo, a RN-171 na ten sygnał odpowiada mu tym samym...
Uwaga, spekulacje i przypuszczenia :P Nie mam żadnych oficjalnych informacji i też nie testowałem, ale skoro to tylko clock enable (a nie power gating ) to wspomnieliby jeśli zawartość byłaby tracona. O ile pamiętam dla ST "Sleep mode" = pierwszy poziom uśpienia (zatrzymanie samego rdzenia, nie deep sleep). Więc wyłączenie zegara jest pewnie opcją dla...
(at)ElektrodaBot Dzień dobry, zmagam się z nietypowym problemem. Zepsuł mi się ostatnio moduł I2S2 MOD podłączony do stm32f407, który zawierał zarówno ADC jak i DAC działający po I2S. Kupiłem coś tańszego - jako ADC PCM1808, oraz jako DAC PCM5102. Wcześniej działałem na full-duplexie, teraz jestem zmuszony działać na half-duplexie. Napisałem prosty...
Witam przeczytałem wszystkie posty o RCC w STM32F4, jednak dalej nie rozumiem jak to do końca działa. Chcę skonfigurować Timer5 aby odmierzał zadany czas. Mam zegar główny ustawiony na 168MHz. Preskalery ustawione: AHB - brak preskalera, APB1 - /4, APB2 - /2. Nie wiem jaka częstotliwość wchodzi na Timer5. W ogóle nie potrafię znaleźć w datasheetcie...
Mam jeszcze pytanie do interfejsu I2C, czy ktoś ma wiedzę na temat czasu transmisji danych z urządzania slave do master, obsługując I2C bez bibliotek? Czas będzie taki jak sobie zaprogramujesz. W tym momencie mam komunikację opartą o biblioteki i transfer 14 bajtów trwa około 1,6ms w trybie fast mode, wydaje mi się że jest to strasznie długo. No bo...
Jeśli potrafisz to zmierz zegar xclk. Jeśli nie, to zamień go na jakiś zdecydowanie niższy do 20MHz, a PLL w kamerze ustaw tak, aby zegar pclk nie przekraczał 30MHz. Najlepiej, żeby był z zewnętrznego generatora. Nie mam oscyloskopu, mogącego mierzyć tak wysokie f. Zmniejszyłem częstotliwość XCLK na 36MHz: [syntax=c] RCC_MCO1Config(RCC_MCO1Source_PLLCLK,...
Udało mi się uruchomić program tak by odpalał z Ramu. Wszystko działa jak powinno nic się nie zakłóca. Jednak nie udało mi się wyłączyć Flasha. Nie znalazłem odpowiedniego rejestru najbliższy był. FLITFLPEN: Flash interface clock enable during Sleep mode Ale jak widać służy on tylko do pracy podczas uśpienia. Co do Coocoxa niestety te problemy występują...
Witam, trochę odkopuję temat, ale mam problem z I2C, a też nie chcę korzystać z bibliotek STMa. Próbuję uruchomić komunikację między czujnikiem, ale niestety rejestr SR2 po I2C_init ma wartość 0x02, czyli flaga BUSY jest ustawiona. Jak debuguje to widziałem, że ustawia się on od razu, po komendzie: [syntax=c]// enable peripheral clock for I2C1 RCC->APB1ENR...
Znajdź dokument jest nawet arkusza kalkulacyjny clock configuration dla stmf4. Przydatne. Różnica jest prosta Freddie nie wykorzystując USB ustawia dzielnik na wartość najwyższy by nigdy nie przekroczyć wartości maksymalnej USBclk. Ustaw zgodnie ze swoimi ustawieniami. Ewentualnie usuń auto obliczenia Freddiego wstawiając wartości stałe. Pomoże ci wspomniany...
Graficzne narzędzie do konfiguracji zegarów znajdziesz np. w CubeMX - w dodatku zweryfikuje Ci poprawność ustawień i wygeneruje fatalny, ale poprawnie działający kod w C. Pewnie kiedyś się przyda, jednak chciałbym zrozumieć jak działa pętla PLL i umieć sam ją ustawić, a nie wiem czy dobrze zrozumiałem dokumentację. W pliku startup_stm32f40xx.s znalazłem...
Witajcie, Posiadam płytkę STM32F4DISCOVERY z procesorem STM32F407VG. Używam pakietu Eclipse + linaro + openOCD skonfigurowanego wg opisu Freddiego Chopina. Uruchomiłem również przykładowy program stm32f4_blink_led. Chciałem dołożyć obsługę USART1. Konfigurację napisałem w pętli main. [syntax=c] int main(void) { volatile uint32_t count, count_max = 10000000;...
Witam Mam problem z płytką portem usb w trybie cdc (inne też nie działają) w stm32 z bibliotekami HAL. Próbowałem go uruchomić (używam płytki stm32f429i-disco) ale komputer wogóle nie widzi że został podłączony. main.c [syntax=c] /** ****************************************... * File Name : main.c * Description : Main...
Mam z jakiegos template od ST ;/ jak wróce to przerobie na wersje od freddiego aczkolwiek w komentazu jest * 5. This file configures the system clock as follows: *=======================================... *=======================================... * Supported STM32F4xx device...
Dzień dobry, Dopiero zaczynam swoją przygodę z uC, mniej więcej ogarniam język C i stanęło przede mną zadanie napisania kodu sterownika do diod WS2812B. Wiem, że na temat tych diod było już sporo wątków na forum, więc będę się streszczał. Sercem sterownika ma być docelowo mikrokontroler z serii STM32F0 lub STM32F4, w zależności od tego jak dużo będę...
Pokaż program. Używasz SPL? Ustawienia zegarowe generujesz z arkusza kalkulacyjnego dostępnego na stronie STM (clock configurator się to chyba nazywa) - ten arkusz generuje Ci plik z konfiguracją zegarów. Potem dla ustawienia baudrate poprzez SPL musisz dodatkowo w linii poleceń kompilatora zdefiniować globalnie stałą HSE_VALUE z wpisaną wartością tego...
[syntax=c] void i2c_init(void) { RCC->AHB1ENR |= RCC_AHB1ENR_DMA1EN; // enable clock for DMA1 module gpio_pin_cfg(GPIOA, 8, GPIO_AF4_OD_50MHz_PULL_UP);// configure SCL for I2C3 gpio_pin_cfg(GPIOC, 9, GPIO_AF4_OD_50MHz_PULL_UP);// configure SDA for I2C3 RCC->APB1ENR |= RCC_APB1ENR_I2C3EN; // enable clock for I2C3 module I2C3->CR1 |= I2C_CR1_SWRST; //...
Witam, Bawię się (a raczej męczę) z DAC'em Philipsa UDA1334BT, który jest podłączony do STM32F417 za pomocą I2S. Niestety nie udało mi się uzyskać przez niego dźwięku poza bardzo cichym i charczącym, ledwo przypominającym to co powinno z niego naprawdę wyjść, dźwiękiem. Same dane z I2S wydają się poprawnie wychodzić (aczkolwiek, jest to moja pierwsza...
Wiem, że to Wam się nie spodoba, ale nie chciało mi się przedzierać przez te wszystkie rejestry, w dodatku dość nieintuicyjne ułożone. Kod jest w oparciu o SPL, opóźnienie jest. [syntax=c] void lcd_fmc_init(void) { FMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure; FMC_NORSRAMTimingInitTypeDef FSMC_NORSRAMTimingInitStructure; // enable FMC clock RCC...
Mismatch on the “Setup time for a repeated Start condition” timing parameter Czyli leci w fast-mode Start cannot be generated after a misplaced Stop Robię software reset w inicjalizacji I2C: Data valid time (tVD;DAT) violated without the OVR flag being set Clock stretching jest włączony domyślnie. https://obrazki.elektroda.pl/8117620800_...
Tych kroków jest trochę więcej, na przykład włączenia zegara dla domeny RTC. Poniżej daję kod do analizy (STM32G0xx) i czekam na krytykę. [syntax=c]/** * Brief This function configures RTC. * Param WakeUp period * Retval error code (0 = no errors) * PrereqSysTick serves as timebase for timeouts */ __INLINE uint8_t rtcInit(uint16_t timeToWake) {// set...
To już jest część działającego programu i wszystkie porty GPIO są podłączone do zegara. Dodano po 58 Na razie usunąłem jedną linię (wykomentowana) i dodałem ustawienie zewnętrznego taktowania z przykładu z SPL - działa. Teraz muszę dojść co ta linia z SPL dokładnie robi, bo nie jest to takie baaaardzo proste. Dodano po 1 Finalnie wygląda to tak: [syntax=c]...
Witam. Mam problem z ustawieniem breakpointów dla jakiejkolwiek konfiguracji w eclipse. Ale od początku. W tej chwili jedyną jako tako działającą konfiguracją jaką posiadam jest openocd + zylig konfiguracja poszczególnych wygląda następująco dla openocd mam ustawiony w eclipse starter wywołujący program z parametrami -f /home/zawisza/bin/board/stm32f4discovery...
Witam, Nie rozumie pewnej części programu na STM32f4 którą własnie analizuję. Związane jest to z ADC Poniżej inicjalizacja wejścia ADC na PB1: [syntax=c] static void ADC_Configuration(void) { ADC_InitTypeDef ADC_InitStructure; ADC_CommonInitTypeDef ADC_CommonInitStructure; GPIO_InitTypeDef GPIO_InitStructure; /* Enable ADC1 clock */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_AD...
witam ponownie, po dłuższym czasie walczenia z uruchomieniem mikrofonu i odtworzeniem nagranego dźwięku niestety nie udało mi się osiągnąć zamierzonego celu. Po poszukiwaniach w internecie znalazłem pomoc na forum ST pewnego użytkownika jednak również po jego instrukcjach występuje kilka błędów. Instrukacja zgodnie z którą próbowałem uruchomić mikrofon...
Witam mam problem z nadawaniem po USART1 z użyciem DMA. Gdy dłuość ciągu znaków nie przekracza 20 to wszystko pięknie działa. Natomiast gdy jest nie wiele większa 22, 23 ... to wyśle parę paczek o tej długości i przestaje. Dla jeszcze większej długości paczki nie wysyła wcale. Po podejrzeniu flag DMA ustawia się TCIF, czyli ok ale również dodatkowo...
Witam, Stworzyłem płytkę z mikrokontrolerem STM32F407. Próbowałem ja zaprogramować przykładem "blink_led" ze strony Frediego i nie chciało działać. Oprogramowanie Eclipse + bleeding toolchain + openocd 0.7.0 zostało skonfigurowane wg tutoriala Frediego na Ubuntu. Nie chciało się poprawnie programować, więc próbowałem różnych porad z internetu, ale to...
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, Próbuje uruchomić wyświetlacz oparty o ILI9341 z wykorzystaniem SPI. Wyświetlacz sprawdzałem pod Arduino i działa, jest sprawny. Próbuję podpiąć go do STM32F407ZET6. SPI działa, widać że są przesyłane dane na oscyloskopie. Zaczerpnąłem procedurę inicjalizacji wyświetlacza z Adafruit dla Arduino ale wyświetlacz jak był biały tak jest po wgraniu...
(at)sulfur Dopiero teraz znalazłem czas żeby dalej zająć się CANem. Ustawiłem tak jak mówiłeś i dalej nic. Nie mam pomysłu co sprawdzić . Tak jak wcześniej wspomniałem mam przejściówkę USB/CAN za pomocą której próbuję przetestować CANa. Program do obsługi tej przejściówki w ustawieniach transmisji wygląda następująco : http://obrazki.elektroda.pl/8802608800_1...
Witam, Kilka dni temu kupiłem układ jak w temacie. Pierwszy program z migającymi diodami był bez zarzutu, zapalały się i gasły co sekundę tak jak powinny. Zdziwił mnie tylko fakt, że częstotliwość pracy rdzenia wynosiła tylko 1 MHz... wynika to z faktu, że w prostą funkcję Delay (zliczającą takty w dół) wrzuciłem wartość 1000000 i czas pomiędzy zapaleniem...
Witam Dotychczas zajmowałem się STM32F103. Spróbowałem F4 i w niektórych momentach zaczynają się schody. Na STM32F429 próbuję uruchomić jednocześnie: LTDC, SDRAM, STemWin oraz poprzez FMC NORSRAM drugi LDC na SSD1963. Taki sobie wymyśliłem projekt. Wszystko oprócz banku FMC NORSRAM działa. Próbowałem różnych kombinacji z konfiguracją i timingami i na...
Witam. Na początek pochwalę się kodem : Tak wygląda main: [syntax=c]int main(void) { /* This sample code shows how to use STM32F4xx GPIO HAL API to toggle PG13 IOs (connected to LED3 on STM32F429i-Discovery board) in an infinite loop. To proceed, 3 steps are required: */ /* STM32F4xx HAL library initialization: - Configure the Flash prefetch, instruction...
Witam serdecznie. Zacząłem się bawić PWM w smt32f4 w trybie DMA. Korzystałem z tego kursu tutaj: https://forbot.pl/blog/kurs-stm32-f4-8-z... Generalnie wszyto działa, ale jak chciałem sobie zmienić kierunek DMA (czyli nie zpamieci do peryferiów), ale na odwrót - z peryferiów do pamieci to w zmiennej duty mam cały czas...
Używam KT-LINK, OpenOCD 0.7.0, libusb. Środowisko działa prawidłowo, kilka identycznych płyt z STM32F4xx działa prawidłowo, debug, flash itp. Jedna idzie opornie. Po podłączeniu się OpenOCD: Open On-Chip Debugger 0.7.0 (2013-05-05-10:41) Licensed under GNU GPL v2 For bug reports, read http://openocd.sourceforge.net/doc/d...
Próbuje osiągnąć maksymalny możliwy czas próbkowania (2.4MSPS) z STM32F407ZET6 Inicjalizacja ADC i DMA: ADC_SampleTime_3Cycles lub ADC_SampleTime_15Cycles powoduje że wartości odczytane z przetwornika są 0. Niższe prędkości próbkowania działają poprawnie lecz mi chodzi o "wyciągnięcie" tych 2.4MSPS Dla ADC_SampleTime_84Cycles : 982648 Dla ADC_SampleTime_56Cycles:...
Jak w temacie załączam kod coś pominąłem albo w tej konfiguracji to nie może działać, nie wiem czy ktoś przerabiał ten temat? przebieg pwm pojawia sie na wyjsciu gpiob pin 15 ale nie kopiuje tak jakby z memory do gpiob. [syntax=c] static void PortInit(void){ eb_init(); GPIO_InitTypeDef GPIO_InitStructure; //seperate port for enable pin and st pin RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GP...
To jest mój kod inicjujący I2C dla STM32F103. Od jakiegoś czasu stosuję z powodzeniem bibliotekę Libopencm3. [syntax=c]void i2c_setup(void) { /* Enable clocks for I2C2 and AFIO. */ rcc_peripheral_enable_clock(&RCC_APB1ENR... RCC_APB1ENR_I2C2EN); rcc_peripheral_enable_clock(&RCC_APB2ENR... RCC_APB2ENR_AFIOEN); /* enable GPIOB clock */ rcc_peripheral_enable_clock(&RCC_APB2ENR...
Witam A dokładnie w czym problem z konfiguracją? Jeśli masz DM-LCD35RT to pewnie na SSD2119 Czyli w LCDConf.c: [syntax=c]void LCD_X_Config(void) { GUI_DEVICE * pDevice; CONFIG_FLEXCOLOR Config = {0}; GUI_PORT_API PortAPI = {0}; pDevice = GUI_DEVICE_CreateAndLink(GUIDRV_FLEXCOLO... GUICC_M565, 0, 0); Config.Orientation = GUI_SWAP_XY |GUI_MIRROR_X; LCD_SetSizeEx...
Witam, Po uruchomieniu trzech interfejsów RS232 w STM32f103rb przyszedł czas na RS232 w STM32f407 i odrazu problem. Zrobiłem konfigurację USARTA i wysyłam w pętli znak 'a' a otrzymuję jakieś E z indeksem dolnym 1. Konfiguracja : [syntax=c] void init_USART1(){ /* This is a concept that has to do with the libraries provided by ST * to make development...
Witam, Próbuję zrobić prosty (o ile można to tak szumnie nazwać) oscyloskop. O ile mam już obsługę LCD oraz udaje mi się wyświetlać sygnał który podany jest do wejścia analogowego to nie bardzo mogę sobie poradzić z układem synchronizacji. Układ triggera próbuję zrealizować na zewnętrznym komparatorze którego sygnał wyjściowy podaję na jedno z wejść....
Siedzę nad tym już 3 godzinę i nie ma pomysłów. Ma ktoś z was działającą konfiguracje CAN2 w tym mikrokontrolerze. O ile z 1 nie było najmniejszych problemów o tyle 2 cały czas jest głuchy. Dodano po 2 Aby aktywować CAN2 należy włączyć 1 [syntax=c] RCC_APB1PeriphClockCmd(RCC_APB1Periph_CA... | RCC_APB1Periph_CAN2, ENABLE); /* Enable CAN2 clock */ [/syntax]
clock generator esp32 clock memory clock
rower kierunkowskaz kangoo instalacja excel klikniecie
dekoral strong stary domofon słuchawka
Siemens EQ500 - Anulowanie kawy białej Błąd 507 Fanuc: Przekroczenie granicy osi