icd2

j s jarin.hw na gmail.com
Sobota Prosinec 31 09:56:34 CET 2011


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


Další informace o konferenci Hw-list