I've prepared on a small PCB a STM32C0 microcontroller, a PCA9555 GPIO expander (via I2C) and a Norcomp male connector (as is used to plug into a GPIB-enabled device.) This would make the attached GPIB machine accessible via I2C commands to the PCA9555, which is my current starting point.
At this point, I'd like get started writing my own GPIB code (C language) for use as a controller (i.e., plugs into some other instrument that will be controlled) WITHOUT relying on any existing library, source code, or other tools (beyond the STM32 IDE.) This is definitely "reinvent the wheel" but I'm doing this for entertainment (yes ?!?!), not publication, employment or other coercision.
I'm looking for a basic GPIB timing diagram or other that would guide me to the point where I can verify that my homebrew GPIB code is indeed communicating with an external device (for example, a HP 8970-series noise figure analyzer or HP 8753-series vector network analzyer.) I expect I'll be writing rudimentary PCA9555 instructions (via I2C) to configure each (of the 16 attached bus lines) as input, output-low, output-float, output-high, etc.) and interacting solely with those primitives to reach the point where the GPIB-enabled attached instrument shows signs of recognizing a tranasction targeting its GPIB bus address.
This will be a bare-metal exercise (my personal pile of C code already handles the PCA9555 to my liking and the PCA9555 facing the GPIB connector is responding as expected), so I'm focused on getting to the minimal milestone of causing the attached instrument to acknowledge the beginning of a transaction so I can focus more on software, less on hardware validation/troubleshooting.
Thanks for any suggestions (except for harnessing existing library/code/project, as I'd like to do this task from ground up.)
Dave