Não, você não precisa, na verdade, não pode usar SPI, UART ou I 2 C para programar o PIC. A única maneira de obter um novo programa em um PIC que não tenha um código especial carregado para esse fim (um carregador de inicialização) é usar a interface de programação de hardware externa. Eletricamente, isso significa conectar-se a Vss, MCLR, PGC e PGD. Pode ser útil ter o programador também conectado ao Vdd, mas não é necessário para esse chip, desde que o nível de Vdd seja conhecido e o programador ajustado de acordo.
A interface de hardware de baixo nível é bastante simples. PGD é a linha de dados, que é amostrada pelo PIC na borda descendente do PGC (a linha do relógio). Para colocar o PIC no modo de programação em primeiro lugar, uma chave especial de 32 bits é sincronizada em relação às bordas específicas do MCLR (embora veja a nota abaixo sobre a programação de alta tensão).
O protocolo de nível superior fica mais complicado. A maioria das coisas é feita com comandos de 6 bits, alguns dos quais são seguidos por palavras de dados de 14 bits. Você deve ler as especificações de programação cuidadosamente. Observe que a especificação de programação é um documento separado da folha de dados. Vá para a página do produto do seu PIC específico no site da Microchip e você encontrará um link para as especificações de programação na seção de documentos.
Adicionado sobre programação de alta tensão
Esses tipos de PICs têm duas maneiras de entrar no modo de programação: alta tensão (HVP) e baixa tensão (LVP). O método de alta tensão requer aumentar o MCLR para 8 e 9 volts e mantê-lo lá durante a programação. Este método sempre funciona, independentemente de quaisquer dados possíveis programados no PIC.
O método de baixa voltagem para entrar no modo de programação começa acionando o MCLR alto, depois baixo, e cronometrando em uma sequência de teclas especial de 32 bits usando PGC e PGD normalmente. A parte entrará no modo de programação na seqüência correta de teclas e permanecerá no modo de programação enquanto MCLR for mantido baixo.
O método de baixa tensão pode ser desativado por um dos bits de configuração. No entanto, o estado apagado do bit de configuração permite a programação de baixa tensão, é enviado da fábrica dessa maneira e esse bit de configuração só pode ser configurado para desabilitar o LVP se a programação tiver sido inserida com o método de alta tensão. Portanto, para o LVP não ser ativado, é necessário que tudo a seguir seja verdadeiro:
- O PIC foi programado pela última vez com um programador compatível com HVP e o modo de entrada do programa HVP foi usado.
- O arquivo HEX programado no PIC define deliberadamente o bit LVP na palavra de configuração 2 para o estado não apagado.
Como desabilitar o LVP requer uma ação deliberada e o programador certo, é provável que ele ainda esteja habilitado. Se ele foi deliberadamente desativado por algum motivo estranho, é necessário fornecer 8-9 V no MCLR para colocar o PIC no modo de programação pelo menos o tempo suficiente para executar uma exclusão em massa (que reativa o LVP).