Autor Tema: Problemas con el ICSP  (Leído 1621 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Jordi

  • PIC10
  • *
  • Mensajes: 10
Problemas con el ICSP
« en: 08 de Julio de 2006, 08:41:25 »
Hola,
estoy experimentando con el protocolo ICSP en un PIC16F84A a modo didático. La pruebas las hago con una placa I/O usb. He intentando programar el PIC desde esta pero hay algo que hago mal, el programa de prueba es el siguiente:


Vpp = 13v(a través de una resistencia de 10k)
Vcc = 5v
RB7=DATA
RB6 = CLOCK

Primero envío el comando 2 (load data for programming), luego le envío el dato, y posteriormente le envío el comando para grabar.La lectura del dato no se corresponde con lo que grabo(el JDM me lo lee y los escribe sin problemas). Las funciones LineIn/Out son para la placa usb ,ponen el pin el modo entrada/salida y leen/escriben el bit.Los delais de la placa son bastante grandes así que problema de grabar muy rápido no puede ser.(También lo he ejecutado paso a paso)

ICSPCommand 2
ICSPSend14 &HAA
ICSPCommand 8
ICSPCommand 4
List1.AddItem Hex$(ICSPRead14)
ICSPCommand 6

Public Function ICSPBIT(bit As Byte)
    LineOut handle, DATA, bit
    LineOut handle, CLK, 0
    LineOut handle, CLK, 1
End Function

Public Function ICSPRead14() As Integer
    LineOut handle, CLK, 0
    LineIn handle, DATA
    LineOut handle, CLK, 1
    For I = 0 To 13
        LineOut handle, CLK, 0
        ICSPRead14 = ICSPRead14 + (2 ^ I) * LineIn(handle, DATA)
        LineOut handle, CLK, 1
    Next
    LineOut handle, CLK, 0
   
    LineOut handle, CLK, 1
End Function


Public Function ICSPSend14(value As Integer)
    ICSPBIT 0
    For I = 0 To 13
        ICSPBIT value And 1
        value = value \ 2
    Next
    ICSPBIT 0
End Function


Public Function ICSPCommand(command As Byte)

For I = 0 To 5
    ICSPBIT command And 1
    command = command \ 2
Next

End Function

Un saludo,

Jordi


 

anything