✍️ 바코드 → IC 쓰기(Write Word) 설정 가이드
배터리팩 라벨의 바코드 문자열 일부를 잘라 IC 레지스터에 그대로 기록하는 기능의 동작 원리와, 실제 설정 프로그램에서 값을 채우는 방법을 정리했습니다.
⚠️ 이 페이지는 2바이트(1 Word) 수치 필드(제조일자·시리얼 번호 등)에 바코드 일부 구간을 넣는 경우를 다룹니다. 바코드 문자열 전체를 IC에 기록하려면 바코드 문자열 → IC 기록 가이드(Write Block)를 참고하세요 — 실제 등록 사례는 이쪽이 더 많습니다.
1. 실제 데이터 예시
아래 예시는 칩셋 RAJ240045(CHIPSET_ID=362)에 실제로 등록되어 있는 설정입니다. 클릭하면 편집 화면 재현 페이지로 이동합니다.
| 칩셋 | 복합 명령 | 바로가기 |
|---|---|---|
| 362 (RAJ240045) | Pack Date_W | 에디터 화면 보기 → |
| 362 (RAJ240045) | Pack Serial Number_W | 에디터 화면 보기 → |
2. 설정 절차
- 데이터 소스 등록 —
TB_WRITE_ITEM_BASIC에 해당 칩셋의WRITE_NAME='BARCODE'항목이 있는지 확인합니다(없으면 새 WRITE_ID로 추가). 이 값이 편집 화면의 Data 드롭다운 후보가 됩니다. - 복합 명령(Union Code) 생성 — 예:
Pack Date_W처럼 이름을 붙여 새 항목을 만듭니다. - Basic Code 상세 스텝 추가
- Basic Code =
[9] Write Word - Addr = IC에 실제로 쓸 레지스터 주소 (예:
0x1B=ManufactureDate,0x1C=SerialNumber — 데이터시트로 최종 확인) - Class =
1: Write, Unit =1: Word, Type =1: HEX, Judge =6: None - Data =
[3] BARCODE(1번에서 등록한 데이터 소스 선택) - Place / Size = 바코드 문자열에서 잘라낼 시작 위치 / 길이
- Basic Code =
- (선택) Delay 스텝 추가 — IC 내부 쓰기(EEPROM 반영) 완료 대기용 (예: 500ms).
- 실행 시 동작 — 스캔된 바코드 문자열에서
Place~Place+Size구간을 추출 →Type에 따라 변환 →Cmd(0x60) + Addr조합으로 SMBus/I2C Write Word 트랜잭션을 IC에 전송합니다.
3. CODE_DEFINE 인코더 / 디코더
편집 화면의 Class·Unit·Type·Judge·Place·Size 7개 값은 TB_UNION_CODE_DTL.CODE_DEFINE 8자리 문자열 하나로 저장됩니다: [Class 1][Unit 1][Type 1][Judge 1][Place 2][Size 2]
🔎 디코더 (코드 → 의미)
🧮 인코더 (의미 → 코드)
필드별 코드 의미 참고표
| 필드 | 코드값 | 의미 | 신뢰도 |
|---|---|---|---|
| class | 0 |
Read | 추정(미확정) |
| class | 1 |
Write | 확인됨 |
| class | 2 |
Analog/제어 | 추정(미확정) |
| class | 4 |
Other | 확인됨 |
| class | 5 |
외부계측장비 | 추정(미확정) |
| class | N |
해당없음 | 추정(미확정) |
| unit | 0 |
Delay | 확인됨 |
| unit | 1 |
Word | 확인됨 |
| unit | 2 |
Block | 추정(미확정) |
| unit | 3 |
Block(대) | 추정(미확정) |
| unit | N |
해당없음 | 추정(미확정) |
| type | 1 |
HEX | 확인됨 |
| type | N |
해당없음 | 추정(미확정) |
| judge | 6 |
None | 확인됨 |
| judge | N |
해당없음 | 추정(미확정) |
⚠️ 표에 없는 코드값은 아직 의미가 확인되지 않은 값입니다("미확인").