본문 바로가기

전체 글

(2041)
[CH32V003-SSP] CH32V003J4M6 SOIC-8 핀 테스트 보드 제작 가장 저렴한 MCU CH32V003 시리즈 중에서 핀수가 적은 SOIC-8 핀의 CH32V003J4M6 은 소형이고 간다한게 무엇인가 만들어야 할때 사용하면 좋을것 같아 테스트 보드를 SSP-EVM 형태로 제작해 보았다.ATtiny13 SS EVM 보드와 비슷한 형태로 제작 했다.
[RP2040_W6100] 웹서버 테스트 - Base64 인코딩 방식 이미지 출력하기 [RP2040_W5500] 보드를 이용하여 웹페이지 출력 테스트 예제를 참고로 W6100에서 웹서버 예제를 테스트 해 보자 [RP2040_W5500] Webserver 테스트지난 포스트에서 Ethernet_Generic 라이브러리를 이용해서 이더넷 전송 속도 개선을 했고 이제 웹서버를 구현 해 보자 웹서버의 가장 기본이 되는 뼈대 코드를 작성해보자. 새로운 라이브러리로 ESP32nexp.tistory.com 이번에는 이미지를 출력해 보면 좋을것 같다. 웹페이지에 이미지를 출력하는 방법은 여러 가지가 있지만 가장 간단하게 할 수 있는 Base64 인코딩 방식으로 이미지를 출력 해보자 #define USE_W5100 false#define USE_THIS_SS_..
[RP2040_W6100] Arduino IDE에서 Iperf TCP Throughput 측정 테스트 (Ethernet_Generic 라이브러리 수정) W6100을 이용하여 제작한 보드의 네트웍 전송속도를 테스트 해보자[RP2040_W5500]  보드에서 테스트한 Iperf TCP Throughput 측정 테스트를 참고 하여 Arsuino의 기본 예제를 이용하여 전송률을 테스트 해보자.4Mbps 정도로 측정이 된다. 역시 W5500의 수준으로 느리다.  전송율을 높이려면 Ethernet_Generic 라이브러리의 w5100_Impl.h 파일에서  write(), read() 함수를  수정하여 DMA로 전송하도록 수정해야 한다.\Documents\Arduino\libraries\Ethernet_Generic\src\utility\w5100_Impl.h uint16_t W5100Class::write(uint16_t addr, const uint8_t *b..
[RP2040_W6100] Arduino 에서 W6100 이더넷 개발환경 설정 RP2040에서 간단히 W6100을 사용하려면 Ethernet_Generic 라이브러리를 사용하면 쉽게 테스트 해볼 수 있다. 우선 W6100을 사용하기 위해 USING_W6100 을 true로 설정한다.#define USE_W5100 false#define USING_W6100 true  다음으로 W6100 SPI설정을 해 준다.#define USE_ETHERNET_GENERIC true #define USE_THIS_SS_PIN 17 //RP2040 EXP#define SPI_X spi0#define SPI_ETHERNET_SETTINGS SPISettings(330..
[RP2040_W6100] RP2040 + W6100 Mini Board 제작 RP2040은 저렴(1$)하면서 성능 좋은 MCU로 Wiznet사의 Ethernet 칩과 결합하면 저렴하면서도 성능 좋은 이더넷 솔루션이 될것 같다. 이번에는 R2040과 W6100을 결합해서 최대한 작은 보드로 [RP2040_W6100] 보드를 제작 해 보았다. 가능하면 작게 만들기 위해 앞뒷면 배치를 했고 플래시 메모리도 작은 패키지로 선택했다.   최대한 작게 만들기 위해 SSM-Type EVM 형태로 10핀으로 제한해서 제작 했다.W6100의 SPI는 RP2040의 SPI0에 연결해서 기존 코드를 수정없이 사용할 수 있도록 했다.  기존에 제작했던 W6100 SSM 모듈과 비교해도 사이즈가 크게 차이가 없을정도로 작게 만들어 졌다.
CH32X035 SSM - USB Keyboard 테스트 CH32X035의 USB 기능을 이용하여 USB HID Keyboard를 구현 해 보자. WCH에서 제공하는 예제는 Keyboard/Mouse 예제 인데 usb_desc.c 파일을 수정해서 Keyboard만 인식하도록 했다.  스위치를 누르면 정의된 키보드 값을 전송하는 간단한 예제를 작성 하였다.ch32x035_usbfs_device.c 에 정의 되어 있는 USBFS_DevEnumStatus 변수로 장치의 인식여부를 확인 할 수 있다. int main(void){ int sw_flag = 0; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); SystemCoreClockUpdate(); Delay_Init(); GPIO_INIT(); ..
CH32X035 SSM - USB HID 테스트( 파이썬 pywinusb 를 이용한 HID 테스트) CH32x035 의 USB Custom HID 테스트 해 보자.참고 소스코드는 https://github.com/openwch/ch32x035/tree/main/EVT/EXAM/USB/USBFS/DEVICE/CompatibilityHID 를 수정하여 작성하였다. WCH에서 제공하는 USB HID코드는 UART에서 받은 데이터를 HID로 전송하도록 되어 있는데 스위치 누르면 HID 데이터 전송하고 PC에서 받은 HID레포트 데이터를 출력 하도록 코드를 수정 하였다.int main(void){ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); SystemCoreClockUpdate(); Delay_Init(); USART_Printf_Init(1152..
CH32X035 SSM - USB CDC 테스트 CH32X035의 가장 큰 특징으로 저렴(300원대)하고 소형에 USB 기능이 있는 MCU인데 USB 기능을 테스트 해보자.가장 많이 사용되고 간단한 CDC 테스트를 해보자. WHC에서 제공하는 CDC 예제는 USB2UART를 구현해 두었다. 실제 어플리케이션에 적용하려면 UART 기능은 빼고 USB로 데이터를 전송하거나 수신받은 데이터를 처리하는 예제가 필요할 것 같다. 그래서 코드를 수정해서 간단히 USB CDC로 ADC값을 전송하는 예제를 작성하였다.char str_buf[64];int main(void){ unsigned int adc_Value = 0; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); SystemCoreClockUpdate(..