Forum » Programiranje » 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
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)
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...
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...
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
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.
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?
"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.
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.
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.
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
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
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | PIC programatorOddelek: Elektrotehnika in elektronika | 5923 (768) | MadMax |
» | programiranje procesorja (strani: 1 2 3 4 … 8 9 10 11 )Oddelek: Elektrotehnika in elektronika | 36476 (25877) | icek |
» | Zelo pocasno utripanje LED diode (strani: 1 2 )Oddelek: Elektrotehnika in elektronika | 8681 (7886) | a13misko |
» | PIC komunikacijaOddelek: Elektrotehnika in elektronika | 2143 (1852) | maticm |
» | PIC 16f84A - utripanjeOddelek: Elektrotehnika in elektronika | 2202 (2002) | ql000 |