[RPI-PICO] 라즈베리파이 피코로 쥬크박스 만드는 C/C++ 코드 해설

Posted on

아래와 같은 하드웨어 구성으로 만들었습니다. 라즈베리파이 피코 RP2040 1대Waveshare expander quad 1대Waveshare Pico-Audio Rev.1 (PCM5102A 채택 기종)Waveshare Pico-LCD-1.44 (ST7735S 채택 기종)SPI microSD 카드 모듈 (level shifter 없는 기종)USB-A male micro-USD male 케이블 2개 라즈베리파이 피코는 RP2040을 채택한 라즈베리파이 재단 제품이구요.Waveshare expander quad는 모두 합해 4개의 모듈을 달아쓰게 되어 있는 확장보드입니다.Waveshare Pico-Audio rev.1은 TI의 PCM5102A를 채택한 …

[RPI-PICO] Level shifter

Posted on

Level shifter는 전자회로에서 나가고 오는 전압 레벨을 핀마다 조정하는 장치를 뜻합니다. 연결된 회로마다 작동하는 전압이 다르다면 level shifter 설비를 해서 조정하게 됩니다. 제일 흔한 로직 레벨은 1.8V, 3.3V, 5V이구요. 보통 회로가 3.3V로 작동한다고 하면 서로 다른 전압을 3.3V로 조정한다는 의미가 됩니다. 다른 전압 입력이나 출력을 한다면요. 단방향과 양방향 level shifter가 존재하구요. 양방향은 또 여러 유형으로 …

[RPI-PICO] 오디오 쥬크박스 만들기 5

Posted on

라즈베리파이 피코와 오디오 모듈을 조합해서 wav 파일을 재생하는 기능을 구현하는게 가능합니다. 우선 하드웨어 설비는요. 라즈베리파이 피코1 1대오디오 모듈 1대모듈을 간편하게 다는 확장 보드 1대 (보조전원 있는 것으로)스피커 한쌍UART TO USB 1대USB 메모리 1개USB micro male, USB-A female 케이블 1개USB-A male, USB micro male 케이블 1개 중요한 작동은 (1) 외부 저장장치에서 wav 파일을 읽어오는 작동 (2) …

[RPI-PICO] 오디오 쥬크박스 만들기 4

Posted on

전에 쓴 3편을 조금 더 자세하게 보충해봅니다. 오류가 심각하게 안나도 되는게 일어나면 의지가 약화되네요. 오류없이 진행되면 하루에 다섯시간 이상 임하면서 진행을 해두는데, 이상한 오류가 겹치면 해결하느라 시간이 갑니다. 오류가 제작당시에 익히 있을법한 오류라면 그냥 임하면 되는데, 이게 그냥 일어나는 오류가 아니네요. 그래도 임해서 파악한 것들이 있어서 코드를 이리저리 검토해가면서 바꿔도 보고 추가도 해보고 있습니다. 지금까지 …

[RPI-PICO] 오디오 쥬크박스 만들기 3

Posted on

우선 WAV 파일을 라즈베리파이 피코에서 재생하려면 외부 모듈을 써서 디코딩이 가능한 하드웨어 구성을 해야 합니다. 보통 I2S 연결로 해서 I2S 방식으로 오디오 데이터를 재생합니다. 모듈마다 성능이 다른데, 제가 쓰는 Waveshare Pico-Audio 모듈은 오리지날 리비전으로 된 모듈이구요. 텍사스 인스트루먼트사의 PCM5101A를 DAC로 합니다. 즉 라즈베리파이 피코 보드 1대, 오디오 모듈 1대, 점퍼케이블만 있으면 일단 설비를 실험해볼 수 …

[RPI-PICO] picotool 재컴파일

Posted on

라즈베리파이 피코에서 picotool이 컴파일할때 필요합니다. CMake Warning (dev) at filename (message):[cmake] Calling FetchContent_Populate(picotool) is deprecated 이 메시지가 뜨고 프로젝트에 따라서는 어떤 일인지 CMake 작업도중 인터넷에서 받아와서 컴파일을 하는 것이 관찰되었네요. 안티바이러스로 인한 것처럼 보이게 딜레이가 있는 것도 겹치지만 일단 picotool을 재컴파일 하는게 필요합니다. 우선 윈도우에서 하려면요. MSYS2를 활용해서 유닉스 같은 컴파일 환경을 조성합니다. https://www.msys2.org 에 …

[RPI-PICO] UART 신호를 USB로 보내서 시리얼 모니터로 출력 메시지 확인하기

Posted on

라즈베리파이 피코를 쓰다보면 UART 신호를 USB로 보내서 시리얼 모니터로 출력 메시지를 확인해야 하는 경우가 있습니다. 이를 간편하게 하려면 UART to USB (아마존에서는 보통 USB to TTL로 검색이 되네요) 모듈을 구해서 써야 합니다. 라즈베리파이 피코에서 제공하는 uart0의 GP0과 GP1에 연결해서 쓰거나 uart1의 GP16, GP17에 연결해서 설정을 잘 해두면 외부 터미널 프로그램을 PC에서 실행해서 출력 메시지 확인이 …

[RPI-PICO] 라즈베리파이 피코를 호스트로 해서 USB MSC 모드 작동을 시켜볼때 필요한 이해 정리

Posted on

우선 하드웨어 구성을 단순화해보면요. 이런 구성이구요. 성공의 관건은 라즈베리파이 피코에 붙어 있는 USB 단자에 USB 메모리를 연결하면 작동하느냐입니다. 전원 공급을 받는 단자이기도 하고, PC와 통신하는 단자이기도 한데요. PC와 통신은 BOOTSEL 모드로 작동시키듯이 내장 플래시에 데이터를 주고받는게 되니, 이를 활용해서 USB 메모리를 달아보려고 하는데요. USB MSC (USB Mass Storage Class) 모드로 설정해서 해보려고 하네요. 하드웨어적인 지원이 …

1 2 3