본문 바로가기

2018/12

(28)
#STM32G SSM - Arduino에서 11 채널 ADC 테스트 Arduino 에서 다채널 ADC 테스트를 하려고 했는데... 생각대로 잘 동작 하지 않는다. 채널이 뒤죽박죽이고 값이 나오지 않는 채널도 있고... Arduino에서 ADC를 어떻게 설정 하는지 한번 들여다 보자 우선 STM32G030의 핀맵설정에서 ADC 설정가는한 핀을 확인해 보면 UART, JTAG 빼면 11채널을 설정 가능하다. Arduino에서 ADC 핀맵을 하기 위한 코드는 pins_arduino.c 에 있다. PinName analogInputToPinName(uint32_t pin) { PinName pn = digitalPinToPinName(analogInputToDigitalPin(pin)); if (pn == NC) { switch (pin) { #if defined(ADC_CHA..
#STM32G-SSM EVM - Arduino 코드로 SPI 테스트 [STM32G-SSM] 보드에서 SPI 핀맵은 아래 그림과 같이 할당되어 있다. #define PIN_SPI_MOSI PA_4 #define PIN_SPI_MISO PA_3 #define PIN_SPI_SCK PA_0 #define PIN_SPI_SS PC_14 Arduino 코드로 SPI출력 하면 멈춰 버린다. variant.h 파일에서 핀맵 맞추고 PinMap_SPI_MOSI[0] 에 SPI2가 디폴트가 되도록 수정 했다. #include unsigned char spixfer(unsigned char Data) { return SPI.transfer(Data); } int cnt = 0; void loop() { Serial.println(cnt++); digitalWrite(12, HIGH); d..
#STM32G-SSM EVM - Arduino 성능 테스트 STM32G0를 이용한 Arduino 만들기로 STM32G0가 Arduino 개발 환경에서 동작하므로 이제 Arduino에서 간단한 성능 테스트를 해 보자 Arduino에서 기본 제공하는 GPIO제어 함수로 토글 해보았다. #define PIN_OUT 12 void setup() { pinMode(PIN_OUT, OUTPUT); } void loop() { digitalWrite(PIN_OUT, HIGH); // turn the LED on (HIGH is the voltage level) digitalWrite(PIN_OUT, LOW); // turn the LED off by making the voltage LOW } 920ns (300khz) 정도 출력된다. 루프지연 시간도 2.6us 로 상당히 ..
#STM32G0-SSM - STM32G0를 이용한 Arduino 만들기 STM32G 시리즈도 Arduino 환경에서 개발 가능하다. Ardunio를 사용하면 기존 라이브러리를 그대로 사용할 수 있어서 간단히 테스트 하기에는 편리 한것 같다. 우선 전체 환경 설정은 variants 폴더의 DISCO_G0316 를 기준으로 제작했다. 핀맵은 STM32G0-SSM EVM보드를 기준으로 수정했고 보드 메니저에서 STM32G_SSM 로 표기 되도록 했다. STM32G Arduino 기본 핀맵 const PinName digitalPin[] = { PA_0, //0 SCLK PA_1, //1 I2S_CK PA_2, //2 I2S_SD PA_5, //3 PA_6, //4 I2S_MCK PA_7, //5 PA_11, //6 SCL PA_12, //7 SDA PA_3, //8 MISO PA..
[STM32G0 SSM EVM] 보드 제작 STM32G0 TSSOP20 핀 타입의 STM32G030F6P6 를 SSM Type EVM 형태로 제작했다. 이번에는 20핀 타입의 STM32F030도 사용 할수 있도록 PCB를 제작해 보았다. 1$ 이하의 저렴한 가격(실제 구매 가격 700원)에 나와서 구매 했는데 가격에 민감한 어플리케이션에 적용하면 좋을것 같다.
MAX31865 SSM EVM 보드 제작 - RTD-to-Digital Converter RTD 온도 센서의 온도 값을 측정할 수 있는 MAX31865 테스트 보드를 SSM-Type 핀맵으로 제작 했다. • Simple Conversion of Platinum RTD Resistance to Digital Value • Handles 100Ω to 1kΩ (at 0°C) Platinum RTDs (PT100 to PT1000) • Compatible with 2-, 3-, and 4-Wire Sensor Connections • 15-Bit ADC Resolution; Nominal Temperature Resolution 0.03125NC (Varies Due to RTD Nonlinearity) • Total Accuracy Over All Operating Conditions: 0.5N..
STM32G0 SSM - STM32CubeIDE에서 Iperf로 W5500의 TCP Throughput 측정 테스트 STM32G0에서 SPI 클럭의 최대 속도는 32Mhz로 STM32F1의 SPI 클럭속도(18Mhz)보다 빨라 졌다. W5500 SPI 전송율 테스트를 해 보면 STM32G0의 SPI성능을 테스트 해 볼수 있을것 같다. 우선 STM32CubeIDE에서 SPI 설정을 하자. 네트웍 전송율 테스트를 위해 PC에서는 iperf 프로그램을 사용하고 STM32에서는 W5500 TCP loopback 테스트 코를 조금 수정해 iperf 클라이언트 코드로 작성했다. int32_t iperf_tcps(uint8_t sn, uint8_t* buf, uint16_t port) { int32_t ret; uint16_t size = 0, sentsize=0; switch(getSn_SR(sn)) { case SOCK_EST..
STM32G0 SSM - STM32CubeIDE SPI DMA 테스트 STM32CubeIDE 를 이용해서 STM32G031의 SPI DMA 테스트를 진행 해 보자. 우선 STM32CubeIDE에서 STM32G031용 프로젝트를 생성하고 기본 페리를 설정한다. SPI 클럭은 최대 32Mhz 까지 가능하다. SPI DMA 채널을 추가 SPI DMA 인터럽트 추가 GPIO 핀 스피드 설정 SPI클럭을 최대 주파수로 사용하기 때문에 GPIO 스피드 설정도 VeryHigh 로 설정해 주어야 한다. STM32G031 SPI DMA 처기 테스트 코드 일반 SPI통신과 DMA 통신의 차이를 확인하기 위해 두가지 방식이 가능하도록 코드를 작성 했다. #define _SPI_DMA_USE1 #define hSPIhspi2 #define SPIx_TIMEOUT_MAX ((uint32_t)0x..

반응형