ICD2 a 12F675

Jak přes ICD2 naprogramovat 12C675 v režimu, že jede na interní oscilátor a má MCLR jako port.

MPLAB mi napíše tohle http://forum.mcontrollers.com/files/bez_nzvu_147.jpg

a odmíta se semnou dál bavit o programovaní. Když dám OK, tak ho stejně nenaprogramuje, i když se tváří, že naprogramovanej je.
Bez názvu.JPG

No, 12C675 neznám, ale bude to dost podobný jako u 12F675 :smiley:
Je to známej problém ICD2 a netýká se to jen procesoru 12F675, ale i dalších. Obvykle ale projde první programování. Procesor je správně naprogramován, ale v některých případech ho nejde verifikovat a reprogramovat. To záleží na struktuře programu.

  1. Zkus dát do konfiguračního slova externí krystal, naprogramuj, zverifikuj a pak naprogramuj pouze konfigurační slovo s interním oscilátorem. V tomto případě už verifikace nemusí proběhnout správně.
  2. Nebo dej na začátek programu jako naprosto první, programovou smyčku se zpožděním třeba 100ms, teprve pak dělej inicializace procesoru podle svých potřeb. To by mělo být nejperspektivnější řešení.
  3. Nebo použij jiný programátor, můj starej Piccolo to dovede bezezbytku.

Koukám, že jsem se upsal i tady. Je to 12F675!

To s tím externím krystalem jsem zkoušel, ale MPLABu se nelíbí ten MCLR jako vstupní port.
Programátor, kterej doma mám, tak ten se semnou o tom bavit nechce vůbec!!

Zatím ho mám jako MCLR, ale u tak malého procesoru každej port dobrej, i když jen vstupní. :smiley:

S dřívějšími verzemi MPLABu šlo i po varování 12F675 vždy alespoň jednou naprogramovat. S 8.2 jsem to ještě nezkoušel, ale řekl bych, že to bude to samé. Naprogramoval jsem jich tak kvantum. Ta časovací smyčka by to ale řešit měla. Možná bude stačit i 256 taktů, tedy 1. byte.
Hlavně dej taky pozor na kapcity mezi Vdd a GND. Teď nemám možnost to otestovat, ale zkusím to.

Tak už mi to programuje. Chyba byla samozřejme mezi mezi židlí a klávesnicí, v konektoru u ICD2, malilinkatej studeňák. MPLAB sice reptá, že to nepodporuje, ale naprogramuje ho. Není třeba ani čekacích smyček, procesor čeká 1024 taktů. Jedinej problém je teď ten, že po naprogramování musím odpojit procesor od ICD2 a pak zapnout, ale dá se to.

Dík

Můžeš to vysvětlit, přiblížit? Dělal jsem teď nějaké testy, ale oproti dřívějšku jsem nedokázal vytvořit požadovaný problém.

Normálně používám 16F877A a u něho si neobsazuji RB7 a RB6,protože “zatím” mi počet portů stačil a procesor nechávám trvale připojenéj k ICD2, ale u 12F675, kterej má málo portů, a když např obsadim GP0 jako DATA a GP1 jako CLK, tak je to ovlivněno ICD2 a nefunguje to, tak proto po naprogramování, tedy po jakékoliv změně v programu, musím ho připojit, naprogramovat, odpojit a zapnout. Konkrétně jde o tohle, pomocí tří vodičů řídit multiplex, ale stejně asi vyměním procesor, protože mi dochází v něm místo a mám hotovej teploměr a necelé hodiny. Kam dám datum a nastavení, to nevim :smiley: :smiley: