» »

Microchip MPLAB icd 2 (pic16f876a)

Microchip MPLAB icd 2 (pic16f876a)

1mihcc ::

pozdravljeni!

zanima me če ima kdo izkušnje z mplab-om, ker mi javlja napako:
ICD0161: Verify failed (MemType = Program, Address = 0x0, Expected Val = 0xEFE8, Val Read = 0x0)...

če gdo ve kaj naj bi pomenila ta napaka?

program je napisan v C-ju, gre za preprost program za utripanje LED-ice.

HVALA

Highlag ::

Neuspešen prenos programa na čip.

Si imel nastavljen ustrezen čip, ki ga programiraš? (Na programatorju)
Never trust a computer you can't throw out a window

1mihcc ::

Na programaturju imam nastavljen PIC16F876A, katerega uporabljam.

A je možnost da MCLR, Vdd , Vss, PGC in PGD niso pravilno povezani s PIC-om?

Vse sem zvezal na protoboard, zvezal sem po navodiliih ki sem jih dobil poleg programatorja.
in po datasheetu ki velja za PIC16F876A. http://ww1.microchip.com/downloads/en/D...

Highlag ::

Kakšen programator pa imaš to?
Never trust a computer you can't throw out a window

1mihcc ::

ICD 2: http://ts4.mm.bing.net/images/thumbnail...
uporabljam USB port

vezava pride neposredno na PIC saj izhodi ICD 2 zgledajo takole:
poleg lahko vidš da je namenjeno prav za PIC16Fxxx

Highlag ::

Torej če greš v meni Configure / Device imaš izbran PIC16F876A?
ICD2 imaš pravilno skonfiguriran pod menijem Programer - USB in ustrezno nastavljeno napajanje (zunanje / notranje)

Če z ICD2 ni nič narobe in imaš ti tiste kable ustrezno priključene, je možno le še da pine, ki se uporabljao za programiranje uporabljaš za kaj drugega. S tem ko so vezani na kakšno periferijo se lahko napetosti sesedejo ali zginejo. S tem je programiranje onemogočeno.

Več idej žal nimam.
Never trust a computer you can't throw out a window

1mihcc ::

usposobil sem ga, napak mi ne javlja

"Running ICD Self Test
...Passed" (Se pravi da je vse pravilno povezano?)

program sem napisal v BASCOM-u sam, v C-ju pa sem ga ga našel na Microchipovi strani. Mislim da je pravilno napisan a ko pritisnem Program target device mi napiše na Output oknu
"Programmming succeeded" a se nič ne dogaja. (Če imam priključen programator in napajanje ter nič ne programiram, more LED-ica svetiti al ne? Meni ne sveti.)

to sem našel na microchipovi strani:

void main()
{
TRISB = 0 ; // set PORTB as OUTPUT

for(;;) // forever
{
PORTB = 0xff ; // turn all LEDs ON
Delay_ms(500) ; // wait 500 ms
PORTB = 0 ; // turn all LEDs OFF
Delay_ms(500) ; // wait 500 ms
}
} to sem našel na microchipovi strani

tole je pa v BASCOM-u:

Dim Ledica As Bit
Do
Config Portd = Output
Portd.22 = Ledica
Ledica = Not Ledica
Wait 1
Loop

Pri obeh se nič ne zgodi. Sem mogoče narobe označil Output?

Highlag ::

Hmm, kaj pa konfiguracija procesorja? Mislim na oscilator in podobne stvari. Vsi teli delay-ji so odvisni od frekvence oscilatorja. Seveda pa moraš imeti oscilator najprej pravilno konfiguriran. Imaš ene 6 tipov različnih.

Kaj imaš za oscilator in kako je zadeva priključena na PIC-a? Kako in kam imaš priključeno LED diodo?
Tudi PORT-e je potrebno konfigurirati, da delujejo ustrezno. Napisati en program je "enostavno" izbrati pravo konfiguracijo pa zahteva kar nekaj brskanja po datasheetu procesorja.
Never trust a computer you can't throw out a window

1mihcc ::

Imam oscillator hcj-30 4.000000, ki je vezan na OSC1 in OSC2 pred njim sta 2 kondenzatorja eden je na + drugi na -.
LED dioda je priključena na pin RB1 in na nulo.

Highlag ::

Oscilator je priključen narobe če te prav zastopim.
Sam kristal je priključen ok, kondenzatorja (22-33pF) pa morata biti priključena med osc1 in - (gnd) ter osc2 in - (gnd)
Diodo obrni in jo preko enega upora 5/0,02 =~ 240R veži raje na +5V.
Izhod B0 ima le šibak upor vezan proti +, bolje je, da izhod potegne LED proti 0V, ker ima v to smer večjo tokovno zmogljivost.

Izbran moraš imeti tudi HS oscilator. Configuration/Configuration bits,
Privzeto je nastavljen RC oscilator na procesorju, če ga ti v programu ne nastaviš na kakšno drugo vrednost. Žal ne C-ja ne Basoma ne poznam, da bi ti povedal kako to zgleda v sami programski kodi. V assemblerju se tem ukazom reče direktive. Z njimi se nastavi delovanje vgrajenega hardwera v procesorju.
Zgledajo približno takole: __CONFIG _CP_OFF & _WDT_OFF & PWRITE_ON & _XT_OSC microchip je tole imel v enem PDF-ju razloženo.
__CONFIG - začetek
_CP_OFF - code protect off - dovoljeno branje vpisane kode
_WDT... watch dog timer off
_XT_OSC izbran kristal
Različni procesorji imajo lahko več ali manj ukazov na voljo.
Pa še tole: Privzeto ima Procesor vključene komparatorje in analogne vhode
To je treba pred uporabo digitalnih vhodov/izhodov izključiti:
CMCON = CMCON or 0x07 ' turn off comparators
ADCON1 = ADCON1 or 0x07 ' turn off analog inputs
ADCON1.3 = 0
Nekaj podobnega bi moral imeti vpisano v tvoj program. Če so vključeni ni nujno, da kaj dobiš iz procesorja.

Pa še nekaj Program v Bascomu dela nekaj na portu D. Če imaš diodo na Portu B nisi nič naredil. Pa še pripeta koda pišeš PortD.22- kaže na pin portD 22, ki ne obstaja. 16F876A porta D sploh nima.
Never trust a computer you can't throw out a window

1mihcc ::

Najlepša hvala za pomoč.
Nekako sem ga le uspel usposobiti.

Problem je bil v kristalu ker sem vezal en kondenzator na +. Tisti program zgoraj so pisani za en drug čip ki sej jih že spremenil.

Vse deluje kot mora :)

HVALA

Highlag ::

Cool :D
Never trust a computer you can't throw out a window


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

PIC programator

Oddelek: Elektrotehnika in elektronika
255796 (641) MadMax
»

programiranje procesorja (strani: 1 2 3 48 9 10 11 )

Oddelek: Elektrotehnika in elektronika
50535055 (24456) icek
»

Zelo pocasno utripanje LED diode (strani: 1 2 )

Oddelek: Elektrotehnika in elektronika
508398 (7603) a13misko
»

PIC komunikacija

Oddelek: Elektrotehnika in elektronika
132080 (1789) maticm
»

PIC 16f84A - utripanje

Oddelek: Elektrotehnika in elektronika
222086 (1886) ql000

Več podobnih tem