본문 바로가기

[ST_MICRO]/STM32

(38)
STM32 Arduino 개발환경 설정하기 보드 매니저 URL추가아두이노 환경설정에서 보드파일 주소를 등록 해 준다.https://raw.githubusercontent.com/stm32duino/BoardManagerFiles/master/STM32/package_stm_index.json 보드 매니저에서 STM32-Core 패키지를 인스톨 한다. 알맞은 보드 파일을 설정하면 STM32를 아두이노 개발환경해서 사용할 수 있다.
STM32 내부클럭 사용하기 STM32 내부클럭 사용하기보드 단가를 낮추기 위해서는 내부 오실레이터를 이용하면 좋은데 특히 STM32F100 시리즈는 저렴하기 때문에 보드 단가 측면에서 내부 오실레이터를 사용하는것이 유리하다. 다만 디폴트가 PLL클럭의 1/2이다.따라서 최대 64Mhz로 구동 하므로 주의가 필요 하다. (외부 8Mhz 구동시 최대 72Mhz로 구동가능하다.) PLLCLK = 8MHz/2 * 16 = 64 MHz /* PLL entry clock source */#define RCC_PLLSource_HSI_Div2 ((u32)0x00000000)#define RCC_PLLSource_HSE_Div1 ((u32)0x00010000)#define RCC_PLLSource_HSE_Div2 ((u32)0x00030000)..
STM32F1과 STM32F4 핀맵 차이 STM32F1과 STM32F4 핀맵 차이 STM32F1xx 와 STM32F4xx는 핀맵이 호환된다고 한다. 하지만 전원핀이 조금 다르다고 하는데... (왜 이렇게 만들었지?) 암튼 몇군데 손보면 옛날 PCB 그대로 사용할 수 있을것 같다.
소형 STM32 소형에 UART 2개 이상인 MCU를 찾다보니 저렴한 가격에 STM32가 제일 좋은것 같다. 확인해 보니 아래과 같이 추려진다. Generic Part Number Package Operating Frequency (Processor speed) (MHz) FLASH Size (Prog) (kB) Internal RAM Size (kB) 12 or 16-bit timers (IC/OC/PWM) Serial Interface STM32F101T4 VFQFPN 36 6x6x1-0 36 16 4 2x16-bit (8/8/8) 1xSPI;1xI2C;2xUSART(IrDa, ISO7816) STM32F101T6 VFQFPN 36 6x6x1-0 36 32 6 2x16-bit (8/8/8) 1xSPI;1xI2C;2x..
STM32 Infomation block 내부 EEPROM처럼 사용하기 STM32 Infomation block EEPROM처럼 사용하기 STM32는 AVR과 달리 내부 EEPROM이 없다. 대신 내부 플래시를 EEPROM처럼 쓸 수 있다고 한다. 제작한 보드에 ID를 부여해 인식하려고 하는데.. 데이트시트를 보면 내부 영역중 Information block 이 있다. 이부분은 ST에서 제공하는 플래시 프로그램으로 제어 가능하기 때문에 PC 소프웨어 부담없이 가능할것 같다. Option Byte 영역을 수정하여 ID를 부여해 보도록 하겠다. Flash Loder에서 Edit Option Byte를 선택하여 수정할 수 있다. Option Byte에서 Byte for user data storage 부분을 FF에서 EC로 변경하고 저장한다. 이제 펌웨어에서 이부분을 읽어서 ID..
STM32 SPI Slave Mode 테스트 STM32 SPI Slave Mode 테스트 SPI Slave통신에 시간을 많이 까먹었는데... 아무튼 아래와 같이 해결 했다. Master로 부터 데이터 수신클럭 받고 SPI_I2S_ReceiveData()로 데이터를 받아주어야 했는데... 이부분을 생각 못해서 데이터가 이상하게 출력되었다. //SPI Master로 부터 클럭이 들어오면 데이터 받고 while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET); temp = SPI_I2S_ReceiveData(SPI2); //DebugPrint("SPI2 RX:%02X\r\n", temp); //원하는 데이터를 보낸다. //Send SPI2 data SPI_I2S_SendData(SPI2, cnt++..
[STM32-LCD EVM] 보드 제작 [STM32-LCD EVM] 보드 제작 STM32 를 이용한 TFT LCD테스트 모듈을 제작했다. 탁상용 액자로 사용해 보려고 소형으로 제작 했다. 2.6" TFT LCD(COM44), MP3모듈, SD Card, 이더넷 모듈, 가속도 센서등을 연결할 수 있다. STM32-LCD EVM 테스트 동영상
[myUSB] STM32 EVM CAN Interrupt Test [myUSB] STM32 EVM CAN Interrupt Test STM32 (myUSB EVM)보드와 LM3S5732 EVM보드를 이용하여 CAN통신 테스트를 해 보았다. CAN인터럽트를 이용하여 데이터를 수신하도록 했다. 지난번에 폴링으로 테스트 하긴 했는데... 새롭게 하려니 또 시간이 많이 소비되는것 같다. 서로 다른 보드의 환경설정 하는데 시간이 많이 걸렸다. 정리만 잘 해두었어도 시간을 많이 줄일 수 있었는데... 다시한번 정리해 보도록 한다. 모터 제어 확장 보드의 LM3S5732에서 SW7를 누르면 CAN데이터가 전송되도록 했다. STM32 CAN인터럽트 인터럽트 소스는 여러가지 있지만 가장 많이 사용하게 될 소스는 CAN_RF0R, CAN_RF1R 이다. CAN 데이터가 Mailbox에 ..