icd2
Miroslav Draxal
evik na volny.cz
Sobota Prosinec 31 00:16:29 CET 2011
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
Další informace o konferenci Hw-list