stm323 [STM32+ADC+DMA] 정리 #1 ADC는 항상 나에게 어려운 부분이었다. 디지털 처리는 0,1에서 계산으로 시작하지만 아날로그 신호는 기준전압부터 해서 주파수, 레졸루션등 알아야 할 것이 많았다.최근 진행한 프로젝트에서 STM32로 ADC를 연속적으로 처리해야 해서 DMA로 처리해야 한다는 걸 알았고 여러 가지 시행착오를 겪은 일은 정리해 보기로 했다. ADC란? 쉽게 말하면 입력핀으로 입력되는 신호(예 : 전압, Wave 파형)를 0 또는 1로 전환하는 게 아닌 8비트 ~16비트의 값으로 전환하는 것을 말한다. 8비트 기준으로 볼 때 0은 0볼드, 255값은 3볼드의 값으로 바꾸는 것이다. 물론 255일 때의 값은 3V가 아니라 기준전압에 의해 바뀐다. 지금은 3V라고 알고 있자. 배터리 전압을 ADC로 받으면 남은 배터리 용량이 .. 2024. 8. 17. 펌웨어와 커스텀 부트로더(SRAM과 보안,MPU) 펌웨어로 개발을 하다보면 부트로더의 개발은 선택이 아닌 필수가 된다. 부트로더는 보통 하드웨어 또는 환경설정( 예:맥어드레스..) 초기화를 하거나 프로그램 다운로드 및 업데이트를 진행한다. 내가 그동안 개발했던 펌웨어 부트로더는 Romless cpu+ Nor flash(또는 spi flash) + sdram 인 케이스, 내부플래쉬에서 점프하는 가장 맘편한 케이스 그리고 지금하는 qspi flash에서 점프하는 케이스가 있다. Romless cpu+ Nor flash(또는 spi flash) + sdram 인 케이스는 NXP의 lpc1820으로 개발한 경우였다. spi flash로 부팅하고 sdram에 메인 프로그램을 복사한 뒤, vector와 스택포인터만 변경해 주면 문제없이 점프를 했다. 내부 .. 2022. 10. 14. Helix MP3 Decoder 와 ID3 처리 요즘은 원만한 디바이스에도 리눅스가 포팅되기에 오디오나 비디오 코덱 적용이 어렵지 않다. 하지만 아직도 펌웨어로 오디오 코덱을 개발해야 하는 경우도 있고, MP3를 재생하기 위해 Helix MP3 Decoder를 포팅하여 사용했다. https://github.com/ultraembedded/libhelix-mp3 포팅방법에 대해서는 그다지 복잡하지 않고, 인터넷에 샘플 소스가 많아 찾기 어렵지 않으며 http://ww1.microchip.com/downloads/en/Appnotes/01367A.pdf https://www.silabs.com/documents/public/application-notes/an1112-efm32-helix-mp3-decoder.pdf문서들을 참조하면 좋다. 또 MP3 대한.. 2022. 1. 18. 이전 1 다음