Raspberry Pi Pico Contest - Share Project to Get a New One for Free Call for pcb design tutorials - Learn the basics of PCBs and the information needed to get started designing your first PCB
VOTE NOW!
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
Design 1/4
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
Usability 2/4
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
Creativity 3/4
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
Content 4/4


* * DESCRIPTION * *


The 68k-MBC is an easy to build 68008 CPU SBC (Single Board Computer), using only easy to find TH parts.


It follows the same "concept" of the previous Z80-MBC2 (https://hackaday.io/project/159973) and V20-MBC (https://hackaday.io/project/170924) boards, using a PIC18F47Q10 MCU as EEPROM and "universal" I/O emulator (so a "legacy" EPROM programmer is not needed).


You can choose between two main HW configuration options: Lite or Full. Lite HW configuration option allows to build a 3 ICs 68008 system running CP/M-68K.


It has an optional on board 16x GPIO expander, and uses common cheap add-on modules for the SD (HD emulation) and the RTC options.


Having two onboard RS232 serial ports, it allows to connect RS232 terminals like uTerm-S (https://hackaday.io/project/176716).





* * THE PROTOTYPE * *

In the first phase of the design I've used a prototype on a breadboard to check the basic "concepts".

I've used as "companion" MCU a PIC18F47Q10 on a custom board (PicOne) I previously made and that it is directly pluggable on breadboards, and with onboard microSD card and USB-serial adapter.:


To make the firmware for the PIC18F47Q10 I've used MPLAB X IDE with the MCC plugin.

Here a short video with an automated assembler toolchain using Easy68K as assembler and sLoad, a custom SW utility to load from the serial port and execute a Motorola S-record formatted executable:


To allow a real automated toolchain an auto-reset circuit on the breadboard takes the DTR signal from the serial-USB adapter and uses it to reset the MCU (like in the Arduino Uno board), so it is possible reset the breadboard from a batch file running in the PC using a macro of Tera Term.


* * WHY A PIC? * *

Those have followed the previous Z80-MBC2 and V20-MBC boards will note that I haven’t used here an Atmega MCU. Using an Atmega MCU allows to use the friendly Arduino IDE and many ways to flash the MCU, so this is an enabling factor.

Unfortunately Atmega MCU GPIO ports are not TTL compatible, and this limitation was solved in the previous boards using a CMOS CPU that under given conditions can accomplish the digital levels of the Atmega MCU.

But here the 68008 CPU isn’t available in CMOS technology at all, so an Atmega MCU cannot be used.

So I’ve done some searches to find an alternative MCU having three main constraints: must have TTL compatible GPIOs, must be a TH part and cheap too.

The only part I’ve found was a PIC18F47Q10 MCU, and I must say that it accomplish the previous constrains very well. More, it is a modern MCU with lot of interesting features and more flash and RAM memory than the previous Atmega32 MCU.

Of course nothing comes free, and the choice of a PIC18F47Q10 brings some complexities. The first is the need of an appropriate HW programmer to flash it. The second is the constraint to use a proprietary IDE (MPLAB X) to write or modify the source that is more complex to use than the Arduino IDE (but I must say a lot more powerful…).

Those wanting make modifications to the firmware will have to install the MPLAB X IDE and learn to use it. MPLAB X is a professional tool, and with a lot of “power” comes a lot of complexity too… I hope this won’t be a problem, and after all learn to use a professional tool like MPLAB X IDE is always a good thing.



* * HARDWARE OVERVIEW * *

Here the 68k-MBC hardware main specs:


  • 68008 CPU running at 8MHz;
  • multi-boot capability;
  • two main HW configuration options: Lite or Full. Lite HW configuration option allows to build a minimal 3 ICs 68008 system;
  • RAM can be configured as 128/512/1024KB (1024KB supported on the Full HW configuration option only);
  • optional RTC and microSD (HD emulation) modules (the same used in the Z80-MBC2);
  • optional 16x GPIO port;
  • I2C expansion port;
  • 2 serial ports (serial port 2 supported on the Full HW configuration option only) ;
  • on board RS232 drivers for both the two serial ports (Full HW configuration option only);
  • serial-USB adapter support on the serial port 2 with independent power supply (Full HW configuration option only);
  • User led and key;
  • ICSP connector (for the PIC18F47Q10) for an easy firmware installation/upgrade;
  • it is compatible with the uTerm (https://hackaday.io/project/165325) and uCom (https://hackaday.io/project/165709) add-on boards.


LITE/FULL HW CONFIGURATION OPTIONS

The 68k-MBC allows to choose between two main HW configuration options: Lite or Full. Lite HW configuration allows to build a minimal 3 ICs 68008 system.


The two HW configurations are quite different, and some signals behave in a complementary way. The IOS firmware checks which one HW configuration is used at first and changes the signals behavior accordingly (where needed).


The Lite HW configuration need less components populated than the Full one, with the only exception of one resistor (R4) that is needed only for the Lite HW configuration and is not needed with the Full HW configuration (anyway it will not "hurt" if present on the Full HW configuration).


The following photo shows the 68k-MBC with the Lite configuration populated:



The following photo shows the 68k-MBC with the Full configuration populated (previous PCB revision):



To simplify the selection of the components a modular BOM shows the components needed for the two HW configurations.

An important task to do at first is the configuration of the three solder jumpers (SJ1, SJ2, SJ3) in the bottom side of the PCB.


After you have chosen the wanted HW configuration to implement you must set the three solder jumpers SJ1, SJ2 and SJ3 in the following way:


  • If you have chosen the Full HW configuration just leave all the three jumpers open;
  • If you have chosen the Lite HW configuration all the three jumpers must be shorted.


WARNING: Permanent damages may occur if you don't follow the previous procedure as described!


WARNING: Permanent damages may occur if the three jumpers are shorted when U1, U2 and U5 are populated!

In the following photo SJ1, SJ2, and SJ3 are all shorted to enable the Lite HW configuration:



LIMITATIONS OF THE LITE HW CONFIGURATION OPTION

The Lite HW configuration option allows to build a 68008 system with a minimal BOM, but brings some limitations compared with the Full one:


  • the 1024KB RAM configuration is not supported. Only 128/512KB are allowed;
  • in the AUX connector only the I2C port is present;
  • only the serial port 1 can be used (at the SER1 connector only);
  • is not possible to use the CPU interrupts.


Anyway it can run all the provided SW, CP/M-68K included.


RAM CONFIGURATION

The supported RAM configurations are different for the two Lite/Full HW options.

The Full HW option allows three different RAM configurations:


  •    128KB (1x128KB);
  •    512KB (1x512KB);
  •    1024KB (2x512KB).


To set the 128KB RAM configuration the JP1 jumper (A17) must be left open, while to set the 512KB or the 1024KB configuration JP1 must be closed.


This operation must be done when the board is not powered, and before the first power on with the RAM chips installed.


Please note that only a single RAM chip configuration is allowed when using 128KB RAM (2x128KB is not supported).


The Lite HW option supports 128KB and 512KB only, setting JP1 as for the Full one (the 1024KB RAM configuration is not supported for the Lite HW option).



THE SERIAL PORT 1 CONNECTOR (SER1/J2)

The SER1 port (J1) can be connected to a TTL-RS232 adapter or to a serial-USB adapter like the one (CP2102 based) in the following image:


This serial-USB adapter can act also as power source for the 68k-MBC, and has the DTR signal for the "autoreset" to trigger the upload of a S-record formatted stream when using the sLoad boot mode, enabling the implementation of an automated toolchain.

Note that the CTS pin of the SER1 port (J2) is not currently supported and must be left disconnected (as the NC pins) when using a serial-USB adapter.

Also the 3V3 pin of the serial-USB adapter must be left disconnected:


In the following table there is the pin mapping for J2 and how connect a serial-USB adapter:



THE AUX CONNECTOR (AUX/J4)

The AUX (J4) connector expands the IOEXP connector used in the previous boards (V20-MBC and Z80-MBC2), supporting both the two serial ports with RS232 levels, the I2C port, the TTL level serial 2 port and a serial-USB adapter for the serial 2 with independent power.

The are two different pin mapping for the two Lite/Full HW option configurations (Lite supports only a few pins).

The J4 pin mapping for the Full HW option is the following:




The J4 pin mapping for the Lite HW option is the following:





THE GPIO CONNECTOR (GPIO/J7)





THE OPTIONAL SD MODULE

The optional SD module is used as HD emulation. The module is a common 6 pins microSD module that can be easily found on ebay:


If a socket is used for the PIC MCU, a little cut is required to allow a good insertion into the J6 connector.

The cut is in the right angle near the connector as shown in the following image:



Pay attention on how and where you plug the module in (the only right connector for it is J6 marked as SD-MOD). If you plug it in the wrong connector or in the wrong way it is possible cause permanent damages to both the module and the 68k-MBC board! So plug it as shown in the following image:




THE OPTIONAL RTC MODULE

The RTC is a common module based on a DS3231 RTC like this one:


This cheap modules have a trickle charging circuit that may cause the "explosion" of the battery if you use a standard CR2032 cell. More, it can damage also a rechargeable LIR2032 cell. For more information and how to fix it see here.

The RTC module has it's own pullup resistors on SDA and SCL. Because the value is 4k7 (the same value used inside the 68k-MBC board), the resulting value will be:

4k7 // 4k7 = 2k3

Because this value is fine there is no need to take away the pullup on the RTC module.

Pay attention on how and where you plug the module in (the only right connector for it is J5 marked as RTC-MOD). If you plug it in the wrong connector or in the wrong way it is possible cause permanent damages to both the module and the 68k-MBC board! So plug it as shown in the following image:





All the updates and the details to build it (including the firmware for the PIC MCU and the SD image for HD emulation) are in the 68k-MBC page here:


https://hackaday.io/project/177988





Apr 12,2021
1,203 viewsReport item
  • Comments(0)
  • Likes(6)
You can only upload 1 files in total. Each file cannot exceed 2MB. Supports JPG, JPEG, GIF, PNG, BMP
    View More
    VOTING 2 votes
    • Marc Cote from CANADA
      • 10
        design
      • 10
        usability
      • 10
        creativity
      • 10
        content
      10.00
    • Alex Gellen from GERMANY
      • 8
        design
      • 7
        usability
      • 4
        creativity
      • 9
        content
      7.00