National Semiconductor 32000

The introduction of the NS16032, quickly renamed NS32016, followed the introduction by Intel of the 8086 and the introduction by Motorola of the MC68000. All three chips used a 16-bit external bus, but internally the 68000 and 32016 were fully 32-bit computers. Just as the Intel 8086 led to a whole series of chips (80286, 80386, …); the Motorola 68000 led to a whole series of chips (68010, 68020, 68030, …); likewise, the National Semiconductor 32016 led to a series of chips (32032, 32332, 32532).

Unfortunately, the National chips were never as big a commercial success as the Intel and Motorola offerings. National did find a market in a series of chips as embedded controllers in peripheral devices.

New to the 32000 was the “module” architecture. Motorola started down this route with the 68020, but abandoned the idea with the 68030 and later chips. National kept the architecture through its entire upgraded line, 32332, 32532, and into the controller chips 32CG16, 32CG160, 32FG16, and so on.

Here is a link to one of the best sites paying tribute to the NS32000:

Here is a link to my S-100 board built many years ago using the NS32016 chipset:

RetroBrew project

With some interest shown with my inquiry about the NS32000 series on the Forum, the criteria for any board was

  1. NS32CG160 over NS32CG16
  2. 1Mb SRAM
  3. UART
  4. 3U size

The FPU was desired, but board size didn't permit it. That is, until the following compromises were made.

  1. SRAM is surface mount. The SSOP and TSOP II packages have 50mil pin centers. Not too bad to solder. A custom footprint on the board allows either package to be used (they are different widths).
  2. ROM is reduced to 8-bit width. This required upgrading a 74LS245 to 74LS646 (20-pin to 24-pin), and adding a 20-pin GAL to control access.
  3. The NS32181 FPU now fits (snugly).

This board is a fully stand-alone Single Board Computer with:

  1. RTC and NVRAM using the familiar DS1302 chip.
  2. 16-bit IDE interface connected to the DMA controller. Software will be PIO or DMA, whichever works.
  3. The RetroBrew bus connector, DIN 41612 is entirely optional. Power may be supplied through the Molex connector.
  4. Jumper selectable wait states for ROM, external memory, and I/O. SRAM is wired at 0 wait states.
  5. Blinken lights: User/Supversor state; HALT (wait for interrupt) condition.

THIS BOARD IS HIGHLY EXPERIMENTAL OPERATIONAL at this time. As of 6/1/2020, the above prototype is passing all its checkout tests.

CPU References and Development Software

There is no target OS for this board at this time. I am highly open to suggestions.

Here are the NS32CG160 CPU and NS32181 FPU hardware datasheets.

The NS32CG160 Instruction Set manual is an edited version of the full '532: NS32000 Instruction Set manual. The '532 manual has MMU, Custom Slave instructions, as well as extra CPU & Debug registers.

The best development suite I have seen is the GCC 3.4.6 compiler and utilities for '532 NetBSD. It runs on 64-bit Linux.


NS32016 / NS32532 / NS32CG160 CPU Differences Noted

  1. The NS32CG160 board does not support the SETCFG instruction. Instead, the configuration register is read/written with the LPRD cfg instruction.
  2. Unlike the NS32532, the 'CG160 does not have processor registers DCR, BPC, DSR, or CAR debug registers.
  3. There eithe is no assembler support for the UPSR or USP registers as directly accessible in supervisor state. The SP registers may be diddled by toggling the S bit in the PSR in supervisor state, and the User PSR may be diddled during a RETT or RETI instruction.
  4. The 'CG160 has all the OEM peripherals: DMA & Timers.
  5. Interrupts are totally different on the 'CG160. No NS32202 chip is usable.
  6. The 'CG160 has a DE (Direct Exception) bit in the Configuration Register. This bit defeats the Module calling diring interrupts and traps. The NetBSD compiler doesn't support the module capability, anyhow.
  7. The 'CG160 has no MMU or CustomCoprocessor capability. The C & M bits in the configuration register instead control division of the input oscillator clock by 2, 4, 8 for power saving.

It is a shame this chip has only 24 address lines.

boards/sbc/ns32000.txt · Last modified: 2020/06/01 18:45 by jcoffman
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0