Återställa PIC efter intern MCLR med Wisp648

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Landtgrein
Inlägg: 3
Blev medlem: 24 februari 2008, 12:01:49
Ort: Linköping

Återställa PIC efter intern MCLR med Wisp648

Inlägg av Landtgrein »

Hej!

Jag har problem med att jag har programmerat 2 stk 16F88-PIC:ar med program som använder MCLR-benet som digital in/ut ist för MCLR.

Jag använder en Wisp648 som fungerar utmärkt att programmera med i vanliga fall.
Min uppkoppling är en labbplatta som är kopplad till ett 7V DC-nätagg till en L78L05 som sedan försörjer PIC-kopplingen och Wispen. Jag använder intern Oscillator 4MHz. Jag har kondingar i anslutning till spänningsregulatorn samt avkopplingskondensatorer.

Det går alltså bra att programmera PICen med tex Wouters blinkexempel (http://www.voti.nl/blink/code/b818i-1.hex), men sedan jag lade in min egen kod kan inte Wispen identifiera PIC:en längre, vilket jag kommit fram till beror på just Intern-MCLR-problemet.

Jag har sökt så gott jag kunnat här på forumet och http://www.elektronikforumet.com/forum/ ... hp?t=24208 beskriver samma problematik, dock med Wisp628.

Wisp648 borde alltså inte ha det här problemet eftersom den använder Vpp-before-Vdd om man bara kopplar i Jumpern?

Mitt problem är att även med jumpern påkopplad så kan inte xwisp gå in i programmeringsläge.

Kod: Markera allt

C:\PIC\XWisp>xwisp go b818i-1
XWisp 1.20, command line mode
hardware: Wisp628 1.22 (fast)
Traceback (most recent call last):
  File "xwisp.py", line 4523, in <module>
  File "xwisp.py", line 4520, in XWisp_Main
  File "xwisp.py", line 4139, in Interpret
  File "xwisp.py", line 4121, in Execute
  File "<string>", line 1, in <module>
  File "xwisp.py", line 3526, in CMD_GO
  File "xwisp.py", line 3948, in Identify_If_Needed
  File "xwisp.py", line 3846, in Error
IOError: device word 3FFF or FFFF, can not identify this target: defect, nsuppo
rted, or 16x84

C:\PIC\XWisp>xwisp target f88 write b818i-1
XWisp 1.20, command line mode
hardware: Wisp628 1.22 (fast)
target can not be verified (ID reads 0000 or 3FFF), 16f88 assumed
OK
Varefter det fortfarande är samma program inlagt.

Borde det inte fungera att programmera med Wisp648:en om jumpern är på?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> som är kopplad till ett 7V DC-nätagg till en L78L05

7V är lite lågt. Minst 9V rekomenderas.

> med tex Wouters blinkexempel

Används *INTE* filerna med ett "i" i !

> Mitt problem är att även med jumpern påkopplad så kan inte xwisp gå in i programmeringsläge.

Det brukar fungera om man kör ett par gånger med och utan jumper.
Jag vill dock lägga in en brasklapp med avseende på din låga inspänning till 78L05'an.

> xwisp go b818i-1

Som sagt, undvik filerna med ett "i"...
Landtgrein
Inlägg: 3
Blev medlem: 24 februari 2008, 12:01:49
Ort: Linköping

Inlägg av Landtgrein »

det var min avsikt att använda testfilerna med i iom att jag använder den interna oscillatorn.
nu i efterhand ser jag dock att han faktiskt skriver på sidan att exemplet är "with internal OSC and /MCLR".
Det är ju ett ganska intressant val av honom att ha intern MCLR iom att de flesta antagligen använder programmet för att testa sin 628/648.

Sålunda är läget att tre av de tre F88 som jag har samplat är oprogrammerbara (med vdd före vpp), iom att jag testade om wispen var okej med i-programmet på #3, som jag därmed också låste. (Det var första gången jag programmerade den).

har kopplat upp med extern 8MHz kristall + 2x 22pF kondingar som jag kommer använda i framtiden ist för intern osc.

Har inte rått någon framgång med att programmera ännu, men jag ska testa med högre inspänning till spänningsregulatorn. Läste att man kunde koppla på ett 10-ohm-motstånd till spänningsförsörjningen i en annan tråd också.

JESCAB-sidan är lite otydlig med Informationen för 648-användare (iom att MCLR-sidan är samma som för 628, vilket gör att den ej är relevant). Men om det är så enkelt som att kopplat jumpern antar jag att det inte ska behövas så mycket mer.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Det är ju ett ganska intressant val av honom att ha intern MCLR...

Jag har vid flera tillfällen förklarat dert olämpliga med hans val.
Wouter skulle lägga till en varning på sidan, men har tydligen inte gjort det än.
Jag ska påminna honom om det...

> ...kristall...som jag kommer använda i framtiden ist för intern osc...

Notera att det inte är INTOSC som är problemet, men det har du kanske
kläm på. Om du behöver kristall av andra orsaker så är det naturligtsvis rätt.

Det stämmer också att jag inte har fixat till 648 sidorna riktigt, jag
har missat det efter att jag kopierade sidorna. Får kolla på det
under veckan...
Landtgrein
Inlägg: 3
Blev medlem: 24 februari 2008, 12:01:49
Ort: Linköping

Inlägg av Landtgrein »

Okej, det är fortfarande strul jag förstår mig inte riktigt på vad som händer.

Tidigare under dagen var jag uppe på LiUs Elektronikförenings labb här i ryd för att prova programmera mina PIC:ar med deras fina Xeltek-Multiprogrammerare, som jag antar klarar Vpp för Vdd.

Där ställde jag in programmerar-gränssnittet till PIC16F88-läge, matade in en Hex-fil, ställde config-bitar till MCLR extern, och provade att sudda och skriva till programminnet.
Då kommer det en varning "Manufacturer Device ID not found" eller motsv, "Continue? Ja/Nej".
valde man Ja så står det efter någon sekund "Programming OK", samma sak om man väljer att läsa eller verifiera programminnet.

DOCK verkar det inte ha hänt något i praktiken, iaf en av PIC-arna blinkade som det senaste programmet jag lyckades lägga in i Wispen.

Senare nu ikväll kom är jag hemma igen hos min Wisp.

Jag bytte till ett 13.5V/1A DC-nätagg, modell "Wall Wart" och provade programmera igen.
Då jag har jumpern påkopplad identifieras inte PIC:en:

Kod: Markera allt

C:\PIC\XWisp>xwisp erase
XWisp 1.20, command line mode
hardware: Wisp628 1.22 (fast)
Traceback (most recent call last):
  File "xwisp.py", line 4523, in <module>
  File "xwisp.py", line 4520, in XWisp_Main
  File "xwisp.py", line 4139, in Interpret
  File "xwisp.py", line 4121, in Execute
  File "<string>", line 1, in <module>
  File "xwisp.py", line 3498, in CMD_ERASE
  File "xwisp.py", line 3948, in Identify_If_Needed
  File "xwisp.py", line 3846, in Error
IOError: device word 3FFF or FFFF, can not identify this target: defect, unsupported, or 16x84

C:\PIC\XWisp>xwisp go b818-1
XWisp 1.20, command line mode
hardware: Wisp628 1.22 (fast)
Traceback (most recent call last):
  File "xwisp.py", line 4523, in <module>
  File "xwisp.py", line 4520, in XWisp_Main
  File "xwisp.py", line 4139, in Interpret
  File "xwisp.py", line 4121, in Execute
  File "<string>", line 1, in <module>
  File "xwisp.py", line 3526, in CMD_GO
  File "xwisp.py", line 3948, in Identify_If_Needed
  File "xwisp.py", line 3846, in Error
IOError: device word 3FFF or FFFF, can not identify this target: defect, unsupported, or 16x84
notera att jag kör Wouters Blinkkod med extern kristall nu, inget i.
(jag tror det är lika bra att jag kör med extern kristall eftersom jag vill använda hårdvaru-usart för kommunikation med PC senare.)

Om jag Kopplar BORT jumpern ser det ut såhär:

Kod: Markera allt

C:\PIC\XWisp>xwisp erase
XWisp 1.20, command line mode
hardware: Wisp628 1.22 (fast)
target: 16f88, revision bits 08 (ID=0768)
OK

C:\PIC\XWisp>xwisp go b818-1
XWisp 1.20, command line mode
hardware: Wisp628 1.22 (fast)
target: 16f88, revision bits 08 (ID=0768)
read Code 0020Traceback (most recent call last):
  File "xwisp.py", line 4523, in <module>
  File "xwisp.py", line 4520, in XWisp_Main
  File "xwisp.py", line 4139, in Interpret
  File "xwisp.py", line 4121, in Execute
  File "<string>", line 1, in <module>
  File "xwisp.py", line 3530, in CMD_GO
  File "xwisp.py", line 3159, in Write_Verify
IOError: verification failure: different data at address 0000: file=2804 target=2000

C:\PIC\XWisp>xwisp write b818-1
XWisp 1.20, command line mode
hardware: Wisp628 1.22 (fast)
target: 16f88, revision bits 08 (ID=0768)
OK
Dvs PIC:en identifierar sig korrekt, men det verkar inte fungera att skriva.

Den beter sig iaf inte som jag vill, och det går inte att använda go för verifieringen misslyckas.

XWisp2 ger följande utmatning (utan jumper)

Kod: Markera allt

C:\PIC\XWisp2>xwisp2w erase
 xwisp2 version 1.9.5 for Windows (Jan 24 2008, Open Watcom C/C++ 1.70)
Detected programmer: Wisp628, firmware version 1.22
Recommendation: Upgrade your Wisp648 firmware to at least version 1.23rh
Target: 16F88 revision 08 (ID=0768)
Target erased
xwisp2 terminated successfully in 0.70 seconds


C:\PIC\XWisp2>xwisp2w b818-1
 xwisp2 version 1.9.5 for Windows (Jan 24 2008, Open Watcom C/C++ 1.70)
File b818-1.hex loaded and is Intel Hex format conforming
Failed to activate Programmer. Check connection to target and COM1.
xwisp2 failed after 0.48 seconds, rc 23
Press 'Enter' to continue:
Börjar bli lite störigt det här, jag vill bara lyckas programmera EN gång, så jag kan börja göra något vettigt igen. med extern MCLR



EDIT:

Nu har jag lite nyheter.
Jag har alltså tre stycken PIC:ar jag experimenterar av. (Alla 16F88)
Den jag tidigare arbetade med i inlägget var #2 (jag har numrerat dem med Tipp-Ex, hett tips!)

När jag sedan provade med #1 och #3 går dessa att programmera korrekt så länge Jumpern är AV.
Med jumpern av blir det verifikationsfel för #2.

Med jumpern på går det aldrig att programmera. (den klarar inte att identifiera PIC:en).

Troligtvis lyckades jag stänga av MCLR-biten med USB-programmeraren i Labbet tidigare under dagen.

Det är mycket att tänka på!

Tack för all hjälp!
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

De två senaste exemplen med xwisp2w (en erase och en go), är de för
övrigt körda med samma setup (koppling, mål-PIC o.s.v) ?

I första fallet ser det ju bra ut, i det andra är det som om du kör utan
att ha Wisp648 spänningssatt, xwisp2w hittar ju inte ens den...

Är COM1 en vanligt COM-port? Alltså ingen USB/RS232 konverter inblandad?

Jag ska fösöka upprepa dina tester med en F88 och samma HEX filer
på kontoret i morgon så får vi se...
Skriv svar