본문 바로가기

STM32F4

(26)
[STM32F4] W5100/W5200 TPC/IP Loopback 전송 속도 테스트 [STM32F4] W5100/W5200 TPC/IP Loopback 전송 속도 테스트 SPI 최대 클럭 21Mhz에서 3.5Mbps 정도 나온다. 빠르긴 한데.. 아쉬운 점은 168Mhz MCU인데 속도가 기대한 만큼은 나오지 않는것 같다. (PIC32 CP/IP 전송 속도 테스트 결과 와 비교하면 80Mhz PIC32가 더 빠르게 나온다) SPI클럭 설정을 좀더 자유롭게 할 수 있으면 좋을것 같은데.... SPI FIFO가 없어 그런것 같은데... DMA를 이용하면 좀더 빨라지지 않을까? ------------------------------------------------------------ [7] iInChip Send: 3.5567 Mbps(5278574 bytes, 11.3230 sec) iI..
[STM32F4] STM32F405 TFT LCD 출력 테스트 [STM32F4] STM32F405 TFT LCD 출력 테스트 STM32F103 EVM] 보드와 핀맵이 동일하기 때문에 기존 확장 보드에서 TFT LCD테스트 가능하다. GPIO 최대 클럭으로 제어시 LCD가 동작을 하지 않는다. 이때 1프레임 출력시간은 4ms로 너무 빨라서 GPIO로는 타이밍을 맞추기 힘든것 같다. 약간의 지연시간을 주니 정상 동작하고 1프레임 출력 시간은 8ms 정도 된다. 상당히 빠른것 같다. (메모리 버스 타입이 아니라 딜레이는 더이상 줄이기 힘든것 같다.) STM32F4 TFT LCD 출력 속도 테스트 동영상 STM32F4 TFT LCD BMP 파일 출력 테스트 동영상SPI를 이용하여 SD Card의 BMP 파일 출력 테스트
[STM32F4] SPI 테스트 [STM32F4] SPI 테스트 STM32F4 의 SPI는 3채널이 있고 37.5Mbits/s 로 고속 전송이 가능해 졌다고 한다. STM32F4 SPI 블록도 STM32F4 소프트웨어는 STM32F103과 거의 호환 가능하다. 초기화 부분에 GPIO설정 부분만 수정하면 문제 없이 동작한다. SPI클럭을 최대로 설정하니 42Mhz 정도 나온다. STM32F4 SPI 초기화 함수 void SPI0_Init(void) { SPI_InitTypeDef SPI_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE); RCC_AHB1PeriphClockCmd(RCC_AHB1Periph..
[STM32F4] Timer Test - SysTick 테스트 [STM32F4] Timer Test - SysTick 테스트 SM32F4 는 최대 17개의 타이머가 있다. 최대 168Mhz로 동작하고 16bit/32bit의 성능 또한 멋지다. 17 timers: up to twelve 16-bit and two 32-bit timers up to 168 MHz, each with up to 4 IC/OC/PWM or pulse counter and quadrature (incremental) encoder input STM32F4 Timer (SysTick)예제 소스코드 #include "system.h" #include "serial.h" volatile unsigned int gTimeTick1_1ms = 0; //--------------------------..
[STM32F4] UART 테스트 [STM32F4] UART 테스트 STM32F4 의 USART는 4채널이고 UART가 두채널 더 늘어 났다. 전송율도 두배 정도 증가된 10.5Mpbs로 쓰일곳이 많을 것 같다. 4 USARTs/2 UARTs (10.5 Mbit/s, ISO 7816 interface, LIN, IrDA, modemcontrol) (아쉬운 점은 UART FIFO가 없다. 물론 DMA를 이요하여 SRAM에 저장해도 되지만 다른 MCU에 다 있는 FIFO없는것이 좀...) STM32F4 UART 초기화 함수 void U0_Init(unsigned char baud) { USART_InitTypeDef USART_InitStructure; USART_InitStructure.USART_BaudRate = baud_rate; U..
[STM32F4 ] PLL 설정 [STM32F4 ] PLL 설정 STM32F4 의 최대 동작 속도는 168Mhz이다. SystemInit() 함수를 이용하여 PLL을 설정 가능하고 startup_stm32f4xx.s 에서 초기화시 실행된다. 외부 입력 클럭은 8Mhz로 설정했다. #if !defined (HSE_VALUE) #define HSE_VALUE ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */ #endif /* HSE_VALUE */ /* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N */ #define PLL_M 8 void SystemInit(void) { /* FPU settings -------------..
[STM32F4] GPIO 테스트 [STM32F4] GPIO 테스트 STM32F103과 하드웨어 적으로 크게 변경된 것이 없지만 소프트웨어 적으로 약간의 변경이 있는것 같다. 대부분의 코드는 호환 되지만 기능이 약간 추가되고 레지스터명이 조금 변경 된것 같다. STM32F4 에서는 GPIO 제어 레지스터가 변경되어 약간 수정 해 주었다. //#define sbi(Port, Bit) Port->BSRR = Bit //#define cbi(Port, Bit) Port->BRR = Bit #define sbi(Port, Bit) Port->BSRRH = Bit #define cbi(Port, Bit) Port->BSRRL = Bit STM32F4 GPIO 설정 HAL 드라이버 코드 //--------------------------------..
[STM32F4] 속도 측정 - GPIO 토글 속도 테스트 [STM32F4] 속도 측정 - GPIO 토글 속도 테스트 STM32는 Cortex-M4F 코어로 168Mhz로 동작한다. GPIO 토글 테스트로 MCU의 속도를 테스트 해 보았다. 물론 클럭속도가 중요한 요소는 아지만 마이컴에서 GPIO속도는 중요할 때가 많이 있다. STM32F4는 FPU가 있어 DSP기능도 뛰어난것 같다. [참고] MCU속도 측정 결과 또는 STM32 CPU속도 테스트 결과와 비교해 보면 ST시리즈 속도를 확인해 볼 수 있다. 클럭 설정없이 그냥 GPIO On/Off 시키니 10Mhz 출력된다. 느린데.. 뭔가 이상한것 같다. PLL설정후 STM32F4의 GPIO토글 속도는 33Mhz 까지 출력된다. STM32F103에서 12Mhz가 출력 되었던과 비교하면 확실히 빨라진것을 확인 할..