Yop tout le monde,
Voici mon problème.
J'ai acheté une board dev explorer 16 avec un PIC24FJ128G010 et un pic kit 2 pour le programmer.
J'ai une erreur quand j'esseye de faire un write pour programmer mon pic : Programming failed at program memory address 0x000000 . Cette erreur est assez générique et du coup je ne trouve pas le pourquoi. J'ai lu le pic kit 2 user's manuel, la datasheet de mon pic, ... je n'ai rien trouvé.
Voici mon "cablage"
Notez que j'ai pas alimenté la board par une source extérieure comme préconisé dans le manuel du pic kit 2.
Voici mon code minimaliste juste pour tester :
Code:/* * File: main.c * Author: Administrator * * Created on 6 août 2013, 20:35 */ #include <p24fxxxx.h> #include <stdio.h> #include <stdlib.h> // PIC24FJ128GA010 Configuration Bit Settings #include <xc.h> // CONFIG2 #pragma config POSCMOD = HS // Primary Oscillator Select (HS Oscillator mode selected) #pragma config OSCIOFNC = OFF // Primary Oscillator Output Function (OSC2/CLKO/RC15 functions as CLKO (FOSC/2)) #pragma config FCKSM = CSDCMD // Clock Switching and Monitor (Clock switching and Fail-Safe Clock Monitor are disabled) #pragma config FNOSC = FRCDIV // Oscillator Select (Fast RC Oscillator with Postscaler (FRCDIV)) #pragma config IESO = ON // Internal External Switch Over Mode (IESO mode (Two-Speed Start-up) enabled) // CONFIG1 #pragma config WDTPS = PS32768 // Watchdog Timer Postscaler (1:32,768) #pragma config FWPSA = PR128 // WDT Prescaler (Prescaler ratio of 1:128) #pragma config WINDIS = OFF // Watchdog Timer Window (Windowed Watchdog Timer enabled; FWDTEN must be 1) #pragma config FWDTEN = OFF // Watchdog Timer Enable (Watchdog Timer is disabled) #pragma config ICS = PGx2 // Comm Channel Select (Emulator/debugger uses EMUC2/EMUD2) #pragma config GWRP = ON // General Code Segment Write Protect (Writes to program memory are disabled) #pragma config GCP = OFF // General Code Segment Code Protect (Code protection is disabled) #pragma config JTAGEN = OFF // JTAG Port Enable (JTAG port is disabled) #define DELAY 3906.25 //3906 = 1sec 1000 = 256 ms #define FALSE 0 #define TRUE !FALSE /* * */ int main(int argc, char** argv) { return (EXIT_SUCCESS); }
Voici les étapes que je fais :
Je lance le programme :
Il détect mon pic kit 2 , mais je doit sélectionner le modèle de mon pic à la main. Après je lis le programme de démo qui est déjà sur le PIC :
Il le lis bien, après je programme mon pic avec le programme démo qu'il vient de lire et ça fonctionne.
Après je charge mon code (fichier hex) :
L'import est ok, et quand je veux faire write, c'est là que cela ne fonctionne plus :
Est ce que quelqu'un a une idée du pourquoi cela ne fonctionne pas ? Je suis nouveau dans le monde PIC et d’ailleurs dans le monde des microcontrôleur en générale, donc esseyez de m'expliquer le plus clairement possible svp
Merci d'avance pour votre aide.
-----