Sunday, August 16, 2015

Building up the medium SPI link with an Arduino endpoint

It is blazingly hot here at 10AM, which limited the time I would spend in the shed working on the card reader. Even the garage/workshop is uncomfortably hot. It will be ideal for developing new logic, which is what I will be doing. The temperature hit 100F which is more than 20 degrees above what we are accustomed to.


Now that I found a few smudges that are raised above the head surface, I went back to cleaning the head focusing on those spots. Too, I worked to remove more of the smeared goo from inside the slot where the magnet poles are exposed. The microscope image shows the raised spots completely gone, so the only cleanup I could still do is to continue removing dirt from the slot.

Head with the surface dirt removed completely

Slot that could use a bit more cleaning, optionally


Before it got too hot, I went out to inspect the card reader interface, hoping to figure out why it isn't working with my PCs. I found that the USB interface is jumpered for external power, not USB power. I isolated it and tried it with USB power, which did cause the PC to recognize it immediately.

That means I have to work out how I powered the circuit, since something is not connected that should be. I remember using a bench power supply with the unit, so I have to move that out to the shed and hook it up to the appropriate wires. I feel pretty good about the chance that this will work properly once I have it hooked up.

I brought the power supply to the shed, wired it up and tried to do the card reading, but the USB device was not recognized on the PC. Further, when I touched the USB device I felt something very hot, so I shut the power down immediately. I don't know what went wrong, probably how I wired things up, nor do I know if there is permanent damage to the USB module.

Separately, I modified my slave fpga high speed link to receive several of the 1130 status signals and the value of the B register. I will display the B reg on the seven segment display and used the eight LEDs to display the timing states T0, T2, T4, T6, X0, X2, X4 and X6.

On the USB device for the card reader, I saw that my cable connector was shifted one pin off when installed, which is what shorted the USB board., Unfortunately, even with the connector in its proper place, the usb chip gets extremely hot. I had to order a replacement part before I can read the decks in as PC files. It will arrive by the end of the week.

I began working on an Arudino slave to hang on the medium speed SPI link, with a very simple protocol to exchange 64 input and output signals, enough to allow the slave microcontroller to be all output, all output or any combination. The transaction begins with a byte of 0xAA, has eight bytes of data and a trailing 0x55. During the eight data byte transfers, the flow is bidirectional.

The Arduino side was set up to mirror back what was sent, but real logic would be substituted for the mirroring when an Arduino is set up to handle specific peripheral(s). I began on the master fpga side, building the state machine to exchange the state of the signals when triggered. Three nested FSMs to handle this - one to exchange a frame, one to step through the ten bytes of a frame, and one to exchange a byte over the SPI link. 

No comments:

Post a Comment