Learning experiences and new tools

This project is difficult and far-reaching precisely so it will drive me to learn a great deal about a wide range of subjects and skills. As such, it involves the need to confront some entirely new protocol, type of device, tool or aspect of design. Forward progress slows to a snails pace, frustration can surge, but eventually each area snaps into some mental focus, confidence grows and correctly operating mechanisms are the evidence of my success.

Linking the FPGA to other devices, both those built onto the Nexys2 board and the many external ones I am using, generally requires studying some protocol and set of electrical requirements, production of both soft hardware (VHDL) and physical boards, and extensive testing. There are many link protocols that can be used and I have deliberately spread my work across different ones to impel me to learn each. Serial communications, USB high speed stream mode, SPI, I2C and a 2 wire protocol proprietary to the MAX7219 chips. In addition, I had to learn how to access the DRAM chips on the Nexys2, the flash chips, and of course all the interfacing protocols for the Selectric based console and other peripherals.

In order to ensure I know how to access the various chips, I made use of a neat tool called the Bus Pirate which lets me drive and investigate the devices until I really understand the protocol. ref -  Bus Pirate site
Bus Pirate board

The logic analyzer also lets me snapshot the activity on the lines and see glitches, timing errors and other anomalies.

For the PC side, where I will emulate certain peripherals like card readers and pass the card images down to the machine, I decided to build this with a graphical interface, since I have no background in Windows GUI, and code it in Python, as I don't know that language but it appears to be worth learning.

No comments:

Post a Comment