Dlouho se trápím s jedním problémem.
16F88 ve spojení s ICD2 / MPLAB 8 spolehlivě funguje. Když však místo krystalu 4MHz použiji krystal 20MHz, tak přestane být funkční debugging.
To je vcelku známé hlášení. Pokud se přesto pokusím o Stepping, tak ICD2 začne zběsile blikat, poprvé jsem na něm viděl svítit Error LED. Problém je ale složitější než špatný externí oscilátor. Když totiž naprogramuji tentýž HW stejným SW pouze programátorem ICD2, tak se program naprosto bez problémů realizuje. Stejný oscilátor / krystal 20MHz také pracuje v módu Debugging s jinými typy procesorů. Nemám original ICD2, ale klon. Domníval jsem se, že je možná chyba v něm. V diskuzi Microchipu jsem ale narazil na popis přesně stejného problému s 16F88/20MHz. Ovšem řešení tam chybí. Různé změny konfigurace a modifikace software k ničemu nevedly. Nemáte prosím nějaký nápad?
I když to nevypadalo, tak problém se skrýval v délce kabelu k aplikaci. S některými procesory kabel 15" fungoval, s některými ne. Pokud tedy narazíte na chyby v komunikaci s cílovým procesorem při debuggingu pomocí ICD2, zkraťte kabel na cca 6". Je vhodné ho vést jednotlivými vodiči a nikoliv ve svazku. Problém se vůbec nevyskytoval při kmitočtech aplikace do cca 10MHz. S rostoucím kmitočtem se komunikace s debuggovaným procesorem zhoršovala, až prakticky skončila. Mám také pocit, že ICD2 má vždy problémy v případě, že v aplikaci je krystal s kmitočtem i o málo vyšším než 20MHz, třeba 20,48MHz.
A závěrem dva tipy: