개요: 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 버스 간에 자동 스위칭할 수 있다.
그림 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의 구성을 간편하게 업데이트할 수도 있다.
그림 2. MAX16031은 12V 중간 버스로부터 전원을 공급받고 I²C 버스를 통해 인 서킷 프로그래밍된다.
3.3V 보조 버스로부터 전원을 공급받고 JTAG 포트를 통해 프로그래밍되는 경우
그림 3에서 보듯이 MAX16031은 3.3V 보조 버스로부터 전원을 공급받는다. 프로그래밍은 프로그래밍 테스트 포인트로 연결되는 전용 JTAG 라인을 통해 실행된다. 이 예에서 3.3V 보조 버스는 프로그래밍이 실행되기 전에 전원이 인가되어야 한다. I²C 인터페이스는 계속 시스템 관리 µP에 연결된다.
그림 3. MAX16031은 3.3V 보조 버스로부터 전력을 공급받고 JTAG 포트를 통해 프로그래밍된다.
프로그래밍 알고리즘
MAX16031/MAX16032는 소자의 구성 파라미터를 저장하는 EEPROM을 내장하고 있다. 전원이 인가되면 EEPROM의 내용은 RAM 레지스터로 옮겨진다. RAM과 EEPROM은 모두 JTAG과 I²C 인터페이스에서 액세스할 수 있다. MAX16031/MAX16032를 올바르게 프로그래밍하려면 원하는 파라미터를 EEPROM에 프로그래밍해야 한다. 표 1의 메모리 맵을 참조한다.
표 1. MAX16031/MAX16032 메모리 맵
구성 파일
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을 추가한다.
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 웹사이트에서 다운로드할 수 있다.