I'm working on a new FPGA project. this one is rather complex.
I'm at the "blink an LED" stage of bringing it up.
wrote some temporary verilog to validate the bus interface using a single 16-bit register. here goes nothing
oops. logic analyzer time. guess i should have expected it.
ok so i unplugged the board and powered up the computer -- and the error stays. looks like i broke something. 😩
gotta take this step by step. I should have checked this at the start but first I will force the FPGA into the unprogrammed state (-CRESET low) then check each pin to make sure it's in a valid state.
ok when *not* in reset, the FPGA is pulling the DMA line BURST_L low constantly. this is bad, and explains the 00011320 error i saw earlier.
seems that i typo'd the wiring between the top level verilog module and the module that handles the micro channel bus. it's a floating connection and it seems to mostly just sit at a logic 0.
the other problem (01290200) is more concerning and will need a logic analyzer.
yes, i made a dedicated interposer/extender board just to help with the logic analyzer connections. it's called the Fing Longer (a reference to Futurama).
hmm, so during a read operation, the data is never driven onto the bus (the output stays pulled up to FFFF). looks like the MADE24 line is staying low? that's weird. let me try making the logic ignore it.
oh! now the card is putting data onto the bus! the "test1" channel is the data direction for the 74lvc4245 buffers showing that they are transferring data from the card to the host PC.
wow, it actually works, i'm able to write a value to the simple register and read it back. this is a HUGE step forward.

i'll need to figure out what is up with the MADE24 line. could be that the pin doesn't actually do that. the HDD pinout is one that i reverse engineered a while back, so it might be a mistake.

this could also explain the damage to the PC, perhaps the card tried to write to the data bus when it was not supposed to and damaged the output drivers of some other chip.

huh, the "MADE24" line is controlled by bit 7 of register 96. I wonder what that is.
lol, this is the active high CHRESET! i was wondering why that line seemed to be missing.
moving on to the Teensy interface. i had to choose the IO pins carefully so i can make a 16-bit parallel IO port.

got the Teensy interface up and running. i'm using direct IO port access on the Teensy 4.1. take a look at core_pins.h in the Teensy header files. basically you can read from GPIOx_PSR and write to GPIOx_DR.

i also had to add a short delay to create some setup time for the FPGA--the Teensy 4.1 is a hair too fast lol

bidirectional registers now work! i can write a command from the PC to the Teensy, and i can write a response from the Teensy and read it from the PC. there are also status flags showing when new data is available. it may not seem like much, but this is huge progress.
excellent progress today. I've been able to implement the "Get Diagnostic Status" command. it transfers the command block and handles the returning status block as well as the flags and interrupts. best of all, it works on real hardware using my diagnostic program!

OK why does pin 1 start halfway down the edge of this chip???

my best guess is that the die is rotated to a 45 degree angle. anyway i want to dump the contents so i can analyze the drive firmware.

Great progress! But help out simpleton me, I've lost track of what you are doing. Is this still part of reverse engineering things to get a SnarkBarker to work on the expansion port?? Or an entirely different project?
@tubetime 16-bit parallel sounds like HPIB.
@fozztexx it's because DBA-ESDI is also inherently 16-bit. weird, but i must say that 256-word sectors is actually kinda satisfying.
@tubetime Isn't MADE24 supposed to stay low for another four and a half months?
@tubetime Is that photo from an Agilent scope screen? If yes, which scope are you using?
@http this is a logic analyzer, the Agilent/Keysight 16822.
@tubetime Ah, a dedicated 68 channel 350MHz state logic analyser. "state data rates up to 1.4 Gb/s". Looks cool expensive. Can't even find a price online. My Saleae is far away from that.
@tubetime how did you get past it, if the computer's hardware is now borked?
@developing_agent beats me, it still boots despite the error
@tubetime And now I learned there's a 168xx series of LA.

@tubetime Looks like the bus has MADE you a problem to solve :D.

...

...

...

I'll see myself out...

@tubetime may I suggest either some of these adaptors, or replicating / building them in next time

I hate having 30+ of those fiddly clips, so I grabbed some

@nroach44 i have some and tried them but the flex cable part is too stiff and was making it hard to type
@tubetime ah that's fair. I'm thinking when I get around to needing them I'll include them in the debug board so you just connect the 40pin cables straight on
@tubetime ooooh I want to make an SE/30 finglonger... hmmmmmm!
@tubetime don’t be modest, I count two blinky LEDs

@tubetime

Brain the size of a planet and all they
have me doing is blink an LED

@tubetime
“Rather complex”… it connects to MicroChannel slots on two different computers.🙂
@tubetime it's nice that the two reggies are working together after all these years of strife