23 May 2016

Architecture rethink

I have been spending some time thinking about the overall architecture of the controller.

At the moment I am using two Arduino Due processors, one for all the control stuff and the other for managing the display functions. The two processors are connected via a byte-wide bi-directional parallel bus with a simple packet protocol that I devised to manage communications. This is OK but a number of architecture-specific issues arise:
  1. Fast though the byte wide comms channels are, they will probably struggle with the data rates needed to support pan adapter displays.
  2. I'm finding that there is rather a lot of additional code associated with splitting the work between two processors.
  3. The display processor is very underutilised and it is therefore something of a waste of good hardware. Arduino Dues are cheap enough but the reality is that everything can be done from a processing perspective with a single processor.
  4. It's proving difficult to get the parallel interface to work reliably. It's not clear why but it seems to be something to do with the way that power is managed on the Arduino Due processor boards.
The reason I went to a dual processor architecture was because of difficulties with the physical implementation of all the components onto a single processor stack. Specifically, the interface board for the display cannot interwork with other boards such as the Ethernet controller. There is a secondary issue that these boards also fight for resources on the SPI bus, as discussed in an earlier posting.

Well things are changing. A new display interface board is soon coming to market that will permit proper "stacking" of all the boards. I have been working closely with the developer and it looks like this will solve the physical implementation issues. The problem with SPI resource management is still there and is a nuisance. However, I have access to all the code and it should be possible to find a fix. Not for the faint-hearted as it involves messing around in the drivers.

I would really like to get back to a single processor configuration if possible. My experience so far is that the dual processor solution creates more problems than it solves!

What with this and the PCB work in progress, it's unlikely that there will be much progress to discuss here for a couple of weeks.

No comments:

Post a comment