본문 바로가기

RaspberryPi

(118)
[W55RP20-4032] I2S MEMS MIC(ICS-43434) 를 이용한 UDP 네트웍 마이크 만들기 I2S MEMS MIC(ICS-43434) 테스트 코드를 이용해 마이크 음성 신호를 UDP로 방송할 수 있는 네트웍 마이크를 제작해 보자. 스위치1을 누르면 기존과 같이 보드의 스피커로 출력 스위치 2를 누르면 네트웍으로 전송하는 코드를 작성했다.UDP 수신은 기존 네트웍 스피커 코드와 동일하고 마이크 음성 송신은 별도의 소켓을 생성해서 처리 하도록 했다.이렇게 하면 수신하면서 송신이 가능한 구조가 될 수 있다.void process_audio_tx() { switch (getSn_SR(SOCK_UDP_TX)) { case SOCK_UDP: gpio_put(LED_PIN2, 1); int buf_idx = 0; for (uint..
[W55RP20-4032] I2S MEMS MIC(ICS-43434) 테스트 네트웍크 스피커에 연결 될수 있는 네트웍 마이크를 제작 하기 위해 MEMS MIC(ICS-43434) 를 테스트 해보자.마이크는 기존에 제작 해 두었던 ICS-43434 모듈을 이용하였다. MIC신호는 I2S로 입력 받고 스피커로 출력 할 수 있다.스위치1 을 누르는 동안 마이크 신호를 스피커로 출력하고, 스위치 2를 누르면 볼륨 조절 하는 아주 간단한 예제를 테스트 해보자.#include #include #include "pico/stdlib.h"#include "pico/audio_i2s.h"#include "hardware/pio.h" #include "audio_mic_rx.pio.h" #define BUTTON_PIN 2#define BUTTON_PIN2 ..
[W55RP20-4032] W55RP20 Arduino - W55RP20_Ethernet3 라이브러리 이용 MQTT 테스트 W55RP20 Arduino 환경에서 네트웍 전송률은 조금? 느리지만 기존 작성된 다양한 라이브러리를 쉽게 사용할수 있는 장점이 있다.이번에는 MQTT로 데이터 전송 예제 코드를 작성해 보자. PubSubClient 라이브러리를 이용하면 아주 쉽게 MQTT 데이터를 송수신 할 수 있다.#include // W55RP20 전용 하드웨어 가속 라이브러리#include // 2. MQTT 서버 정보 및 매크로 설정const char* mqtt_host = "mqtt.host.com";const int mqtt_port = 1883; #define MQTT_CLIENT_ID "Test_ID_778899_Nexp"#define MQTT_USERNAME "mqttest"#define MQTT_PASSWORD ..
W55RP20 을 이용한 PoE 기반 네트웍 스피커 제작 RP2040과 이더넷 컨트롤러 W5500이 결합된 W55RP20 SIP(System-in-Package) 칩을 활용하여, 실시간 스트리밍이 가능한 네트웍 스피커를 제작할 수 있다.W55RP20은 저렴한 가격에 고성능 네트웍 기능을 구현 할 수 있는 칩으로 PoE 기반 네트웍 스피커를 제작하기에 아주 적합한 솔루션 이다. PoE(Power over Ethernet) 시스템 과 W55RP20 + 오디오앰프로 네트웍 스피커 시스템 구축을 위한 핵심 로직과 하드웨어 검증 진행해 보았다. W55RP20은 저렴한 가격에 강력한 네트웍 솔루션을 제공하는 칩셋이다. 이를 활용해 실제 프로젝트에 즉시 적용할 수 있도록 [W55RP20-4032] 표준 핀맵 보드를 설계하였다.MCU: W55RP20 (RP2040 + W55..
30W PoE+(Power over Ethernet IEEE 802.3at) 모듈 보드 제작 30W PoE+(Power over Ethernet IEEE 802.3at) 모듈 보드를 제작했다. 기본적으로 GigaEthernet 을 지원하고 PoE 스플리터 기능도 할수 있도록 PoE 입력, 네트웍 출력 기능이 가능하도록 제작 했다. 12V 파워출력 가능. 필요에 따라 100M 이더넷의 경우 커넥터로 연결해 결합하는 구조도 가능하도록 했다. 30W 출력으로 파워가 필요한 네트웍 스피커 전원 용급용으로 사용하기 좋을것 같다.
[W55RP20-4032] UDP 를 이용한 96khz 고음질 음원 전송 테스트(I2S 출력) - 96khz 음원에서 TAS5825P 동작 문제 발생 및 해결 기존에 테스트 했던 TCP 기반 네트웍 스피커 테스트 코드를 수정하여 여러 스피커에 오디오 파일을 출력 할 수 있는 UDP 형태로 코드를 수정해 보자W55RP20 UDP전송률 테스트에서 17Mbps이상의 전송률을 확인 했으므로 이번에는 96khz 의 고음질 오디오도 전송 할 수 있도록 수정하였다.void ProcessCommandUDP(audio_buffer_pool_t *pool, float volume, uint32_t current_time) { if (getSn_RX_RSR(SOCK_UDP_ID) > 0) { uint8_t destip[4]; uint16_t destport; int32_t len = recvfrom(SOCK_UDP_ID, rx_buf, ..
W55RP20 Pi Pico C/C++ SDK환경에서 UDP 최대 전송률 측정 W55RP20 Arduino - Ethernet3 라이브러리를 이용한 iperf 전송률 개선 하기 에서 측정한 W55RP20의 UDP최대 전송률은 6Mbps 정도 이다. Pi Pico C/C++ SDK 환경에서 테스트 한 TCP 전송률 24Mbps와 비교하면 많이 느린것 같다. 그래서 Pi Pico C/C++ SDK를 이용하여 W55RP20의 UDP 전송률 테스트를 해보았다.우선 UDP 루프백 테스트를 해보자int32_t loopback_udps(uint8_t sn, uint8_t* buf, uint16_t port) { int32_t ret; uint16_t size, sentsize; uint8_t destip[4]; uint16_t destport; switch (g..
[W55RP20-4032] W55RP20 Arduino - Ethernet3 라이브러리를 이용한 iperf 전송률 개선 하기 W55RP20 Arduino lwIP 에서 이더넷 전송률 테스트 결과 너무 느려서 찾아보다 보니 W55RP20-Ethernet3 라이브러리가 있다. https://github.com/WIZnet-ioNIC/W55RP20-Ethernet3 W55RP20 PIO기반 라이브러리로 소트웨어 IP를 사용하는 것이 아니라 Wiznet의 하드웨어 스택을 사용할수 있어 속도가 빠르다고 한다. 우선 iperf로 TCP 전송률 테스트를 해보자. #include const uint16_t port = 5001;byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };IPAddress ip(192, 168, 1, 104);IPAddress subnet(255, 255, 254, 0); ..

반응형