Skip to content
isdnetworks
Go back

데이터시트를 처음 읽을 때

칩 데이터시트를 처음 받았는데 PDF 가 300쪽이 넘었다. 처음부터 읽으려니 끝이 안 보였다.

Table of contents

Open Table of contents

순서를 바꿨다

PDF 를 앞에서부터 읽는 대신 필요한 것부터 찾았다.

1. 블록도        칩 안에 뭐가 있는지 그림 한 장
2. 핀 배치       어느 핀이 무엇인지
3. 동작 모드     어떤 상태를 갖고 어떻게 전이하는지
4. 쓸 기능의 절   전체 중 몇 쪽뿐이다
5. 레지스터 맵    실제 코드를 쓸 때 본다

Block Diagram 은 대개 앞쪽에 있고 이것을 보면 전체 구조가 잡힌다. 핀 배치는 회로를 볼 때 필요하다.

동작 모드를 놓치면 레지스터 맵이 안 읽힌다. 레지스터마다 이 모드에서만 유효하다가 붙어 있는데 모드를 모르면 그것이 무슨 말인지 모른다.

이런 문서는 처음부터 끝까지 읽는 방식으로 만들어져 있지 않고 필요한 것을 찾아 읽는 참조용이다.

각주를 봤다

레지스터 표를 볼 때 표만 보고 넘어가면 안 됐다. 표 아래 작은 글씨로 조건이 붙어 있다.

이 값은 특정 모드에서만 유효하다
이 핀은 다른 기능과 공유한다
이 설정 후 N 클럭 대기가 필요하다

이것이 실제로 동작을 정하고 레지스터 값보다 각주가 중요한 경우가 많았다.

표는 무엇이 있는지를 말하고 각주는 언제 그것이 통하는지를 말한다. 각주를 안 읽고 코드를 짜면 동작이 안 하고 이유도 안 보인다.

전기적 특성을 봤다

소프트웨어만 하다 보니 Electrical Characteristics 절을 넘길 뻔했다.

동작 전압 범위
소비 전류
입출력 레벨
타이밍 (설정·유지 시간)

마지막 타이밍이 코드에 영향을 준다. GPIO 를 바꾸고 얼마나 기다려야 하는지가 여기 있다.

너무 빨리 읽으면 안정 전에 읽는 것이고 그러면 값이 틀린다.

에라타와 예제 코드

데이터시트와 별도로 Errata 가 있었다. 문서에 A 라고 돼 있으나 실제로는 B 라는 목록이다.

데이터시트대로 했는데 안 되면 Errata 부터 본다. 이것을 몰라서 하루를 날린 적이 있는데 문서대로 설정했는데 안 되니까 배선을 의심하고 코드를 의심했고 Errata 에 그 레지스터가 적혀 있었다.

새 칩을 받으면 Errata 부터 확인하는 습관이 생겼다.

벤더가 주는 C 예제 코드와도 대조했다. 문서와 예제가 다르면 예제가 맞을 확률이 높은데 예제는 실제로 돌려 본 것이기 때문이다.

다만 예제가 오래된 판 기준일 수 있어서 버전을 확인하고 봤다.

검증 — 읽은 범위의 기록

PDF 300쪽을 다 읽지 않았으니 읽은 부분과 안 읽은 부분을 적어 뒀다.

[읽음]
  §3 동작 모드
  §7 통신 인터페이스
  §11 레지스터 (통신 관련만)

[안 읽음]
  §5 아날로그 기능 (안 씀)
  §9 저전력 모드 (나중에 필요할 수 있음)

나중에 다른 기능을 쓸 때 어디를 봐야 하는지 바로 안다.

알아낸 것들도 별도 Markdown 메모로 정리했다. 데이터시트에서 찾기 어려웠던 것들이다.

- 이 레지스터는 IDLE 모드에서만 읽힌다 (§3.4 각주)
- 설정 후 10 클럭 대기 필요 (§7.2 타이밍 표)
- 에라타: REG_X 초기값이 문서와 다름

다음에 이 칩을 쓸 때 300쪽이 아니라 이 메모부터 본다.

정리


Share this post on:

Previous Post
지우기 전에 대안이 있는지 봤다
Next Post
세 집계가 같은 구간을 다시 셌다