Unii dintre voi aveti probleme cu programarea PIC-ului folosind schema de pe site + ICPROG
M-am mai documentat despre acest subiect, si am gasit urmatoarele chestii:
E diferenta mare dintre 16F628 si 16F628A primul are memorie nevolatila de tip EPROM, celalalt FLASH.
Este NECESAR ca atunci cand programati PIC-ul sa aveti intre 4.5V si 5.5V intre pinii VDD si VSS ai PIC-ului. O tensiune mai mica nu il veti putea programa:
http://web.mit.edu/6.115/www/datasheets/16f628_errata.pdf
Programatorul trebuie selectata JDM (programare prin seriala) in principiu setarile in Masina Virtuala a ICPROG sunt ok
Ce vedeti acolo ca Oscilator este cuvantul de configuratie care se pune in PIC. In principiu cand restartati PIC-ul acesta isi citeste acest cuvant si alege de ex un Oscilator intern/extern voi aveti unul extern. Acest cuvant de configurare este GENERAT de compilatorul folosit Proteus,CCCpic, MPLAB etc si ICPROG-ul il incarca cand incarati hexul. DECI nu trebuie sa schimbati de acolo nimic.
IMPORTANT - de ce nu va merge:
Se pare ca la PIC in functie de revizia de PIC(deci cei care ati cumparat acum PIC16F628A aveti probleme) exista 2 Moduri de Programare a memoriei nevolatile:
1) High Voltage Programming - cea pentru care e schema care va obliga sa aveti +12V la Pinul de MCLR al PIC-ului.
Ca sa aveti 12V trebuie ca seriala sa scoata 12V. Se pare ca mai nou plaicle de baza scot +5V - optiune pe care CRED ca o puteti schimba din BIOS
2)Low Voltage Programing - suportata de 16F628A pe care o vom folosi
Necesita doar +5V pe pinii MCLR ai PICului. Ca PIC-ul sa foloseasca aceasta metoda de programare trebuie sa legati PIN-ul de PGM la masa.
Este descris si aici in documentatia ICPROG http://www.ic-prog.com/devices.html. Cautati 16F628A
DECI trebuie legat PIN-ul PGM al PIC-ul la Ground. La 16F628A acesta este PIN-ul 10 RB4/PGM . Folositi o sarma sa-l legati la masa doar cand programati daca era folosit de de schema voasta. Cand rulati il scoateti de la masa si il lasati in aer/il folositi la ce face placa voastra. Nu strica sa pune-ti o rezitenta de 100K intre PIN si masa. Vedeti sa aveti deja pe schema inainte de butonul de RESET. ORICUM LEGATI PINul 10(PGM) LA MASA!!!
Debugging JDM Programmer
- Scoate-ti PIC-ul din slot
- Conectati placa la seriala calculaotului cu ICPROG deschis si configurat cu progrmatorul JDM - cum aveti in masina virtuala
- Masurati pin 5(-) si pin 14(+) trebuie sa aveti putin sub 5V
- Masurati voltajul intre pin 5(-) si pin 13(+) trebuie sa aveti intre -2V si -2.5V
- ICPROG->Setting->Hardware Check->Enable Data Out - cand o apasati casuta Data In trebuie sa devina si ea ticked. Masurati din nou 5-13 acum trebuie sa aveti intre 4.5V si 5V
- Masurati voltajul intre pin 5(-) si pin 12(+) trebuie sa aveti intre -0.5V si -0.8V
- ICPROG->Setting->Hardware Check->Enable Clock - o apasati. Masurati din nou 5-12 acum trebuie sa aveti putin peste 5V
- ICPROG->Setting->Hardware Check->Enable MCLR - o apasati. Masurati pin 5(-) si pin 4(+) trebuie sa aveti +12V