Takanobu Muraguchi
/
Nikon_lens_sniffer
nikon f mount protocol sniffer
main.cpp
- Committer:
- muraguchi
- Date:
- 2018-12-05
- Revision:
- 0:bc8e9dd8b17f
File content as of revision 0:bc8e9dd8b17f:
#include "mbed.h" Serial pc(USBTX, USBRX); Ticker event_timer; #define ARY_SIZE 1000 SPISlave spi_slave(p5,p6,p7,p8); // p5 mosi // p6 nc // p7 sclk // p8 hs //DigitalIn sclk(p7); //DigitalIn data(p5); //DigitalIn hs(p8); int event_timer_time=0; void event_timer_progress() { event_timer_time++; } int reverse_byte(int byte) { return ((byte&0x80)>>7)|((byte&0x40)>>5) | ((byte&0x20)>>3) | ((byte&0x10)>>1) | ((byte&0x08)<<1) | ((byte&0x04)<<3) | ((byte&0x02)<<5) | ((byte&0x01)<<7); } int main() { int com_seq=0; int com_ary[ARY_SIZE]; int time_ary[ARY_SIZE]; // 100us ticker event_timer.attach(&event_timer_progress, 0.0001); spi_slave.format(8, 3); pc.baud(115200); pc.printf("Nikon lens serial interface sniffer.\n"); while(com_seq<ARY_SIZE) { if(spi_slave.receive()) { com_ary[com_seq]=spi_slave.read(); time_ary[com_seq]= event_timer_time; com_seq++; } } for(int l=0;l<ARY_SIZE;l++) { int rv_dat=reverse_byte(com_ary[l]); if(rv_dat>=0x20 && rv_dat<=0x7e) pc.printf("%08.01fms %02X '%c'\n",time_ary[l]/10.0,rv_dat,rv_dat); else pc.printf("%08.01fms %02X '-'\n",time_ary[l]/10.0,rv_dat); } }