본문 바로가기
3. 개발 관련/임베디드 :: 괴발개발주절주절이야기보따리

Embedded Software 개발 : `schematic to source code` - 1

by kyuho.choi 2023. 4. 19.
728x90
반응형

일이 일이다 보니 회로도를 열어 볼 일이 종종 있는데, 가끔 뉴비분들과 이야기해보면 본적이 없어 모르시는 경우가 있다.

어찌보면 당연하기도 하다. IT가 대세인지 오래고 임베디드/제조는 기피 순위가 높은 듯 하니 뭐...

코드는 봐도 회로나 datasheet 를 볼 일 자체가 없지 않겠나 싶긴하다.

직접 Bring-up 부터 진행하지 않더라도 BSP를 개발 하는 과정에서는 hardware/IP에 따라 설정/추가해야하는 경우 들이 종종 생긴다.

실제 모A P회사의 레퍼런스 보드 제조사에서도 어이없는 문제가 발생하기도 한다(특정 hardware 에 대한 reset pin default disable 등).


최소한 필요한 부분 또는 개발을 하는 방법 등만 한번 정리해보자.

준비물 : 개발을 할 때 반드시 미리 필요한 내용들이다. 이 정도만 딱딱 챙겨도 좀 친다는 소리는 들을 것이다.

  • 회로도 (schematic) : 보드 회로도이다. 간혹 회로도/실크가 부실할 경우 map 파일이 필요한 경우가 있다(top/bottom)
  • AP/Chip Manual/Datasheet : AP 매뉴얼 문서
  • Hardware(peripheral devices) Datasheet : 확인할 hw 제품관련 문서 
  • Standard specification : (필요할 경우) 해당 hw 가 정상적으로 설계 되었는지를 확인하기 위함이며 추후에는 동작이 정상적인지 확인하기 위함

온라인에서 쉽게 찾을 수 있는 beagle board 로 준비해봤다. 회로만 있어도 대충 이해가게 잘 만들었다. 역시 메이커는 메이커

 

https://beagleboard.org/static/beaglebone/BEAGLEBONE_SCHEM_A3.pdf

 

 

  • 전원 부터 확인해보자(배울 것은 어디에나 있다)

1 page 일부 발췌

 

그림판으로 대충 캡쳐한 것에 마우스로 끄적거렸다. 알아보기 힘들어도 양해하시길...

 

(1) "5VDC" 는 해당 블럭에 대한 설명(DC IN 에 대한 설명)인데, 일반 전원 코드/어댑터를 통한 전원을 입력받는 부분이다

 

(2) "NCP349" 는 해당 소자의 제품/모델명이다. 준비물에서 말한 hardware datasheet 를 찾을 때 해당 소자의 모델명으로 찾으면 된다

 

(3) "U1" 은 해당 소자가 현재 제작된 보드에 장착(SMT) 될 때의 이름이다. 무슨 말인고 하니 해당 소자의 실제 위치를 보드에서 찾으려면? silk 나 map 데이터에서 U1 을 찾으면 된다는 말씀 

 

(기타) 따로 체크 안했으나, C는 Capacitor, R은 Resistor 이다. 간단하게 전압에 따라 전류를 관리해주는 녀석이고, 저항은 적정 수준을 유지하기 위해 전류를 제어하는 녀석 정도라고 생각하면 되겠다. 자세한것은 하드웨어 형님들에게 문의 ㄱㄱ

 

  • Main 을 확인하자(AP/CHIP 내용 확인하기)

3 page AP 일부 발췌

 

 

(1) "NTRST", "JTAG_TRSTn" 좌측 블럭내에는 NTRST 로 우측 화살표(<<)로 연결된 곳은 JTAG_TRSTn 으로 표기되어있다. 여기에서 여러가지를 알 수 있다.

  • 좌/우의 이름이 다른 이유 : (좌)블럭 내의 NTRST 는 AP datasheet/Manual 에 표기된 내용이다. 해당 블럭/핀 등의 정확하고 자세한 정보를 확인할 경우 AP 매뉴얼에서 해당 내용을 검색한다. (우)JTAG_TRSTn 은 현재 보드내에서 해당 핀/시그널에 지정한 이름이다. 회로도 내에서 해당 패턴의 연결 및 내용을 찾고자 한다면, JTAG_TRSTn으로 검색해보면 된다.
  • JTAG_TRSTn : pad name 및 이름으로 유추할 때(혹은 AP 매뉴얼에서 찾아보거나), 해당 시그널은 아마도 reset 일 것이다. RST는 주로 reset 의 축약된 표기라 생각하면 되는데, 이름 뒤에 소문자 n 이 붙어 있는 의미는 관용적인 naming으로 모르면 안된다. negative 의 n 이고 해당 신호의 동작 scheme 에 대한 이야기이다. negative 신호라 함은 ACTIVE LOW Signal 을 의미하며, 대부분의 reset 은 ACTIVE LOW 로 주로 구성한다.

 

(2) GPMC_A0/... .../GPIO1_16 : 해당 chip/ap 에서 위 패드가 어떤 function을 지원 하는 지에 대한 list이다. 이는 아래 (3)과 같이 봐야 한다.

(3) GPIO1_16 : (2) 에 기술된 AP 내의 function 중 GPIO_1_16 으로 해당 패드를 보드 상에서 설계하였다.

  • 11 : 해당 pin/signal 에 대한 블럭이 본 회로도의 어느 페이지에 있는지에 대한 정보이다. 즉, 11 page 에 해당 pin 내용이 있다.

(4) 화살표 : 예를 들어 (1) 은 "AP(NTRST pad)---<< JTAG_TRSTn" 으로 연결됨을 의미하는데, 화살표의 방향이 시그널/데이터의 전송 방향이다. 즉, JTAG_TRSTn 이라는 시그널이 AP에 입력으로 작용한다 라고 이해하면 된다. 입력/출력 또는 양방향.


그래서 뭘해야 하나?

  : 위는 hardware/회로 구성의 이야기 이니 이에 대한 software 의 구성을 어떻게 해야할지 고민해야 한다. 필요한 내용을 찾으면 code 까지 따라가 볼 수 있을 것이고 아니면 차후에 말로 떼운다. ㄳㄳ


728x90
반응형

댓글