progPDI 2.18 KB
Programmation PDI
La programmation PDI se fait sur une interface physique spécifique composé de 2 fils, PDI_DATA pour une communication série bidirectionnelle, et PDI_CLK pour l'horloge afin de synchroniser la communication. Le protocole, quant à lui, repose sur des trames de 12bits. Il est existe trois types de trames DATA, IDLE et BREAK. la trame DATA est composé d'un bit de démarrage (0), 8 bits de données, un bit de parité pair, 2 bits fin (11).
	Les trames IDLE et BREAK ne respectent pas exactement cette structure. BREAK est une trame composé d'un minimum de 12 "0". Dans son usage, cette trame ne peut être envoyé que par le programmeur, et est attendu par le microcontroleur en cas de collision. IDLE est est une trame composé d'un minimum de 12 "1", mais dans son usage, un ou plusieurs bits "1" servent plus de temporisation entre trames pour s'assurer que le controleur PDI ait le temps de faire son travail. De plus, suite à certaines commandes qui supposent une réponse de la part du controlleur PDI, il est nécessaire d'observer un temps de sécurité. Ce temps de sécurité configurable doit donc être rempli par entre 2 et 128 (défaut) "1".

	Les trames DATA peuvent être classées en trois catégories : les instructions, les compléments d'instructions, et les retours d'instructions.
Il existe 8 instructions dans le protocole PDI : [PDI instruction set.png]

REPEAT
trame complète: 1° octet suivi de size B octets indiquant le nombre de répétition.
Cette instruction permet de répéter un nombre (donné par les octets suivant le premier) de fois l'instruction qui la succédera. Attention l'instruction sera répétée avec les mêmes opérandes.

KEY
trame complète: 1°octet suivi d'un octet contenant la clé pour dévérouiller l'accès au controlleur NVM (voir ci après).

LD/ST
trame complète: 1° octet suivi (d'un retour -pour LD-) de size A octets

LDS/STS
trame complète: 1°octet suivi de size A octets pour l'adresse à lire ou écrire, suivi (d'un retour -pour LDS-) de size B octets.

LDCS/STCS
trame complète: 1° octet suivi (d'un retour -pour LDCS-) de size 1 octet






Les instructions commençant par LD (load) supposent un retour.
Les instructions ST et LD