自分が持っているPIC16F1455のリビジョンIDが気になる。
恐らく初期ロットの1003だろうと思うけど、、、。
そこで実際にPICから取得。
まずはファームウェア側
そしてPC側
puts("--->send packet");
puts("--->read packet");
恐らく初期ロットの1003だろうと思うけど、、、。
そこで実際にPICから取得。
まずはファームウェア側
case CMD_GET_DEVIDS:
if(!mHIDTxIsBusy()) {
PMADR = 0;
PMCON1bits.CFGS = 1;
for(ii=0; ii<FLASH_PAGE_SIZE*2;) {
PMCON1bits.RD = 1; // Read Control bit
NOP();NOP();
PacketToPC.Contents[ii++] = PMDATL;
PacketToPC.Contents[ii++] = PMDATH;
PMADR++;
}
HIDTxReport((char *)&PacketToPC, USB_PACKET_SIZE);
ReadState = IDLE;
}
break;そしてPC側
case 4: // GET CONFIG
packet.bin[0] = 0x00;
packet.bin[1] = 0x84;
puts("--->send packet");
putbin((unsigned char*)&packet);
retval = hid_write(handle, (unsigned char*)&packet, 65);
retval = hid_read(handle, (unsigned char*)&packet, 64);
puts("--->read packet");
putbin((unsigned char*)&packet);
printf( "userid(%02X%02X%02X%02X) revid(%02X) devid(%02X)\n"
, packet.d.userid0, packet.d.userid1, packet.d.userid2, packet.d.userid3, packet.d.revid, packet.d.devid);
コメント