Close

MC68681 - Just one more thing...

A project log for 6809 SBC

A 6809-based SBC with DES encryption hardware.

philmacphailPhil.macphail 01/13/2021 at 17:582 Comments

Configuring the 68681 serial ports was the next task, so that I can replace the 6850 I am currently using. The datasheets from NXP and Motorola rather complicate things with the register explanations requiring constant referencing to different pages to do quite simple things. I decided that I would write a simple program to send a character from port A repeatedly as the first test, so that I could confirm the correct configuration. This proved problematic but I found a configuration that almost worked, so I enhanced the code to read a received character and resend it. I could then check the function in a controlled way. With this some characters were sent correctly, some were modified to different characters, and some were translated to multiple characters. This was completely repeatable; pressing the same key on the keyboard always resulted in the same outcome, even if it was incorrect. Checking with an oscilloscope I could see that the data format being sent wasn’t what I was setting in the configuration registers, and I suspected a hardware fault. When I designed the PCB I didn’t gate the chip select pin with the E signal from the CPU as I didn’t have a spare gate. I half expected that to cause a problem but I had seen other schematics that did the same thing, so thought I would try it. I was fairly sure that might be the problem here. Piggy-backing a chip onto another and lifting a couple of pins let me add the required gate, and everything started working as expected. Fortunately the gate I need will be available when I stop using the 6850, so the changes to the layout are quite simple (but the changes for the revision of the PCB are growing). I also realised I had the pinout of the serial connector wrong to plug an FTDI serial board straight into the CPU board, so more changes needed there too.With a reliable serial port working with my terminal I had all the routines needed to modify the monitor code. I was able to transfer all communication to the 68681, set the memory page register, copy the EEPROM to RAM and disable the EEPROM (using the output pin of the 68681) in a single update to the monitor. It all worked in the same way as the individual steps had, but this was the first time they were all tried at once. Very satisfying. Having the 6850 and Assist09 working from the (almost) beginning was a huge help in getting this far. Without that I don't think I could have got the new serial interface working at all as I would have had little insight into the behaviour of the PCB otherwise.
The next step is to apply all the modifications to a second PCB that has a Compact Flash socket in place of the 6850 and test the CF interface. If this works then it will be time to get a new PCB made with all the changes and add a few more features.
I will put the asm file for the modified Assist09 on the GitHub page in the next couple of days, and probably add it here too.

Discussions

Phil.macphail wrote 06/09/2022 at 11:17 point

The merger/name change path is relatively simple -

Motorola (name change)>FreeScale

Signetics (bought) > Philips (name change) > NXP > merged with FreeScale. From there it gets more complicated, with the split of the semiconductor business into NXP and Nexperia. 

Interestingly, I have found NXP 68681 parts to be a safer option to Motorola on eBay (on a smalll sample size).

  Are you sure? yes | no

Mike wrote 06/08/2022 at 02:36 point

Here's a gratuitous plug to another Hacaday project involving the MC68681: https://hackaday.io/project/174739-mc68681p-minicomputer-power-automation/details

Know that Philips used to make a (licensed?) equivalent: SCC68681. Packaged the UART as a PDIP, SCC68681C1N40, and even a PLCC. NXP has the datasheet these days :
https://www.nxp.com/docs/en/data-sheet/SCC68681.pdf

And here's a brain-teaser: What's the merger/acquistion progression of Motorola, FreeScale, Signetics, Philips Electronics, and NXP (!)

  Are you sure? yes | no