프로그래밍 초보 탈출

EFM32 예제로 배워보기

[기본.04] 모델명 (Part Number) 읽는 법과 Errata

째즈토끼 2022. 4. 28. 23:52

하드웨어 팀으로부터 회로도를 넘겨받으면 먼저 MCU를 확인하게 된다. 물론 그동안 회의 시간에 어떤 MCU를 사용할지에 대해 논의가 되었을 테지만, 대충 EFM32TG11, 64핀짜리를 사용한다는 정도였을 뿐이니까. 데이터시트의 "Ordering Information"을 보면 "Ordering Code Key"라고는 그림이 있다.

   
EFM32 저전력 32 비트 프로세서라는 의미로 지은 코드 네임
T, G Tiny Gecko
1 Series 1
1 Device Configuration 이라고하니 그런가보다 하자
B Performance. B Grade

우리는 Tiny Gecko(TG11)에 대해 공부하고 있으니 여기까지는 모두 동일하다. 앞으로 Device Configuration이나 Performance Grade가 다른 모델이 출시될 수도 있겠지만, 현재까지는 이것뿐이다. 이걸 보니 지금까지 해당 칩을 TG11이라는 이름으로 불렀는데, 정확히는 TG1이라고 불러야 맞는 것 같다. 정확히는 Tiny Gecko Series 1이다.

   
520 Feature Set Code. 이건 아주 중요한 구분으로 칩 선정시 반드시 고려 되어야할 부분이다. 하드웨어 팀에서 알아서 잘 선정하겠지만, 소프트웨어라고 손놓고 있지말고 반드시 더블 체크하자.
F Memory Type. Flash 타입 뿐이다.
128 Flash Memory Size. 64KB, 128KB 두 가지 타입이 있다.
G 온도 등급. G (-40 to +85 °C), I (-40 to +125 °C)
M Package Type. M (QFN), Q (QFP)
QFN 방식은 바닥면 전체를 VSS로 사용하기 때문에 핀으로 VSS를 빼지 않는다. VSS가 핀으로 나와있는 QFP 방식에 비해 GPIO를 2~4개 더 사용할 수 있지만.. 하드웨어 팀에서 싫어한다.
80 Pin Count.
A Chip Revision. 버그가 많은 칩이라 이것도 중요. 최신 버전은 B
R 칩 포장 형식

여기서 Feature Set Code가 중요하다. 같은 48 핀이라고 아무거나 쓰면 안 된다. 칩 선정 시 잘 검토해서 어떤 건 되고 어떤 건 안되는지 하드웨어 팀과 의논하는 것이 좋다. OPAmp를 사용하는 Analog 구성은 아주 복잡하기 때문에 ADC 입력을 어느 핀으로 넣고, DAC 출력을 어느 핀으로 빼야 하는지까지 소프트웨어에서 참견해야 할 수도 있다. 미리 확인하지 않으면 PCB를 한번 더 떠야 하는 불상사가 생길 수 있다.

Feature Set Code  
5xx 칩 내부에 DC-DC 컨버터가 포함되어 있다. 칩 선정시 저전력에 초점을 맞췄다면 이게 필요할지도.
외부에 1.8V 레귤레이터를 따로 구성하지 않아도 되므로 PCB 사이즈를 줄일 수 있다.
3xx DC-DC 컨버터가 없는 만큼, 관련 핀들이 삭제되어 사용가능한 GPIO가 5xx보다 더 많다. 
1xx DC-DC 컨버터도 없고, LCD를 지원하지 않는다. PExx 핀들보다 PCxx 핀들 위주로 장착되어 있다.
x2x 이 둘의 차이를 알 수 없다. 핀 배치는 똑같은데, 뭐가 다른 건지 설명을 찾지 못했다.
x4x
xx0 현재는 0 뿐이다.

처음 TG11 Start Kit를 받아보았을 때 당황스러웠던 점은 LCD가 붙어있는 건 좋은데, LCD 따위가 도대체 몇 핀이나 먹어버렸는지 헤아리기도 힘들 정도라는 점이었다. 이건 뭐 LCD 드라이버 칩도 아니고... 차량용 등의 주문 제작 LCD를 사용할 때나 필요할까, 보통은 LCD에 드라이버 IC가 붙어있기 때문에 쓸모가 없다.

1.8V 전압이 필요하다면 5xx를 선택하고, 드라이버 없는 LCD를 편하게(사실 기능을 사용해 보지 않아 편한지 어떤지 모른다.) 사용하려면 5xx 또는 3xx를 선택하자. 5V 아날로그 비교기 기능이 필요하다면 1xx를 쓰면 된다. PCxx가 비교기에 연결되는데, 대부분 5V 입력을 감당할 수 있도록 되어 있다. 5xx, 3xx에도 PCxx 핀이 있으니(없는 것도 있다.) 잘 비교해서 선택하시라. 64핀 이상되면 웬만한 핀은 다 있어, 별 고민이 필요 없겠지만 핀 수가 작아질수록 어려워진다. 내부의 OPAmp 연결을 어떻게 하느냐에 따라 다르겠지만, APORT라인이 8개뿐이라, OPAx_P, OPAx_N, OUTx, OUTxALT, OPAx_ALT와 같은 특수 핀들의 구성이 중요하다.

TG11은 2017년에 출시된 시리즈로 역사가 짧다면 짧다고 할 수 있다. 출시된 지 얼마 안 된(?) 만큼 안정화가 덜 된 건지, 버그가 비교적 많다. revision B에서 일부 수정되긴 했지만, 아직도 시장에서는 revision A가 많고 revision B는 보기 어렵다. 반도체 대란으로 revision B는 싹쓸이당하고, revision A만 남아 있는 걸지도...

https://www.silabs.com/documents/public/errata/efm32tg11-errata.pdf

대부분 minor 한 버그지만, 몇몇은 신경 써야 할 부분이니 짚고 넘어가 보자.

   
ADC_E228 EM2모드(Deep Sleep)에서는 ADC 샘플링 주파수가 낮아지는 버그, revision B에서 수정되었으나 revision A에서는 해결할 방법이 없다. 
CMU_E204 HFXO(외부 고속 크리스탈)를 초기화할때 발생하는 문제점이다.(번역이 어렵습니다.) 대충 안정화 루틴이 불안정하다는 얘기... revision B에서는 해결이 되었으나 revision A에서는 초기화시에 일부 레지스터 값을 직접 바꿔줘야한다. 자세한 내용은 Errata 참고.
I2C_xxx I2C 관련 버그가 꽤 있다. I2C를 사용한다면 유념하자.
TIMER_E202
WTIMER_E201
타이머로 Quadrature Decoder 기능을 사용할 때 Overflow/Underflow 시에 인터럽트가 연속적으로 계속 발생하는 버그가 있다. 해결 방법은 Errata 참고.

대충 여기까지.