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