Sunday, September 11, 2016

Continuing work on disk driver tool

I am helping my wife with a fundraiser for Villa Siena, by building a mock Bavarian building front to be used as a backdrop for guest photos at the Oktoberfest fundraiser. Lots of sawing, measuring and so forth, but it is coming together well.

The sides of the building are eight feet tall the roof adds another four feet - hard to lift it up that high! Will be doing some of the assembly flat on the ground, then rotate the completed unit upright ninety degrees. It has to come apart for transportation, which complicates things a bit.


I wrote and tested the two new state machines, Update Data Record of Sector (UDS) and Update Label and Data Record of Sector (ULDS), which will leverage the existing Read Field and Write Field logic. The alter the preamble and postamble timing to handle the switchover from reading to writing.

These both begin by reading the first record of the sector, the header field. UDS will also read the second (label) field while ULDS will write new contents for that record. Both of these will write new content for the third record (Data).

I am seeking blank or sacrificial cartridges for the Alto that I can use to test out the write and update functionality in the real world. We have a couple of potential sources, but at worst case I will just have to use one of my spare fpga boards and connect my driver role board to my emulator role board. This way, I could mount cartridge contents on a PC, access it from my driver as if it were a physical Diablo, and see what happens as I read, wrote and updated portions of the virtual cartridge.

Building up the two new FSMs, both of which drive the Read Field and Write Field FSMs, means more muxing of fields since an address, preamble, count or trigger for those two machines can be produced by three or four of this higher level FSMs. It may be that the emulation role could involve adding more of such driving FSMs, thus this has to be generalized neatly.

I also set up a testbench to verify the ability of my level shifting circuitry to handle the incoming and outgoing disk head signals, which operate at over 1.6MHz. I set up my Digilent Analog Discovery to generate a square wave at that frequency, 0 to 5V swing, passed it through the circuitry to shift it down with 0 to 3.3V then display it on my oscilloscope.

As I feared, this circuit will NOT pass the high frequency signals I need. My second experiment will be with a simple voltage divider, which should definitely work right as long as I choose resistor values wisely.

No comments:

Post a Comment