I'm restructuring the whole USB protocol. I think I figured out I was trying to shove a 247 byte packet through a 64 byte USB hole. Instead of creating a new USB ID# for every variable I need to transfer (247 of them), I will build a 64 byte packet with relevant data. This will most definitely speed up the transmissions as well as offer the flexibility of not having to transfer a bunch of data that hasn't changed.
Each variable will have a unique code (0x00 >> 0xFF) that gets loaded into iCmd(x) (at the PIC side) or oCmd(x) (at the PC side) with the data value being put into iData(x)/oData(x). For a 64 byte array, it takes 2 packets; Table1L and Table1H. On the PC side I added a module to handle sorting and loading packets. Hope to be back testing later today.
And to think I originally thought this was an EEPROM issue. I'm on a learning spree once again.




Bookmarks