본문 바로가기

전체 글

(2049)
[STM32H757-RP] LWIP TCP Ethernet 테스트 - iperf 성능 측정 STM32H757 듀얼코어 MCU를 사용하려고 했던 가장큰 목적은 이더넷 때문이다. Cortex-M4코어로 고속의 이더넷 통신을 하면서 Cortex-M7 코어로 연산이 필요한 작업을 진행하기에 최적의 MCU이기 때문이다. STM32H757에서 이더넷 테스트를 진행해 보자. [STM32H757-RP] 보드의 이더넷 파이 RMII 연결 핀맵STM32H747과 핀수는 같지만 핀맵이 달라서 기존 STM32H7 시리즈와 달리 핀맵을 조금 수정했다. 우선 M4 코어에 이더넷을 연결하여 테스트 해보자. LWIP 스택도 M4코어로 할당해서 설정할 수 있다. LWIP로 TCP 전송률 테스트를 위해 간단히 iperf 서버를 구현해서 테스트 가능하다.#include "lwip/tcp.h"#define IPERF_TC..
[STM32H757-RP] STM32H7 16bit ADC 테스트 STM32H7 시리즈 MCU는 16비트 해상도의 ADC를 3개 내장하고 있다. 16비트 해상도 이면 3.3 V / 65536 = 50 µV 까지 측정할 수 있다. 물론 ENOB(Effective number of bits)로 따지면 13.8bit 까지 가능하다고 한다. 기존 12비트 ADC에 비해 향상된 정확도와 낮은 노이즈를 제공 한다고 한다. STM32H7는 2배에서 1024배까지 조절 가능한 하드웨어 오버샘플링 엔진을 내장하고 있어 데이터 평균화를 통해 SNR을 향상시킬 수 있으며, 소프트웨어 구현에 비해 CPU 부하를 줄이고 소비 전력을 낮출 수 있다. 하드웨어 오버샘플링을 통해 NOB기준 15.3bit 까지 가능하다. STM32H7는 싱글-엔드 및 차동 신호를 모두 변환할 수 있다. 차동 모드..
[STM32H757-RP] STM32H757 칩 내부 온도 측정 테스트 STM32 MCU중 온도센서가 내장되어 칩내부의 온도를 측정할 수 있는데... STM32H7의 경우 기존과 구조가 좀 달라 주의가 필요하다. STM32H7의 내부 온도 센서는 ADC3에 VSENSE 채널에 할당되어 있다. STM32CubeIDE로 ADC설정을 하고 ADC채널을 온도센서로 설정하면 MX_ADC3_Init() 함수로 자동으로 코드가 생성된다. static void MX_ADC3_Init(void){ ADC_ChannelConfTypeDef sConfig = {0}; /* ADC Periph clock enable */ __HAL_RCC_ADC3_CLK_ENABLE(); /* ADC Periph interface clock configuration */ __HAL_R..
[STM32H757-RP] STM32H757 dual-core STM32CubeIDE 개발환경 설정 STM32H757 는 Cortex-M7 + Cortex-M4의 dual-core MCU로 STM32CubeIDE로 개발 가능하다. 기존 STM32와 뭔가 달라진것이 있나? 우선 CubeIDE로 STM32H757을선택하고 프로젝트를 생성하자. 기존 STM32H7과 비교하면 각 페리들을 어떤 코어에 할당 해서 사용할지를 선택할 수 있는 체크 박스가 있다. 가장 간단한 코드로 [STM32H747-RP] 보드의 PA4, PD6에 연결도어 있는 LED를 테스트 해보자. PA4에 연결된 LED는 M4코어에 PD6에 연결된 LED는 M7코어로 할당해서 듀얼코어를 제어해 보자 MCU의 클럭은 코어별로 각각 최대 CPU1(M7)은 480Mhz, CPU2(M4)는 240Hhz로 설정할수 있다. STM32C..
[STM32H757-RP] STM32H747/757 dual-core 보드 제작 STM32H747/STM32H757 은 STM32H7시리즈 중 가장 성능이 우수한 듀얼코어 마이크로컨트롤러 이다. 한가지 아쉬운점은 STM32F439, STM32F777, STM32H743은 동일한 핀맵으로 PCB를 호환해서 사용할 수 있지만 STM32H747은 핀맵이 많이 다르다. 그래서 기존의 STM32H7-RP 시리즈와 동일한 핀맵으로 제작해 보았다. 480 MHz Cortex-M7 코어와 240 MHz 의 Cortex-M4코어가 하나의 칩에 포함되어 있어 코어 성능이 중요한 어플리케이션에 적용하면 좋을것 같다.STM32H757-RP 주요 회로 핀맵
[RP2350_W6100] ST7789 TFT LCD 테스트 - TFT-eSPI 라이브러리 오류 수정 ST7789 TFT LCD 모듈을 이용하여 테스를 해 보기위해 TFT_eSPI 라이브러리를 사용 하려고 하는데 RP2040 TFT_eSPI 테스트 예제에서 사용했던 코드가 동작하지 않는다. 좀더 정확히는 잘 사용하던 TFT_eSPI 라이브러리를 최신버전으로 업데이트 후 정상 동작을 하지 않는다.2.5.34 까지는 잘 동작 했었는데… 2.5.43에서는 컴파일은 되지만 LCD가 정상 동작하지 않는다.SPI 신호는 정상적으로 나오는것 같은데… LCD제어 핀맵은 정상적으로 할당되어 있다. 그렇다면 라이브러리의 문제인데...#include #define TFT_CS 11 // Define as not used#define TFT_DC 12 // Data Command control pin#def..
[RP2350_W6100] 다채널 ADC, ADC DMA 테스트 RP2350는 온도 센서 포함 5채널의 12bit ADC가 있다. 아쉬운점은 채널수도 적고 샘플링 속도나 ADC성능(9.5bit ENOB)은 우수하지 않다.간단한 아날로그 전압 측정용으로 사용하면 좋을것 같다. 우선 2채널의 가변저항이 있는 확장 테스트 보드에서 전압값을 측정해 보자.#include #include "pico/stdlib.h"#include "hardware/gpio.h"#include "hardware/adc.h"int main() { uint16_t result = 0; const float conversion_factor = 3.3f / (1 ADC DMA 테스트ADC의 최대 샘플레이트는 500 kS/s 이다. STM32와 비교하면 성능이 많이 떨어지는것 같다.DM..
[RP2350_W6100] Pi Pico C/C++ SDK - W6100의 Iperf TCP Throughput 측정 테스트 [RP2350_W6100] 보드는 RP2350에 W6100을 포함하고 있는 테스트 보드이므로 Raspberry Pi Pico C/C++ SDK 개발환경 에서 W6100 개발환경을 설정하고 TCP 전송률 성능을 측정해 보자. 우선 Pi Pico SDK로 W6100 테스트 예제를 생성한다. 하드웨어 세팅에서 SPI, DMA 를 체크하자.   그리고 W6100관련 io6Library  라이브러리를 다운 받는다.  W6100과 관련된 Ethernet 폴더를 생성한 프로젝트에 복사한다. 그리고 라이브러리를 Cmake 파일에 추가 등록 하면 된다.include_directories( Ethernet Ethernet/w6100 )# Add executable. Default name is the pr..