top of page
  • Writer's picturerehsd

Transitioning 80286 from Breadboard to PCB

Updated: Jan 22, 2023

Over the past couple of months, I have been working to build out a breadboard-based 80286 system. See /blog/categories/x86. I plan to start winding down efforts on the breadboard system and shift my efforts to a PCB-based 80286 system.

I now have the core system running on a PCB.

Up next, I plan to populate the remainder of the board, with a focus on getting all SPI devices working (8-character numeric display, SD Card reader, USB serial-to-PC communication, and real-time clock).

Issues / Modifications

As I work on version 0.10 of the PCB, here are issues I have found and/or modifications I have made.

  • The LED bar graphs for address data had signals reversed in each of the 8-bit outputs. I have updated the schematic so that this will be corrected in future versions of the PCB.

  • I did not have decoupling capacitors on the 6522 VIA. I soldered a 0.1uF and 0.01uF capacitor on the bottom side of the PCB, under the VIA. I have updated the PCB layout.

  • I added a modification to the PS/2 keyboard circuit to allow adjustment of the interrupt timing with a trimpot. I also added support for keyboards which do not auto-reset. This will allow me to use a newer PS/2 keyboard which requires communication from the host to the keyboard to enable the keyboard. I am using u/gfoot's design for this auto-reset. Also, I updated the PS/2 keyboard handling code utilize a keyboard buffer and support upper case (along with punctuation).

  • At one point, I had moved the VIA CS# output pin on the PSoC to a pin that did not have an onboard capacitor on the PSoC. I failed to update the schematic when I updated the PSoC, so I had to run a line from the updated PSoC pin to the control latch.

  • My schematic had one of the OLED I2C pins incorrect on the Nano. I updated the schematic. No changes were needed to the PCB, as I am just connecting to a pin header; I simply shifted a wire on the pin header.

  • My power on auto-reset is not holding low when connected to the PCB. When using the breadboard system, this is not an issue. I will need to further troubleshoot this. Update: If I remove power from the Arduino Mega, the auto-reset works fine.

  • Communication with the RTC is struggling at higher speeds. I likely need to adjust some timing in the SPI code for the RTC. Update: I resolved the issue by moving the RTC VCC to the 3.3V supply on the Nano and changing the VIA clock back to PCLK (instead of PCLK#).

Schematic, Address Decode, and Assembly

The current schematic, as of 17 December 2022:

Schematic_80286 v0.11_2022-12-17
Download PDF • 1.21MB

Address decode logic loaded on the PSoC:

Assembly code at this point:

316 views0 comments


bottom of page