icd2

Miroslav Draxal evik na volny.cz
Sobota Prosinec 31 11:02:34 CET 2011


1/ vymažu celý pic   .. OK
2/ verifi target device is erased .. OK
3/ ručně zakážu v konfiguraci WDT + LVP disable  .. OK
4/ nahodim PGM do HI
5/ zaškrtni checkbox pro auto konfiguraci ze zdrojáku
6/ kompilace .. ok  ( bity v konfiguraci ) OK
7/ vypálit program

A teď: Program vypálen,konfig bity, modul pro spojení s ICD2 a má proběhnout
verifikace v tu chvíli vyběhne hláška, že mám zkontrolovat připojení s pic.
Totálně vymrtvenej pic. Až po PGM do lo se to rozběhne a jakmile přečtu
celej obsah pice, tak je to kompletně vynulovaný včetně konfig bitu a LVP je
enabled. Bordel tam dělá ten PGM. Jakmile je v lo, tak vše jak má být.

Kolem picu nejsem žádný guru, ale lama taky ne. Jsem si zpoměl, že někdy
kolem roku 2000 se mi podobné nepochopitelné věci děli při programování s
picstarem. Byl tam bug v mplabu. 

Jakou máš verzi kompilátoru? Prosím zkus tam místo 0x08 hodit RCIO co to
přeloží do konfiguračního slova. Díky Míra

-----Original Message-----
From: hw-list-bounces na list.hw.cz [mailto:hw-list-bounces na list.hw.cz] On
Behalf Of j s
Sent: Saturday, December 31, 2011 9:57 AM
To: HW-news
Subject: Re: icd2

Program som chcel na to, aby som videl ako budu nastavene konfiguracne bity
- ci nahodou nie je problem v tom. Tie vyzeraju byt OK, hoci nemam rovnaku
verzi kompilatora... Ale to, ci ich kompialtor generuje spravne sa da overit
v editore konfiguracnych bitov. Je treba mat zaskrtnute checkbox, ze
konfiguraky su nastavene v zdrojakoch, teda cele zvysne okno bude sive -
neaktivne.

Ale nejak som nepochopil tu zalezitost s LVP bitom. Ak sa PIC naprogramuje s
LVP disablovanym, tak po verifikacii tento bit je opacny? Ak sa naprogramuje
s LVP disablovanym, robi stav PGM bitu nejaky problem? Ostatne konfiguracne
bity su tak ako sa maju zapisat?

J.S.


2011/12/31 Miroslav Draxal <evik na volny.cz>:
> MPLAB 8.80,
> HI-TECH C PRO for the PIC18 MCU Family  V9.63PL3
>
> Už v __CONFIG(1, IESODIS & FCMEN & 0x08); místo 0x08 Zde jsou možnosti 
> EXTCLKO RCCLKO RCIO EXTIO HSPLL ECIO ECCLKO HS XT LP
>
>
> Pokud tam dám RCIO , tak to přeloží jako LP oscilátor , proto 
> 0x08=interní osc + RA6,7 = IO
>  Je to jenom nástřel programu. Docela jsem zvědav na co přijdeš. Ono 
> to není o programu. Prostě pokud je PGM v HI, tak se ICD2 nepodaří 
> iniciovat pic, jako by nebyl připojen.
>
>
> #include <htc.h>
> #include <18f1320.h>
> __CONFIG(1, IESODIS & FCMEN & 0x08);
> __CONFIG(2, BORDIS & BORV42 & PWRTEN & WDTDIS & WDTPS32K); __CONFIG(3, 
> MCLREN ); __CONFIG(4, DEBUGEN & LVPDIS & STVREN); __CONFIG(5, 0xFFFF); 
> __CONFIG(6, 0xFFFF); __CONFIG(7, 0xFFFF);
>
> struct _SPIout_bity
>        {       unsigned CanSleep:1;
>                unsigned Set12V:1;
>                unsigned Enable12V:1;
>                unsigned LCDled:1;
>                unsigned PowerLed:1;
>                unsigned _4051:3;
>                unsigned X4:1;
>                unsigned X3:1;
>                unsigned X2:1;
>                unsigned X1:1;
>                unsigned Mag12:1;
>                unsigned Mag11:1;
>                unsigned Mag10:1;
>                unsigned Mag9:1;
>                unsigned Mag8:1;
>                unsigned Mag7:1;
>                unsigned Mag6:1;
>                unsigned Mag5:1;
>                unsigned Mag4:1;
>                unsigned Mag3:1;
>                unsigned Mag2:1;
>                unsigned Mag1:1;
>        }SPIout_bity;
>
> #define SPI_vyslanychBytu 3     // kolik bytů po 8 bitech se vyšle 
> (počet
> IO4094 pro příjem SPI v sérii za sebou) #define SPI_errorRepeat 3       
> // kolikrát se v případě chyby zápisu na SPI pokusí zapsat znovu 
> informaci do IO4094
>
> #define SPIdata_pin     RA0
> #define DisplejDB0_pin  RA0
> #define SPIclock_pin    RA1
> #define DisplejDB1_pin  RA1
> #define DisplejDB2_pin  RA2
> #define DisplejDB3_pin  RA3
> #define SPIstrobo_pin   RA4
> //                                              RA5     Reset #define 
> DisplejRW_pin   RA6 #define ExtP1_pin               RA7
>
> #define In4051_pin              RB0
> #define CanTX_pin               RB1
> #define ExtP2_pin               RB2
> #define ExtP3_pin               RB3
> #define CanRX_pin               RB4
> #define SPIverifi_pin   RB5
> //                                              RB6     PGC //            
                                 
> RB7     PGD
>
> unsigned char x;
>
>
> void initPIC(void);
> unsigned char SPIout(void);
>
> void main(void)
> {
>        SPIout_bity.Mag2=1;
>        SPIout_bity.CanSleep=1;
>        SPIout_bity.Mag1=1;
>        initPIC();
>        while(1)
>        {
>        x=SPIout();
>        }
> }
> void initPIC(void)
> {
>        OSCCON=0b01110000;
>        PORTA=0;
>        PORTB=0;
>        ADCON1=0b00001111;
>        TRISA=0b11101100;
>        TRISB=0b11111111;
> }
> unsigned char SPIout(void)
> {       static struct _SPIout_bity SPIout_bity_old;
>        unsigned char outByt,outBit,kopieBytu,SPIerror,SPIerrorPozice;
>        unsigned char *bity=&SPIout_bity;
>        unsigned char *bity_old=&SPIout_bity_old;
>
>        outByt=SPI_vyslanychBytu;
>        SPIerrorPozice=0;
>        do //zjisti změnu v datech od posledně vyslané informace na SPI
>        {       if (*bity^*bity_old)
>                {       SPIerrorPozice++;
>                        *bity_old=*bity;
>                }
>                bity++;
>                bity_old++;
>        }while(--outByt);
>
>        if(SPIerrorPozice) // pokud je rozdíl v datech, potom vyšli po 
> SPI
>        {       unsigned char SPImode=2;  // SPImode = 2 = save ; 
> SPImode =
> 1 = verifi
>                unsigned char SPIerrorRepeat=SPI_errorRepeat; // 
> kolikrát se bude v případě chyby pokoušet zapisovat do IO4096
>                do // SPImode save/verifi
>                {       SPIerror=0;
>                        SPIerrorPozice=0;
>                        unsigned char *p=&SPIout_bity;
>                        outByt=SPI_vyslanychBytu;
>                        do // vysílá byty
>                        {       kopieBytu=*p++;
>                                outBit=8;
>                                do // vysílá jednotlivé bity
>                                {       SPIdata_pin=0;
>                                        if (kopieBytu & 0b00000001)
>                                                SPIdata_pin=1;
>                                        SPIclock_pin=1;
>                                        SPIerror++;
>                                        SPIclock_pin=0;
>                                        if ((SPImode&1)&&(kopieBytu &
> 0b00000001)!=SPIverifi_pin)     //SPIverifi
>                                        {       
> SPIerrorPozice=SPIerror; // chyba zapsaných dat do IO4096
>                                                SPImode++; // tendo 
> cyklus verifi je save nové informace
>                                        }
>                                        kopieBytu >>=1;
>
>                                }while(--outBit); // vysílá jednotlivé 
> bity
>                        }while(--outByt); // vysílá byty
>                        SPIdata_pin=0;
>                        if (SPImode&2)  //SPIsave
>                        {       SPIstrobo_pin=1;
>                                SPIstrobo_pin=0;
>                                if(!--SPIerrorRepeat)
>                                        break;//verifi error, opakuj 
> zápis po SPI, pokud jsi SPIerrorRepeat krát již nezapsal, a stále je 
> chyba
>                        }
>                }while(--SPImode); // SPImode save/verifi
>        }
>        return SPIerrorPozice; // SPIerrorPozice > 0 = error zápisu dat 
> po SPI, v proměnné číslo výstupu, kde chyba nastala }
>
>
>
>
>
> -----Original Message-----
> From: hw-list-bounces na list.hw.cz [mailto:hw-list-bounces na list.hw.cz] 
> On Behalf Of j s
> Sent: Friday, December 30, 2011 11:10 PM
> To: HW-news
> Subject: Re: icd2
>
> Ukazte relevantnu cast zdrojaku alebo ako to nastavujete, napiste mi 
> aky prekladac a verziu MPLAB-u pouzivate a chybu najdeme.
>
>
> 2011/12/30 Miroslav Draxal <evik na volny.cz>:
>> Tak teď to vypadá, že je chyba v MPLAB. Jakmile zapíši s PGM LO, 
>> LOW-Voltage ICSP enable bit na DISABLE, tak se zapíše, nahodím PGM do 
>> HI a znovu naprogramuji, tak se LOW-Voltage ICSP zase nahodí enable, 
>> a je
> to víte kde.
>> Zkusím stáhnout starší MPLAB a prubnu to tam. Míra
>>
>> -----Original Message-----
>> From: hw-list-bounces na list.hw.cz [mailto:hw-list-bounces na list.hw.cz]
>> On Behalf Of Miroslav Draxal
>> Sent: Friday, December 30, 2011 9:22 PM
>> To: 'HW-news'
>> Subject: RE: icd2
>>
>> No i když v pdf skutečně píší, že HPV je dostupné vždy. Zkusím 
>> proměřit icd2, jestli dává na reset 12V, ale autodiagnostika říká že 
>> ano. Míra
>>
>> -----Original Message-----
>> From: hw-list-bounces na list.hw.cz [mailto:hw-list-bounces na list.hw.cz]
>> On Behalf Of j s
>> Sent: Friday, December 30, 2011 6:37 PM
>> To: HW-news
>> Subject: Re: icd2
>>
>> Mozno je to krute, krvave a hnusne, ale ja by som ten blby klopak 
>> normalne natvrdo skratoval k zemi (ten vystup bude nadavat, hriat sa, 
>> ale par sekund to vydrzi, zvlast moderne makke vystupy), rychlo 
>> naprogramoval s LVP disablovanym, potom odpojil skrat a dalej nech je 
>> na nom co chce, nie je problem.
>> Inak uz som v zivote par PICiek pouzil a nikdy som nemal pri HVP 
>> problem s tym, ze by bol PGM na inej ako nizkej urovni. HVP by malo 
>> byt vzdy dosiahnutelne, bez ohladu na stav PGM.
>>
>> J.S.
>>
>> 2011/12/29 Miroslav Draxal <evik na volny.cz>:
>>> Dobrý večer,
>>>
>>> Mam v dps osazen pic 18f1320, vyvedený konektor pro ICD2, PGD+PGC 
>>> vedou pouze do konektoru, nic na nich nevisí. Po připojení ICD2 ani 
>>> neproběhne inicializace, prý není připojen pic. Po hodně dlouhým 
>>> hledání a házení z okna jsem přišel na to, že na PGM mam 1 z klopáku.
>>> Pokud tam je 0, tak je všechno ok. jak to obejít? Po zapnutí či 
>>> přeflešování je na PGM náhodný stav.
>>>
>>>
>>>
>>> Vypájet, nastavit LOW-Voltage ICSP enable bit na DISABLE. Zapájet zpět.
>>> Zkusil bych to, ale teď to nemam po ruce. Takže pouze teorie.
>>>
>>>
>>>
>>> Díky za náměty. Míra
>>>
>>>
>>>
>>> __________ Informace od ESET NOD32 Antivirus, verze databaze 6753
>>> (20111229) __________
>>>
>>> Tuto zpravu proveril ESET NOD32 Antivirus.
>>>
>>> http://www.eset.cz
>>>
>>>
>>>
>>> __________ Informace od ESET NOD32 Antivirus, verze databaze 6753
>>> (20111229) __________
>>>
>>> Tuto zpravu proveril ESET NOD32 Antivirus.
>>>
>>> http://www.eset.cz
>>>
>>> _______________________________________________
>>> HW-list mailing list  -  sponsored by www.HW.cz Hw-list na list.hw.cz 
>>> http://list.hw.cz/mailman/listinfo/hw-list
>>>
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz Hw-list na list.hw.cz 
>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>>
>> __________ Informace od ESET NOD32 Antivirus, verze databaze 6753
>> (20111229) __________
>>
>> Tuto zpravu proveril ESET NOD32 Antivirus.
>>
>> http://www.eset.cz
>>
>>
>>
>>
>> __________ Informace od ESET NOD32 Antivirus, verze databaze 6756
>> (20111230) __________
>>
>> Tuto zpravu proveril ESET NOD32 Antivirus.
>>
>> http://www.eset.cz
>>
>>
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz Hw-list na list.hw.cz 
>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>>
>> __________ Informace od ESET NOD32 Antivirus, verze databaze 6756
>> (20111230) __________
>>
>> Tuto zpravu proveril ESET NOD32 Antivirus.
>>
>> http://www.eset.cz
>>
>>
>>
>>
>> __________ Informace od ESET NOD32 Antivirus, verze databaze 6756
>> (20111230) __________
>>
>> Tuto zpravu proveril ESET NOD32 Antivirus.
>>
>> http://www.eset.cz
>>
>>
>>
>> __________ Informace od ESET NOD32 Antivirus, verze databaze 6756
>> (20111230) __________
>>
>> Tuto zpravu proveril ESET NOD32 Antivirus.
>>
>> http://www.eset.cz
>>
>>
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz Hw-list na list.hw.cz 
>> http://list.hw.cz/mailman/listinfo/hw-list
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz Hw-list na list.hw.cz 
> http://list.hw.cz/mailman/listinfo/hw-list
>
>
> __________ Informace od ESET NOD32 Antivirus, verze databaze 6756 
> (20111230) __________
>
> Tuto zpravu proveril ESET NOD32 Antivirus.
>
> http://www.eset.cz
>
>
>
>
> __________ Informace od ESET NOD32 Antivirus, verze databaze 6756 
> (20111230) __________
>
> Tuto zpravu proveril ESET NOD32 Antivirus.
>
> http://www.eset.cz
>
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz Hw-list na list.hw.cz 
> http://list.hw.cz/mailman/listinfo/hw-list
_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list


__________ Informace od ESET NOD32 Antivirus, verze databaze 6756 (20111230)
__________

Tuto zpravu proveril ESET NOD32 Antivirus.

http://www.eset.cz


 

__________ Informace od ESET NOD32 Antivirus, verze databaze 6756 (20111230)
__________

Tuto zpravu proveril ESET NOD32 Antivirus.

http://www.eset.cz
 



Další informace o konferenci Hw-list