Bazı clon pickit2`lerde olabilen bir eksiklik

Başlatan pcb, 24 Şubat 2011, 20:36:39

pcb

24 Şubat 2011, 20:36:39 Son düzenlenme: 20 Mart 2014, 11:34:08 Maxim
Arkadaşlar orjinal başlık 16F628A katili bir program yazdım
fakat sonra işin aslının (bazı) klon pickit2 lerin bir özelliğinin çalışmaması yüzünden olduğu ortaya çıktı.
"USE VPP FIRST PROGRAM ENTRY" özelliği
O yüzden konu başlığını Bazı kopya pickit2`lerde olabilen bir eksiklik olarak değiştiriyorum.
Bu başlık konuya daha uygun olacak ve daha dikkat çekecektir.
@Maxim
---------------------------------------------------------------------------------


Merhaba arkadaşlar

Deneme amaçlı USART - TIMER1 içeren bir program yazdım, Pickit 2 ile 16F628A ya aktardım, pickit 2 doğrulama yaparken yazma işlemi bitti ve Verified of ile başlayan bir hata mesajı verdi. işlemci artık tanınmaz duruma geldi. Bu denemeler yazklaşık 10 kadar işlemcinin aynı şekilde bozulmasına sebep oldu.
Aynı pickit 2 ve yeni 16F628A ile başka programlar yazılıp silinebiliyor, aşağıdaki program yüklenip yazma gerçekleştikten sonra işlemci tanınmaz hale geliyor.

Pickit 2 de sorun yok çünkü bir kaç farklı işlemciyi de denedim bozmuyor, 18F452, 12F675, 16F628A ile aynı yükleme pin yapısına sahip 16F84 de de sorun yok.

Denemek için 628A kalmadı, sizce sorun nedir ?

Kod Seç

Device    
16F628A 
Xtal    
=   20

On_Interrupt 
GoTo DEVAM
  
    
'LCD_DTPin = PORTB.4
    '
LCD_RSPin PORTA.1
    
'LCD_ENPin = PORTA.0
    '
LCD_Interface 4
    
'LCD_Lines = 4
    '
LCD_Type 0
    
'Reminders = FALSE
    '
All_Digital TRUE
    
    CMCON
=7   ' dıjıtal iptal, giriş-çıkış yap
    Config      INTRC_OSC_CLKOUT,_ ' 
Internal Oscillator
                WDT_OFF
,_             ' Enable watch dog timer
                MCLRE_OFF,_           ' 
Enable MCLR pin
                BODEN_OFF
,_           ' Enable brown out detect
                LVP_OFF,_            ' 
Disable Low voltage programming mode   
                DATA_CP_OFF
,_        ' Disable data code protect
                CP_OFF               ' 
Disable code protect
                
'
                
                CMCON   =   %00000111         '
Turn off comparators
                TRISA   
=   %11111111
                TRISB   
=   %10000000 ' All port B outputs
'
______________________________________________________________________________                                               
 Rsout_Mode 
TRUE
 Rsout_Pace 
10 
 
'//////////////USART///////////////////////////////////////////////////////////
 '
Declare Hserial_Baud 1200
 
Declare Hserial_RCSTA = %10010000 ' Enable serial port and continuous receive
 Declare Hserial_TXSTA = %00100000
 SPBRG = 32
 Declare Hserial_Clear   =   On

'
//////////////////////////////INTERRUPTS//////////////////////////////////////
'********************************************************************         
                '
USART RX
    Symbol RX9D 
RCSTA.0 ' 9th bit of received data (Can be parity bit)
    Symbol OERR = RCSTA.1 ' 
Overrun Error Enable
    Symbol FERR 
RCSTA.2 ' Framing Error Enable
    Symbol ADEN = RCSTA.3 ' 
Address Detect Enable
    Symbol CREN 
RCSTA.4 ' Continuous Receive Enable
    Symbol SREN = RCSTA.5 ' 
Single Receive Enable
    Symbol RX9 
RCSTA.6  ' 9-bit Receive Enable
    Symbol SPEN = RCSTA.7 ' 
Serial Port Enable
    
    SPEN    
=   1'Serial port enabled
    RX9     =   0'
Selects 8-bit reception
    SREN    
=   0'Asynchronous mode Don't care                    
    CREN    
=   1'Asynchronous mode 1 = Enables continuous receive 
    ADEN    =   0'
Asynchronous mode 8-bit (RX9=0)Unused in this mode
    FERR    
=   0'No framing error
    OERR    =   0'
No overrun error
    RX9D    
=   0'9th bit of received data (Can be PARITY bit)
    
                  '
USART TX
    Symbol TX9D 
TXSTA.0 ' 9th bit of transmit data. Can be parity bit.
    TX9D    =   0   
    Symbol TRMT = TXSTA.1 ' 
Transmit Shift Register Status
    TRMT    
=   0
    Symbol BRGH 
TXSTA.2 ' High Baud Rate Select
    BRGH    =   0         '
DÜŞÜK HIZ
    Symbol SYNC 
TXSTA.4 ' USART Mode Select
    SYNC    =   0  
    Symbol TXEN = TXSTA.5 ' 
Transmit Enable
    TXEN    
=   1
    Symbol TX9 
TXSTA.6  ' 9-bit Transmit Enable
    TX9 =   0  
    Symbol CSRC = TXSTA.7 ' 
Clock Source Select
    CSRC    
=   0  
    Symbol RCIE 
PIE1.5   ' USART Receive Interrupt Enable
    Set RCIE
    Symbol RCIF = PIR1.5   ' 
USART Receive Interrupt Flag    
    Clear   RCIF       
    Input   PORTB.1     
'UART RX
         
'
________________TIMER1 INTERRUPT AYARLI____________________________________

Symbol PEIE 
INTCON.6 ' Peripheral Interrupt Enable
Symbol GIE = INTCON.7  ' 
Global Interrupt Enable
PEIE    
=   1
GIE 
=   0

Symbol TMR1ON 
T1CON.0     ' Timer1 ON
Symbol TMR1CS = T1CON.1     ' 
Timer1 Clock Source Select
Symbol NOT_T1SYNC 
T1CON.2 ' Timer1 External Clock Input Synchronization Control
Symbol T1INSYNC = T1CON.2   ' 
Timer1 External Clock Input Synchronization Control
Symbol T1SYNC 
T1CON.2     ' Timer1 External Clock Input Synchronization Control
Symbol T1OSCEN = T1CON.3    ' 
Timer1 Oscillator Enable Control
Symbol T1CKPS0 
T1CON.4    ' Timer1 Input Clock Prescale Select bits
Symbol T1CKPS1 = T1CON.5    ' 
Timer1 Input Clock Prescale Select bits

TMR1ON  
=   1
TMR1CS  
=   1
T1INSYNC    
=   0
T1SYNC  
=   0
T1OSCEN 
=   1      
T1CKPS0 
=   0
T1CKPS1 
=   0    

Symbol TMR1IE 
PIE1.0 ' TMR1 Overflow Interrupt Enable
TMR1IE  =   1
Symbol TMR1IF = PIR1.0 ' 
TMR1 Overflow Interrupt Flag bit
TMR1IF  
=   0
Dim Timer1 
As TMR1L.Word   

'_____________PORT AYAR_____________________________
Input    PORTA
'
___________________________________________________
        
    Dim    FREQ    
As  Word   
    Dim TIME    
As  Word
    TIME    
=   0
    
DelayMS 100    
    Timer1    
=   65530
    
'TMR1h   =   254      '|
    
'TMR1l   =   0      '|       TIMER1  KUR

BASLA
:  
    
GIE =   1  
    
    DelayUS 500
    
    
While   RCIF    =   1         
        RCIF    
=   0            
        HRSIn FREQ                   
    Wend       
    
    
GoTo    BASLA
       
DEVAM
:
    
TMR1IF  =   0    
    
    Select  TIME
    
Case    0
    Timer1  
=   63896
    TIME    
=   1
    
Case    1
    Timer1  
=   63896
    TIME    
=   0
    EndSelect   
    
    Resume
    Context Restore   
    Stop



t2

Pk2 menüsünden Tools > Use Vpp First ...
seçelim.  düzelme ihtimali var.

pcb

@t2
Device not detected bunu denemiştim.

pcb


t2

INTRC_OSC_CLKOUT,_

seçtiğin için programlama yapmaya başlarken işlemci kendiliğinden çalışıyor olabilir.


pcb

programlama voltajı normal, LVP hiç kullanmadım, Pickit 2 arızalı olma ihtimali düşük bence diğer pic lere yazıp siliyor. Evet işlemcide  program çalışıyor olabilir ama tanımsız hale gelecek kadar arıza hiç olmadı.
başka bir pickit ile denenmesi şart, bir arkadaş dener belki

pickit 2 programını tekrar kurdum, sorun devam ediyor

Maxim


pcb

@Maxim
Pic için üzgünüm , denemek ki programda bir şey var

Maxim


OG

Device    = 16F628A
Xtal    =   20

altına

delayms 100

gibi bir şey ekleyin

On_Interrupt GoTo DEVAM

satırını da tanımlamaların altına alın yani
'//////////////////////////////INTERRUPTS//////////////////////////////////////
satırının üstüne.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

pcb

@MAXIM
evet config ler öyle kalmış , arızaya sebep olabilir mi ki ?
Ben deneyemiyorum , birisi çözer mi diye bekliyorum sadece
Statik elektirikten çok pic yaktım ama böylesi ilk defa oluyor

Maxim

haydaa 2. picte gitti, valla denemem bir daha

programda şöyle bir değişiklik yaptım
config satırını düzenledim ve yukarı aldım,
birde cmcon satırlarını kaldırdım olmadı..

Kod Seç


Device    
16F628A 
Xtal    
=   20
Config BOREN_OFF
CP_OFFDATA_CP_OFFPWRTE_OFFWDT_OFFLVP_OFFMCLRE_OFFINTRC_OSC_NOCLKOUT


On_Interrupt 
GoTo DEVAM
  

    TRISA   
=   %11111111
    TRISB   
=   %10000000 ' All port B outputs
'
______________________________________________________________________________                                               
 Rsout_Mode 
TRUE
 Rsout_Pace 
10 
 
'//////////////USART///////////////////////////////////////////////////////////
 '
Declare Hserial_Baud 1200
 
Declare Hserial_RCSTA = %10010000 ' Enable serial port and continuous receive
 Declare Hserial_TXSTA = %00100000
 SPBRG = 32
 Declare Hserial_Clear   =   On

'
//////////////////////////////INTERRUPTS//////////////////////////////////////
'********************************************************************         
                '
USART RX
    Symbol RX9D 
RCSTA.0 ' 9th bit of received data (Can be parity bit)
    Symbol OERR = RCSTA.1 ' 
Overrun Error Enable
    Symbol FERR 
RCSTA.2 ' Framing Error Enable
    Symbol ADEN = RCSTA.3 ' 
Address Detect Enable
    Symbol CREN 
RCSTA.4 ' Continuous Receive Enable
    Symbol SREN = RCSTA.5 ' 
Single Receive Enable
    Symbol RX9 
RCSTA.6  ' 9-bit Receive Enable
    Symbol SPEN = RCSTA.7 ' 
Serial Port Enable
    
    SPEN    
=   1'Serial port enabled
    RX9     =   0'
Selects 8-bit reception
    SREN    
=   0'Asynchronous mode Don't care                    
    CREN    
=   1'Asynchronous mode 1 = Enables continuous receive 
    ADEN    =   0'
Asynchronous mode 8-bit (RX9=0)Unused in this mode
    FERR    
=   0'No framing error
    OERR    =   0'
No overrun error
    RX9D    
=   0'9th bit of received data (Can be PARITY bit)
    
                  '
USART TX
    Symbol TX9D 
TXSTA.0 ' 9th bit of transmit data. Can be parity bit.
    TX9D    =   0   
    Symbol TRMT = TXSTA.1 ' 
Transmit Shift Register Status
    TRMT    
=   0
    Symbol BRGH 
TXSTA.2 ' High Baud Rate Select
    BRGH    =   0         '
DÜŞÜK HIZ
    Symbol SYNC 
TXSTA.4 ' USART Mode Select
    SYNC    =   0  
    Symbol TXEN = TXSTA.5 ' 
Transmit Enable
    TXEN    
=   1
    Symbol TX9 
TXSTA.6  ' 9-bit Transmit Enable
    TX9 =   0  
    Symbol CSRC = TXSTA.7 ' 
Clock Source Select
    CSRC    
=   0  
    Symbol RCIE 
PIE1.5   ' USART Receive Interrupt Enable
    Set RCIE
    Symbol RCIF = PIR1.5   ' 
USART Receive Interrupt Flag    
    Clear   RCIF       
    Input   PORTB.1     
'UART RX
         
'
________________VCO ICIN TIMER1 INTERRUPT AYARLI____________________________________

Symbol PEIE 
INTCON.6 ' Peripheral Interrupt Enable
Symbol GIE = INTCON.7  ' 
Global Interrupt Enable
PEIE    
=   1
GIE 
=   0

Symbol TMR1ON 
T1CON.0     ' Timer1 ON
Symbol TMR1CS = T1CON.1     ' 
Timer1 Clock Source Select
Symbol NOT_T1SYNC 
T1CON.2 ' Timer1 External Clock Input Synchronization Control
Symbol T1INSYNC = T1CON.2   ' 
Timer1 External Clock Input Synchronization Control
Symbol T1SYNC 
T1CON.2     ' Timer1 External Clock Input Synchronization Control
Symbol T1OSCEN = T1CON.3    ' 
Timer1 Oscillator Enable Control
Symbol T1CKPS0 
T1CON.4    ' Timer1 Input Clock Prescale Select bits
Symbol T1CKPS1 = T1CON.5    ' 
Timer1 Input Clock Prescale Select bits

TMR1ON  
=   1
TMR1CS  
=   1
T1INSYNC    
=   0
T1SYNC  
=   0
T1OSCEN 
=   1      
T1CKPS0 
=   0
T1CKPS1 
=   0    

Symbol TMR1IE 
PIE1.0 ' TMR1 Overflow Interrupt Enable
TMR1IE  =   1
Symbol TMR1IF = PIR1.0 ' 
TMR1 Overflow Interrupt Flag bit
TMR1IF  
=   0
Dim Timer1 
As TMR1L.Word   

'_____________PORT AYAR_____________________________
Input    PORTA
'
___________________________________________________
        
    Dim    FREQ    
As  Word   
    Dim TIME    
As  Word
    TIME    
=   0
    
DelayMS 100    
    Timer1    
=   65530
    
'TMR1h   =   254      '|
    
'TMR1l   =   0      '|       TIMER1  KUR

BASLA
:  
    
GIE =   1  
    
    DelayUS 500
    
    
While   RCIF    =   1         
        RCIF    
=   0            
        HRSIn FREQ                   
    Wend       
    
    
GoTo    BASLA
       
DEVAM
:
    
TMR1IF  =   0    
    
    Select  TIME
    
Case    0
    Timer1  
=   63896
    TIME    
=   1
    
Case    1
    Timer1  
=   63896
    TIME    
=   0
    EndSelect   
    
    Resume
    Context Restore   
    Stop


pcb

isis de çalışıyor , hatada vermiyor

Maxim

LVP özelliğini denedim o da olmadı
lvp için aux ucunuda kullanıyorsun .
lvp=low voltage programming

ben birşey anlamadım
ne programı bu ? ne işe yarar ? seri portla ilgili ama nedir
2 tane pic gitti ya

pcb

Sadece deneme programı herhangi bir anlamı yok. USART - TIMER1