Fino a pochi giorni fa ero solito lavorare in ASM sui PIC16F, tuttavia, essendo incuriosito dalla possibilità di interfacciarmi via USB al computer, ho deciso di passare ai 18F, precisamente al PIC18F2550 (tra l'altro l'unico che avevano nel negozio sotto casa
Quindi per prima cosa ho installato l'ambiente di sviluppo (MPLAB X + MAL + C18), quindi ho adattato il bootloader per il 18F4550 (presente nella MAL) cambiando il pin per la selezione della modalità (da RB4 a RB7), i fuse di config e ho rimosso la parte di segnalazione sulla PORTD, assente sul 2550.
Quindi ho compilato e programmato con un TLVP.
Provando a collegare il PIC al PC rilevo correttamente la periferica HID; anche la modifica della selezione su RB7 funziona, infatti mettendolo a VCC non si collega.
Terminato ciò ho iniziato semplicemente accendendo un led, solo che il PIC non da segni di vita!
Il codice è molto semplice:
- Codice: Seleziona tutto
void main() {
TRISAbits.RA0 = 0;
LATAbits.LATA0 = 0;
while (1){
LATAbits.LATA0 = 1;
}
}
Il bootloader è configurato per saltare alla 0x1000, così ho adattato il file del linker:
- Codice: Seleziona tutto
LIBPATH .
FILES c018i.o
FILES clib.lib
FILES p18F2550.lib
CODEPAGE NAME=bootloader START=0x0 END=0xFFF PROTECTED
CODEPAGE NAME=page START=0x1000 END=0x7FFF
CODEPAGE NAME=idlocs START=0x200000 END=0x200007 PROTECTED
CODEPAGE NAME=config START=0x300000 END=0x30000D PROTECTED
CODEPAGE NAME=devid START=0x3FFFFE END=0x3FFFFF PROTECTED
CODEPAGE NAME=eedata START=0xF00000 END=0xF000FF PROTECTED
ACCESSBANK NAME=accessram START=0x0 END=0x5F
DATABANK NAME=gpr0 START=0x60 END=0xFF
DATABANK NAME=gpr1 START=0x100 END=0x1FF
DATABANK NAME=gpr2 START=0x200 END=0x2FF
DATABANK NAME=gpr3 START=0x300 END=0x3FF
DATABANK NAME=gpr4 START=0x400 END=0x4FF PROTECTED
DATABANK NAME=gpr5 START=0x500 END=0x5FF PROTECTED
DATABANK NAME=gpr6 START=0x600 END=0x6FF PROTECTED
DATABANK NAME=gpr7 START=0x700 END=0x7FF PROTECTED
ACCESSBANK NAME=accesssfr START=0xF60 END=0xFFF PROTECTED
SECTION NAME=CONFIG ROM=config
STACK SIZE=0x100 RAM=gpr3
Quindi ho compilato (senza errori) e ho programmato il PIC con il software fornito con la MAL.
Tuttavia quando accendo il PIC (con RB7 a VCC) il led su RA0 resta spento!
Per sicurezza ho disassemblato il file hex, dove i dati iniziavano correttamente a 0x1000.
Come ulteriore conferma ho attaccato il programmatore e ho dumpato il PIC. Anche qui tutto ok: il mio firmware inizia a 0x1000.
Allora, secondo voi, dove può essere il problema?
P.S.: non so se sia utile ma lo preciso: sto lavorando su breadboard...
Grazie in anticipo.


Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)