앞의 글에서도 얘기했듯이 Cortex-M에 대한 경험이 없기 때문에 어떤 칩을 선정하는 것이 좋을지 전혀 정보가 없다. 그냥 인터넷에서 검색해 본 결과 STMicroelectronics사 제품이 대세인것 같아 보이고, 그 중에서 Cortex-M3 기반의 STM32F103에 대한 내용이 대부분인것 같아 ebay에서 STM32F103R8T6이라는 칩을 구매했다.컨버터 PCB에 위의 칩을 조립해서 다음과 같이 만들었다. 그러나 안타깝게도 아무리해도 프로그래머 장비와 연동이 되지 않아 어쩔수 없이 상용으로 나오는 개발보드를 다시 구매하게 되었다. 역시 경험도 없고 하드웨어 개발자가 아니라 ㅠㅠ...당연히 컴퓨터에서 만들어진 실행파일을 보드에 내리기 위한 프로그래머 장비도 있어야겠다.위의 그림은 ST-link/v..
임베디드 프로그램 개발을 처음 시작하는 이들에게는 AVR이 적당한 MCU라고 생각한다. 그 중에서도 ATmega 계열의 8비트 MCU는 임베디드 시스템에서 사용되는 기본 기능을 이해하고 동작 시켜 확인해보기 위한 최선의 선택이라고 믿는다.하지만, 8비트 MCU라는 구조는 분명한 한계일 수 있고, 실전에서 사용하기에도 여러가지로 불리한 점이 있다.특히 최근에 ARM의 Cortex-M을 적용한 칩들이 AVR과의 가격 경쟁에서도 우위를 점하고 있어 MCU 시장의 대세는 완전히 ARM으로 기울어 졌다고 볼 수 있다.따라서, 임베디드 시스템 개발자라면 반드시 ARM MCU를 다룰줄 알아야 하겠다.원래는 Cortex-M 전용의 블로그를 따로 만들어서 글들을 작성하려고 하였으나, 생각해 보니 쓸만한 내용들이 그리 많..
앞의 글에서 구성한 회로가 제대로 연결 되었는지 확인해 보기 위하여 nRF24L01 안에 있는 레지스터들의 default 값(reset register value)을 한번 읽어 보기로 하겠다.nRF24L01 모듈은 AVR과 SPI로 연결되어 있으며, 이미 이전에 여러 프로젝트에서 SPI통신을 해보았기 때문에 큰 어려움 없이 nRF24L01의 레지스터 값들을 읽어 올 수 있을것이다. /*============================================================================*/ #define PORTB_REG 0x23 struct port { uint8_t pin; uint8_t ddr; uint8_t port; }; volatile struct port *..