FPGA를 통한 PIC 프로그래밍


9

FPGA 카드를 통해 처음으로 PIC를 프로그래밍하는 방법 (Flash에서 쓰기)이 있는지 알고 싶습니다.

PIC는 이미 FPGA에 납땜되어 있으며 제거 할 수 없습니다. PIC에 부트 로더가 없습니다. 따라서 부트 로더를 사용하여 USART / SPI / I2C 모드에서 FPGA에서 데이터를 수신 할 수 있도록 프로그래밍해야합니다.

나는 일반적으로 납땜을 풀고 PICKit과 같은 하드웨어 프로그래머에 연결하고 MPLAB와 같은 컴퓨터의 소프트웨어로 프로그래밍해야한다는 것을 알고 있지만 감당할 수는 없습니다.

MPLAB (.hex 파일)을 사용하여 부트 로더를 생성 할 수 있지만 FPGA 핀을 통해 FPGA로 전송 한 다음 PIC로 전송하려면 어떻게해야합니까?

사용 된 PIC는 Microchip PIC12F1822입니다.


2
그냥 확인 : FPGA를 다시 프로그래밍 할 수 있습니까 (즉,이 작업을 수행하는 데 필요한 모든 도구가 있습니까)?
pjc50

이것은 일종의 개발 보드입니까?
매트 영

예, FPGA를 다시 프로그래밍하는 데 필요한 모든 도구가 있습니다 (표준 USB를 통해 컴퓨터에 연결되어 있음).
Myst

1
그들은이 노력을하지 않았기 때문에 비난을 받았습니다. 사실, 저는 인턴십을하고 있으며 매우 전문가답지 않은 것으로 나타났습니다. 그래도 문제를 해결해야합니다. 패키지가 이미 완료 되었기 때문에 사용할 수없는 외부 프로그래머 이외의 다른 방법으로이 PIC를 다시 프로그래밍하는 방법을 볼 수 없습니다.
Myst

2
외부 프로그래머를 통해 프로그래밍하기 위해 일부 점퍼 와이어를 PIC의 트레이스 나 핀에 납땜 할 수있는 방법이 없습니까? FPGA를 통해 그것을 시도하는 것은 대학원 논문 프로젝트처럼 들립니다.
horta

답변:


10

아닙니다. 실제로 SPI, UART 또는 I 2 C를 사용하여 PIC를 프로그래밍 할 필요는 없습니다 . 유일한 목적 (부트 로더)로드 특수 코드가없는있는 PIC에 새로운 프로그램을 얻을 수있는 방법은 외부 하드웨어 프로그래밍 인터페이스를 사용하는 것입니다. 전기적으로 이것은 Vss, MCLR, PGC 및 PGD에 연결하는 것을 의미합니다. 프로그래머도 Vdd에 연결하는 것이 유용 할 수 있지만 Vdd 레벨을 알고 프로그래머가 그에 따라 조정하는 한이 칩에는 필요하지 않습니다.

저수준 하드웨어 인터페이스는 매우 간단합니다. PGD는 데이터 라인으로, PGC의 하강 에지 (클록 라인)에서 PIC에 의해 샘플링됩니다. 처음에 PIC를 프로그래밍 모드로 설정하기 위해 MCLR의 특정 에지와 관련하여 특수 32 비트 키가 클럭됩니다 (고전압 프로그래밍에 대해서는 아래 참고 사항 참조).

높은 수준의 프로토콜은 더 복잡해집니다. 대부분의 작업은 6 비트 명령으로 수행되며 그 중 일부에는 14 비트 데이터 워드가옵니다. 프로그래밍 사양을주의해서 읽어야합니다. 프로그래밍 사양은 데이터 시트와는 별도의 문서입니다. Microchip 웹 사이트에서 특정 PIC의 제품 페이지로 이동하면 문서 섹션에서 프로그래밍 사양에 대한 링크를 찾을 수 있습니다.

고전압 프로그래밍에 대해 추가됨

이러한 종류의 PIC에는 프로그래밍 모드로 들어가는 두 가지 방법 인 고전압 (HVP)과 저전압 (LVP)이 있습니다. 고전압 방식은 MCLR을 8 ~ 9V로 높이고 프로그래밍 중에이를 유지해야합니다. 이 방법은 PIC에 프로그래밍 된 데이터에 관계없이 항상 작동합니다.

프로그래밍 모드로 들어가는 저전압 방법은 MCLR을 하이로 구동 한 다음 로우로 구동 한 다음 PGC 및 PGD를 사용하여 특수한 32 비트 키 시퀀스로 클럭킹함으로써 시작됩니다. 부품은 올바른 키 순서에 따라 프로그래밍 모드로 들어가고 MCLR이 낮게 유지되는 한 프로그래밍 모드를 유지합니다.

저전압 방법은 구성 비트 중 하나에 의해 비활성화 될 수 있습니다. 그러나 구성 비트가 지워진 상태에서는 저전압 프로그래밍이 가능하며 공장에서 출하되는 방식으로 배송되며이 구성 비트는 고전압 방법으로 프로그래밍을 시작한 경우에만 LVP를 허용하지 않도록 설정할 수 있습니다. 따라서 LVP를 사용하지 않으려면 다음 사항이 모두 충족되어야합니다.

  1. PIC는 마지막으로 HVP 가능 프로그래머로 프로그래밍되었으며 HVP 프로그램 입력 모드가 사용되었습니다.

  2. PIC에 프로그래밍 된 HEX 파일은 의도적으로 구성 워드 2의 LVP 비트를 소거되지 않은 상태로 설정합니다.

LVP를 비활성화하려면 고의적 인 조치와 올바른 프로그래머가 필요하기 때문에 여전히 가능합니다. 이상한 이유로 고의적으로 비활성화 된 경우, 대량 삭제 (LVP를 다시 활성화)를 수행 할 수있을 정도로 PIC를 프로그래밍 모드로 설정하기 위해 MCLR에서 8-9V를 공급해야합니다.


3

PIC 프로그래밍에는 고전압이 필요합니다. 예, PIC를 "LVP"또는 저전압 프로그래밍 모드로 전환 할 수 있지만이를 위해서는 고전압 프로그래머가 필요합니다.

PIC가 이미 LVP 모드로 설정되어 있으면 FPGA에서 PIC를 쉽게 프로그래밍 할 수 있습니다. 데이터 시트에는 모두 칩을 프로그래밍하는 데 필요한 프로그래밍 파형이 포함되어 있으므로 FPGA에 자체 PIC 프로그래머 장치를 구축하는 경우가 있습니다.

그러나 PIC를 LVP 모드로 설정하지 않은 경우 프로그래밍 모드로 들어가려면 고전압 (일반적으로 10V)을 생성 하고 적시에 MCLR 핀 적용해야 합니다. 보드에 이런 종류의 하드웨어가 없다면, 트리거 될 때 FPGA에 의해 궁극적으로 제어되는 추가 하드웨어가 필요합니다.

대부분의 PIC 프로그래머는 작은 부스트 ​​레귤레이터 (전압 더블 러)를 포함하여 PIC 온보드를 사용하여 제공된 5V를 최대 10V까지 가져와 전압 레귤레이션을 관리합니다. 이들은 종종 PIC의 PWM과 PIC의 ADC 입력을 간단한 부스트 레귤레이터로 사용합니다.

공개적으로 사용 가능한 PICkit2 회로도를 살펴보십시오.


1
아니요, 고전압이 필요하지 않습니다. 모든 12F1xxx / 16F1xxx 시리즈를 포함한 대부분의 최신 부품은 키 시퀀스를 사용하여 프로그래밍 모드로 들어갈 수 있습니다. 이 시퀀스에는 고전압이 필요하지 않습니다. 구성에서 비활성화 할 수 있지만 키 방법이 활성화 된 상태로 출고됩니다. 누군가가 의도적으로 키 시퀀스 프로그램 모드 항목을 비활성화하지 않는 한 여전히 사용할 수 있어야합니다. 비활성화되어 있으면 프로그래밍 모드로 들어가려면 MCLR을 8-9V로 올려야합니다.
Olin Lathrop

키 프로그래밍 모드는 LVP 모드입니다. 구성에서 LVP = 1에 의존합니다. 해당 칩의 기본값은 LVP = 1이지만, 특정 칩에서 = 1입니까, 아니면 LVP = 0으로 이미 프로그래밍되어 있습니까? 누가 알아? 내가 말했듯이-그것이 LVP 모드에 있다면 HV가 필요하지 않습니다. 그렇지 않으면 그렇지 않습니다.
Majenko 2016 년

LVP 모드에서 프로그램하기 위해서는 FPGA에 "VHDL"을 구현해야합니까? 나는 그것을하는 방법을 정말로 생각할 수 없다. 그것을 구축하는 데 도움을 줄 수 있습니까?
Myst

아니, 난 못해 pickit2에 대한 회로도를 사용할 수 있으므로 어떤 신호가 필요한지 알 수 있습니다. pickit2 펌웨어의 소스가 사용 가능하므로 통신 방법을 알고 있습니다. 프로그래밍 데이터 시트를 사용할 수 있으므로 어떤 명령을 보내고 어떤 명령을 보내는 지 알 수 있습니다. 컴퓨터에서 펌웨어를 PIC와 통신하는 방법은 전적으로 귀하에게 달려 있습니다. FPGA에서 얼마나 많은 인텔리전스를 원하고 PC에서 얼마나 많은 정보를 원하십니까?
Majenko 2016 년

알았어 고마워 우선, PICKIT 3으로 PIC를 직접 프로그래밍하려고합니다. PICKIT (회사가 목적으로 구입 한 것)과 관련하여 PIC가 PIC의 핀에 직접 연결되기를 두려워합니다. FPGA에도 연결되어 있습니다. 일부 전압이 꺼진 FPGA를 통과하여 약간의 손상을 입을 우려가 있습니다. 그것은 정당한 관심사입니까?
Myst
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.