[Coco] RS232 Schematics, was DriveWire survey

CoCoList for Color Computer Enthusiasts coco at maltedmedia.com
Sun May 11 23:30:07 EDT 2014


On Sun, May 11, 2014 at 11:02 PM, CoCoList for Color Computer Enthusiasts <
coco at maltedmedia.com> wrote:

> The main problem with USB as a "super interface" is the driver aspect.
>  It's not an unworkable idea, but having given some thought to things over
> the night and day, it is apparent that all such solutions will require one
> component:
>
> a Coco bus to uC/CPU bridge.
>
> When the Coco (or any system, for that matter) goes to read a byte from
> the bus, the data needs to be there already, because an ARM or AVR won't
> have time to go get it and stuff it onto the bus for the read, unless there
> is a wait state, and wait states are no fun.
>
> I'm still noodling how to do that, as each legacy interface expects things
> in a certain way.
>

Jim,

I ran into the same issue.  The solution I found was to use a CPLD as a
dual-interface memory between the Coco bus and the uC.  The CPLD can be
clocked fast such that each device thinks it has exclusive access to the
register.  A write from the Coco side triggers an interrupt on the uC
side.  You could do the reverse as well if NMI was available.  If not,
having the Coco device driver poll a status register would work.

I haven't tested it, but my thought was that an SPI-type interface would be
potentially easier.  Have the Coco load up one or more registers, and then
trigger a transfer via a control register.  The interface board (probably
just a single CPLD) would clock those bits out an SPI interface to the uC,
loading what is received back into those registers.  A status register
would indicate to the Coco that the transfer was complete.  Given how slow
the Coco is, it's possible this transfer would happen within a single
instruction cycle.  For bulk data reads, the status register could also
indicate if the uC's data buffer was empty, or if it had more data to
transfer - in that case, the Coco could keep triggering a read loop until
the status cleared.  Make a simple SPI command protocol, and your uC can do
arbitrary things on behalf of the Coco driver.

I am completely swamped for the next 2-3 weeks, but now I want to test this
out.  Unless someone beats me to it, I'll try to mock something up and post
my results.
  -Matt (stock at bexkat.com)



More information about the Coco mailing list