ENGLISH 简体中文 日本語 한국어  

    로그인 | 회원가입 


   
 
키워드나 부품번호를 입력해주세요    




애플리케이션 노트 4283

MAX16031/MAX16032 EEPROM 기반 시스템 모니터의 인 서킷 프로그래밍

저자: Eric Schlaepfer

개요: MAX16031/MAX16032 시스템 모니터는 애플리케이션 회로 보드에 납땜 처리 후 프로그래밍할 수 있다. 이는 소자를 프로그래밍하지 않은 상태로 실장해야 하며, 생산 테스트 시에 최신 버전의 구성 정보를 소자에 쓸 수 있다는 것을 의미한다. 몇 가지 간단한 조치로 애플리케이션 회로는 프로그래밍 하드웨어에서 I²C나 JTAG 버스 라인을 공유하도록 할 수 있으며 프로그래밍 중에 소자에 전력을 공급할 수 있다. I²C 버스와 JTAG 버스에 모두 프로그래밍 알고리즘이 제공된다.

MAX16031/MAX16032 EEPROM 기반 시스템 매니저는 8개의 전원, 3개의 온도 센서, 1개의 전류를 모니터링하는 시스템 감시 소자이다. 각 파라미터는 4개의 서로 다른 임계값과 비교되며 몇 개의 오류 출력은 다양한 조건에서 어서트되도록 구성할 수 있다.

이들 모니터는 SMBus™ 호환 I²C 인터페이스와 JTAG 인터페이스를 제공하며, 두 인터페이스는 모든 소자 레지스터에 액세스하고 내장된 구성 EEPROM을 프로그래밍할 수 있다. 몇 가지 간단한 지침을 수행하면 MAX16031/MAX16032는 인서킷 프로그래밍할 수 있다.

전원 공급

MAX16031/MAX16032는 3V ~ 14V의 전원 전압 범위를 갖는다. 일반적인 애플리케이션은 VCC를 12V 중간 버스 전압이나 3.3V 보조 전원에 연결한다.

부분적으로 전원이 제공되는 보드에서 이 소자들을 프로그래밍할 수 있다. 예를 들어 다른 전압 없이 3.3V 보조 전압을 인가하거나 12V 중간 버스 전압을 인가할 수 있다. 이 때 모든 다운스트림 전원은 오프 상태가 되어야 한다. 다른 방법으로는 흔히 이용되는 듀얼 다이오드를 사용하여 프로그래밍 커넥터로부터 전원을 공급하는 것이다. 이 방법은 다이오드에 의해 전압 강하가 발생하기 때문에 MAX16031/MAX16032가 12V 버스로부터 전원을 공급받을 때 사용하는 것이 가장 좋다.

버스 공유

정상 동작 중에 마이크로프로세서 (µP) 이외의 소자가 MAX16031/MAX16032와 통신해야할 때 문제가 발생할 수 있다. 한 예로 시스템 감시 µP가 MAX16031/MAX16032의 ADC 읽기에 액세스해야 하는 경우를 들 수 있다. 보드에 전원이 공급되지 않거나 부분적으로 전원이 제공될 때 MAX16031/MAX16032를 프로그래밍할 경우 I²C나 JTAG 버스에 연결된 다른 소자가 간섭할 수 있다. 가장 손쉬운 해결책은 MAX16031/MAX16032를 JTAG 인터페이스를 통해 프로그래밍하고 감시 µP를 I²C 인터페이스에 연결하는 것이다. µP가 완전한 오픈 드레인 I²C 버스 I/O(즉 ESD 다이오드-VCC가 없는 핀)를 지원하고 풀 업 저항이 충분히 크다면 I²C 버스를 프로그래밍과 정상 동작에서 모두 공유할 수 있다. µP의 I²C 버스 라인이 오픈 드레인이 아닌 경우에는 ESD 다이오드가 버스 라인을 클램핑하고 프로그래밍과 간섭한다. JTAG을 공유하려면 JTAG 버스 멀티플렉서가 3.3V에서 전원을 공급받아야 할 수도 있다.

시스템 µP가 완전한 오픈 드레인 I²C 버스 라인을 갖지 않을 경우 그림 1과 같은 회로를 사용하여 µP와 프로그래밍 I²C 버스 간에 자동 스위칭할 수 있다.

Figure 1. The MAX16031 shares its I²C bus through the MAX4525 multiplexer/switch.
그림 1. MAX16031은 MAX4525 멀티플렉서/스위치를 통해 I²C 버스를 공유한다.

그림 1의 MAX4525 멀티플렉서는 시스템 µP에 연결된 I²C와 프로그래밍 테스트 포인트에 연결된 I²C 사이를 스위칭한다. 스위치는 시스템 µP의 VCC에 의해 제어된다. VCC가 인가되지 않고 12V가 인가될 경우 스위치는 I²C를 프로그래밍 테스트 포인트에 연결한다. 일단 VCC가 인가되면 스위치는 I²C를 시스템 µP에 연결한다. 프로그래밍 모드에서 테스트 포인트를 연결하는 프로그래밍 하드웨어는 적절한 I²C 풀 업 저항을 제공해야 한다.

애플리케이션 회로의 예

다음 그림은 인 서킷 프로그래밍을 위해 설계된 두 가지의 다른 애플리케이션 회로를 보여준다.

12V 중간 버스로부터 전원을 공급받고 I²C 버스를 통해 프로그래밍되는 경우

그림 2에서 MAX16031은 12V 중간 버스로부터 전력을 공급받는다. 듀얼 다이오드를 통해 전력이 프로그래밍 커넥터에 의해 공급될 수 있도록 하고, 이는 또한 MAX16031의 I²C 라인에 연결된다. 버스는 µP에 전원이 공급되지 않을 때에도 버스를 로드하지 않는 오픈 드레인 I²C 출력을 갖는 온 보드 시스템 관리 µP로 공유된다. 외부 프로그래머에 대한 대안으로 시스템 관리 µP는 또한 초기 파워 업 시 MAX16031을 프로그래밍할 수 있다. µP를 이용하여 특수 하드웨어 없이 MAX16031의 구성을 간편하게 업데이트할 수도 있다.

Figure 2. The MAX16031 is powered from a 12V intermediate bus and programmed in-circuit through the I²C bus.
그림 2. MAX16031은 12V 중간 버스로부터 전원을 공급받고 I²C 버스를 통해 인 서킷 프로그래밍된다.

3.3V 보조 버스로부터 전원을 공급받고 JTAG 포트를 통해 프로그래밍되는 경우

그림 3에서 보듯이 MAX16031은 3.3V 보조 버스로부터 전원을 공급받는다. 프로그래밍은 프로그래밍 테스트 포인트로 연결되는 전용 JTAG 라인을 통해 실행된다. 이 예에서 3.3V 보조 버스는 프로그래밍이 실행되기 전에 전원이 인가되어야 한다. I²C 인터페이스는 계속 시스템 관리 µP에 연결된다.

Figure 3. The MAX16031 is powered from a 3.3V auxiliary bus and programmed through the JTAG port.
그림 3. MAX16031은 3.3V 보조 버스로부터 전력을 공급받고 JTAG 포트를 통해 프로그래밍된다.

프로그래밍 알고리즘

MAX16031/MAX16032는 소자의 구성 파라미터를 저장하는 EEPROM을 내장하고 있다. 전원이 인가되면 EEPROM의 내용은 RAM 레지스터로 옮겨진다. RAM과 EEPROM은 모두 JTAG과 I²C 인터페이스에서 액세스할 수 있다. MAX16031/MAX16032를 올바르게 프로그래밍하려면 원하는 파라미터를 EEPROM에 프로그래밍해야 한다. 표 1의 메모리 맵을 참조한다.

표 1. MAX16031/MAX16032 메모리 맵
Table 1. MAX16031/MAX16032 Memory Map

구성 파일

MAX16031 EV 킷 (EV kit) 소프트웨어는 두 종류의 구성 파일을 제공한다. 하나는 System Save Configuration...을 선택할 때 생성되는 텍스트 파일로 사람이 읽을 수 있으며 I²C 프로그래밍을 위해 사용할 수 있다. 두 번째는 System Save as SVF...를 선택할 때 생성되는 파일로, 이 파일은 SVF (serial vector format) 형식으로 저장되며 많은 PLD 벤더에서 JTAG 프로그래밍에 사용하고 있다.

텍스트 파일 형식은 다음과 같다.
[Registers]
register number=register value
.
.
.
모든 값은 십진수이다. 레지스터 범위는 23에서 98까지 이다. 이들 어드레스는 RAM 레지스터에 해당되나 EEPROM 어드레스에는 해당되지 않는다. EEPROM 어드레스를 얻으려면 RAM 레지스터 어드레스에 128을 추가한다.

SVF 파일 형식은 Serial Vector Format Specification에 자세히 설명되어 있다(PDF, 85.2kB).

I²C 프로그래밍 절차

MAX16031/MAX16032의 EEPROM 구성 메모리를 프로그래밍하려면 먼저 레지스터 r5Fh[0]의 구성 록 (lock) 비트가 영(zero)인지 확인한다. 영이 아닌 경우 해당 비트에 '1'을 써서 소거한다. EEPROM에 쓰려면 시작 어드레스(97h)를 로드하고 일련의 블록-쓰기 명령(I²C)을 전송하거나 명령(JTAG)을 쓴다. I²C 프로토콜에 대한 자세한 내용은 MAX16031/MAX16032 데이터 시트를 참조한다.

일반적인 EEPROM 프로그래밍 과정을 위한 수도코드(Pseudocode)는 다음과 같다.
SendByte(5Fh) // Check lock bit
If ReadByte() & 1 == 1 Then
WriteByte(5Fh, 01h) // Clear lock bit if needed
Loop Address from 97h to DFh 
SendByte(Address) // Load address
WriteBlock(Data, 10h) // Write a block of 16 bytes
Wait(16 * 11 milliseconds) // Wait for programming
SendByte(Address)
ReadBlock(DataRead, 10h) // Read back data block
If DataRead != Data Then 
RepeatCount = RepeatCount + 1
If RepeatCount == 3 Then
Fail
Else
RepeatCount = 0
Address = Address + 10h // Advance to next block
Success

JTAG 프로그래밍 절차

표준 3rd party JTAG 툴, MAX16031 BSDL 파일, 그리고 EV 킷 소프트웨어에 의해 생성된 SVF 데이터 파일을 사용하여 JTAG 프로그래밍 케이블 또는 인 서킷 PCB 테스터에서 MAX16031을 프로그래밍한다. BSDL 파일은 Maxim 웹사이트에서 다운로드할 수 있다.



SMBus는 Intel Corporation의 상표이다.


관련 부품  APP 4283: Nov 07, 2008
MAX16031 비휘발성 오류 메모리가 내장된 EEPROM 기반 시스템 모니터 전체 데이터 시트
(PDF, 396kB)
무료 샘플
MAX16032 비휘발성 오류 메모리가 내장된 EEPROM 기반 시스템 모니터 전체 데이터 시트
(PDF, 396kB)
무료 샘플

자동 업데이트
관심 분야의 애플리케이션 노트가 나올 때 자동으로 업데이트를 원하십니까? 그렇다면 EE-Mail™을 신청하십시오.


We Want Your Feedback!



의견을 보내주세요!
위 내용이 도움이 되셨나요?
여러분의 의견을 기다립니다 — Maxim은 보내주신 정정이나 제안사항을 반영하고 있습니다. 이 페이지를 평가하고 의견을 보내주십시오.

 

다운로드, PDF 형식다운로드, PDF 형식 (67kB)
 AN4283, AN 4283, APP4283, Appnote4283, Appnote 4283

        •         •         •     개인정보보호 정책     •     법적 고지

    Copyright © 2009 by Maxim Integrated Products