HWPROTOCOL 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. TOP2049 USB protocol (incomplete)
  2. === COMMANDS ===
  3. 00 >= 4 usec delay
  4. 01 >= Read a byte from the FPGA at address 0x10 into the status register.
  5. 07 >= Read the status register.
  6. The register is read by sending 07h via bulk out
  7. and reading 64bytes via bulk in.
  8. 0Axxyy >= Write data into the FPGA via the parallel uc->FPGA interface.
  9. xx is the address (clocked via ALE).
  10. yy is the data (clocked via WR).
  11. 0Bxx >= Read a byte from the FPGA at address xx into the status register.
  12. 0D >= Unknown
  13. 0E110000 >= Put the device ID string into the status register.
  14. String length is 16 bytes.
  15. 0E12xx00 >= Set VPP, where xx is the voltage.
  16. xx is in centivolt.
  17. 0E13xx00 >= Set VCC, where xx is the voltage.
  18. xx is in centivolt.
  19. 0E14xx00 >= Load the ZIF socket VPP supply layout.
  20. xx is the layout ID.
  21. (Shift data into the 4 shiftregisters on the left side.
  22. Sends 4 times 8 clock pulses and one strobe.)
  23. 0E15xx00 >= Load the ZIF socket VCC supply layout.
  24. xx is the layout ID.
  25. (Shift data into the 3 shiftregisters on the right side.
  26. Sends 3 times 8 clock pulses and one strobe.)
  27. 0E16xx00 >= Controls the digital input to the "H" and "L" chips.
  28. These chips control the ZIF socket GND supply.
  29. xx is the ZIF-socket pin that is pulled to GND.
  30. It is calculated as follows:
  31. xx = ZIF_pin_number - 4
  32. Valid ZIF_pin_numbers are:
  33. 0,5,14-20,24,26-29,33-35
  34. 0 is a special value for not assigning GND to any pin.
  35. If the pin number is 0 (=none), 4 is not subtracted.
  36. 0E210000 >= Initiate FPGA programming sequence.
  37. Pulls the ~PROGRAM pin of the FPGA low.
  38. 0E220000... >= Program the FPGA. 60bytes of data is appended.
  39. 0E28xx00 >= Enable pullups on the ZIF socket. xx=1 => enable, xx=0 => disable
  40. 10xx >= Write a byte (xx) to the FPGA at address 0x10.
  41. 19 >= Unknown
  42. 1B >= 10 msec delay
  43. 34 >= Unknown
  44. 38xx >= Unknown
  45. 39 >= Unknown
  46. 4Axx >= Unknown
  47. 4Bxx >= Unknown