PIC bootloader
#1
Hei, elektroonikud!
Ma olen siin juba paar päeva vaevelnud probleemi kallal, kuidas kirjutada läbi omtehtud bootloaderi PICi konfi baite. Konkreetne kivi on PIC18F46K80.
Kõik muu kirjutub ilusasti kuid konfiga tekib jama - esimene bait aardressil 0x30 00 00 on progejaga tagasi lugedes alati 00. Kommenteerides konfiala kirjutamise jupi välja, viga kaob. Muud konfibaidid kirjutatakse õigesti. Data kirjutamise puhvrisse tuleb õige (debug-väljatrükk näitab).
Toimetan nii:
- kustutan konfiala 15 baiti
- kirjutan baidid TBLWRT*+ käsuga
- sätin biti WR mis peaks käivitama kirjutamise
Enne kustutamist ja kirjutamist sean TBLPTR= 0x 30 00 00
JA ikka....
Mis loll viga see on, mida ma ei suuda näha?
PHP Kood:
clrwdt movlw 0x30 movwf TBLPTRU ; kustuta senised confibaidid clrf TBLPTRH clrf TBLPTRL BCF EECON1,EEPGD BSF EECON1,CFGS BSF EECON1,WREN ; kirjuta FLASHi, luba kirjutamine BSF EECON1,FREE ; enable Erase operation MOVLW 0x55 ; lahtilukustamine MOVWF EECON2 MOVLW 0xAA MOVWF EECON2 BSF EECON1,WR ; kustuta blokk, prose hangub seniks. nop BCF EECON1,WREN ; keela kirjutamine FLASHi ja row erase BCF EECON1,FREE clrwdt movlw 0x30 movwf TBLPTRU ; taasta aadress clrf TBLPTRH clrf TBLPTRL LFSR .2,BootloaderBuf2 ; 0E baiti conffi kirjutada, soorts siin movlw 0x0C movwf Count bldr_end3: movff POSTINC2,TABLAT TBLWT*+ clrwdt decfsz Count goto bldr_end3 clrwdt movlw 0x30 movwf TBLPTRU ; taasta aadress clrf TBLPTRH clrf TBLPTRL ; TBLRD*- BCF EECON1,EEPGD BSF EECON1,CFGS call bwr_flsh2 ; käivitab kirjutamise tsükli - 64 baiti.

Head aastavahetust !
/Felch
Vasta


Sõnumeid selles teemas
PIC bootloader - Autor: felch - 31-12-2014, 09:35 PM
RE: PIC bootloader - Autor: A.R. - 01-01-2015, 11:45 AM
RE: PIC bootloader - Autor: madis - 01-01-2015, 01:59 PM
RE: PIC bootloader - Autor: felch - 02-01-2015, 08:36 PM
RE: PIC bootloader - Autor: madis - 07-01-2015, 10:27 PM
RE: PIC bootloader - Autor: felch - 09-01-2015, 08:55 AM

Alamfoorumi hüpe:


Kasutaja, kes vaatavad seda teemat: 2 külali(st)ne