Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
sst-6809:a_tour_of_the_hardware [2025/05/30 09:26] – [DS1813] robertsst-6809:a_tour_of_the_hardware [2025/06/03 20:24] (current) robert
Line 1: Line 1:
 ====== A Tour of the Hardware ====== ====== A Tour of the Hardware ======
 +//Based on the **[[https://github.com/KenWillmott/SST-6809|SST Circuit Description]]** by Ken Willmott//
 +
 +The SST (Super Searle-Tranter) board is a 10cm by 10cm single board
 +computer using either the MC6809 or the HD6309 microprocessor.
 +
 +It provides the resources needed to run and communicate with an attached
 +support computer such as a PC or laptop.
 +
 +The present design employs traditional technology such as through hole
 +mounted components, and MSI logic IC’s in the 74HCT logic family.
 +
 +Denser and more affordable memory was used, than in the era of
 +introduction of the MC6809.
 +
 +Thus it suggests, a computer that could have been made in the 1980’s,
 +if advanced memory devices were available.
 +
 +Like the Searle-Tranter design, an expansion bus is provided.
 +
 +But in this case, the bus has been enhanced and expanded to provide more
 +flexibility and options.
 +
 +===== Architecture =====
 +
 +The CPU, either MC6809 or HD6309, extends its data, address and control
 +signals directly to the expansion bus.
 +
 +The data and address lines also extend to the on board EEPROM and NVRAM
 +IC’s, and the MC6850 or HD6350 ACIA serial communications IC.
 +
 +Some of the address and control lines also extend to a cluster of decode
 +circuitry, which controls both the on board components and the expansion
 +bus control lines.
 +
 +There are no bus buffers on the expansion bus, both for the reason of
 +simplicity, and also because the facilities of the board may be extended
 +via the bus connector, to an external CPU so that it can make use of them
 +(when the CPU socket is depopulated).
 +
 +===== Circuit Description =====
 +
 +The operation of the CPU is straightforward and is explained in the
 +Motorola documentation.
 +
 +The expansion bus is MC6809 oriented and so, directly exposes the most
 +important control signals of the processor to peripheral cards that are
 +connected to it.
 +
 +A few of the bus signals are unique, and those will be explained later on.
 +
 +On the board, the decode logic selects and provides the correct timing
 +signals to the memory, ACIA and paging latch.
 +
 +Generally, the memory map consists of mostly non-volatile SRAM that is
 +battery backed up via a NVRAM controller IC.
 +
 +The memory allocation of both the I/O and the EEPROM occupy only 4kb each,
 +so that 56kb of contiguous RAM is available to loaded software.
 +
 +Both the EEPROM and the NVRAM size exceed what can fit in an 8 bit
 +CPU’s memory, so those are paged using a latch that can be controlled
 +by the CPU.
 +
 +The current NVRAM is 512kb in size, and the EEPROM is 32kb.
 +
 +Because the main memory is non-volatile, programs under development
 +need not be repetitively loaded for testing, working programs may not
 +need auxiliary memory, and the remaining 460kb of NVRAM may be used for
 +paged executable software, or as a RAM based disk drive emulation.
 +
 +===== Bus Routing =====
 +
 +Full Address and Data bus lines (with most Control lines) route to the M8 bus connector, onboard memory, ACIA, and address decode circuitry.
 +
 +===== Address Decoding =====
 +
 +The address and control decoding is performed separately from the timing
 +clock signal E.
 +
 +That is to eliminate setup and hold requirement compromises at the inputs
 +of the peripherals that the decode circuit is controlling.
 +
 +So, it will be apparent that the E signal is combined with the decoded
 +address and control signals, at the last possible stage in the decoding
 +circuit.
 +
 +===== Walking Tour Of The Parts List =====
  
 ^  Part# ^ Integrated Circuit  ^ ^  Part# ^ Integrated Circuit  ^
-|  U1 | Motorola [[#MC68B09]] or Hitachi [[#HD63C09E]] MPU  | +|  [[#U1]] | Motorola [[#MC68B09]] or Hitachi [[#HD63C09E]] MPU  | 
-|  U2 | Texas Instruments [[#SN74HCT273N]] Octal Flip-Flop with Reset  | +|  [[#U2]] | Texas Instruments [[#SN74HCT273N]] Octal Flip-Flop with Reset  | 
-|  U3 | Alliance [[#AS6C4008-55PCN]] 4Mbit / 512KB SRAM  | +|  [[#U3]] | Alliance [[#AS6C4008-55PCN]] 4Mbit / 512KB SRAM  | 
-|  U4 | Motorola [[#MC68B50]] or Hitachi [[#HD63B50]] ACIA  | +|  [[#U4]] | Motorola [[#MC68B50]] or Hitachi [[#HD63B50]] ACIA  | 
-|  U5 | Dallas Semiconductor [[#DS1813]] EconoReset +|  [[#U5]] | Dallas Semiconductor [[#DS1813]] EconoReset 
-|  U6 | Phillips [[#74HCT02N]] Quad 2-Input NOR  | +|  [[#U6]] | Phillips [[#74HCT02N]] Quad 2-Input NOR  | 
-|  U7 | Dallas Semiconductor [[#DS1210]] Nonvolatile Controller  |  +|  [[#U7]] | Dallas Semiconductor [[#DS1210]] Nonvolatile Controller  |  
-|  U8 | Shenzhen Honglifa HLF [[#SN74HCT139N]] Dual 2-to-4 Line Decoder / Demultiplexer +|  [[#U8]] | Shenzhen Honglifa HLF [[#SN74HCT139N]] Dual 2-to-4 Line Decoder / Demultiplexer 
-|  U9 | Atmel [[#At28C256]] 256Kbit / 32KB Parallel EEPROM +|  [[#U9]] | Atmel [[#At28C256]] 256Kbit / 32KB Parallel [[#EEPROM]]  | 
-|  U10 | Motorola [[#MC74HCT138AN]] 3-to-8 Line Decoder / Demultiplexer +|  [[#U10]] | Motorola [[#MC74HCT138AN]] 3-to-8 Line Decoder / Demultiplexer 
-|  U11 | Dallas Semiconductor [[#DS1233]] EconoReset  |+|  [[#U11]] | Dallas Semiconductor [[#DS1233]] EconoReset  |
 |  U12 | - not present -  | |  U12 | - not present -  |
-|  U13 | Phillips [[#74HCT20N]] Dual 4-input NAND  |+|  [[#U13]] | Phillips [[#74HCT20N]] Dual 4-input NAND  |
  
-===== MC68B09E ===== +===== U1 =====
-Motorola's 8-bit microprocessor.+
  
-===== HD63C09E ===== +Micro Processor Unit (MPU).
-Hitachi's upgraded 8-bit microprocessor based on the Motorola 6809.+
  
-===== SN74HCT273N =====+The MPU U1 coordinates all bus activity via its data, 
 +address, and control lines. 
 + 
 +The MPU is driven by an on chip clock oscillator controlled by quartz 
 +crystal [[#Y1]]. 
 + 
 +The MPU signal E which sets bus timing, is derived from the oscillator, 
 +at 1/4 the frequency of that crystal. 
 + 
 +Thus, an 8.0MHz crystal will run the bus at 2.0MHz. 
 + 
 +The allowable frequency depends on the timing specifications of the 
 +specific MPU in use, as well as all the other devices on the bus. 
 + 
 +The main MPU control signals that are used on board are E (bus enable), 
 +R/W (read/write), and RESET. 
 + 
 +Interrupt line IRQ also extends to the [[#ACIA]] for interrupt driven serial 
 +operation. 
 + 
 +Most of the MPU control lines also extend to the external bus interface 
 +connector. 
 + 
 +Thus external DMA, slow memory accesses, etc., are supported on the bus. 
 + 
 +==== MC68B09 ==== 
 + 
 +Microprocessor Option 1: Motorola's famous 8-bit microprocessor, the 6809. 
 + 
 +The MC68B09 maximum clock is 2.0MHz without overclocking. 
 + 
 +For simplicity and to reduce part counts, the SST-6809 uses the internally-clocked version of the MC6809, rather than the externally clocked MC6809E 
 + 
 +:!: Link to Data Sheet 
 + 
 +==== HD63C09 ==== 
 + 
 +Microprocessor Option 2: Hitachi's upgraded 8-bit microprocessor based on the Motorola 6809. 
 + 
 +The Hitachi MPU sips less power, runs cooler, and contains additional registers and instructions capable of running with fewer clock cycles per instruction. 
 + 
 +The HD63C09 maximum clock rate is 3.0MHz without overclocking. 
 + 
 +:!: Link to Data Sheet 
 + 
 +===== U2 =====
  
 Memory paging latch. Memory paging latch.
-===== AS6C4008-55PCN =====+ 
 +Paging latch U2 may be written by the MPU to select different segments 
 +of the extended EEPROM and NVRAM memory. 
 + 
 +It controls both, the lower 4 bits control NVRAM, 3 upper bits control 
 +EEPROM page selection, and one remaining bit controls a status display 
 +LED on the board. 
 + 
 +Due to the aim for simplicity, the latch location is not qualified 
 +with the R/W signal, which means that if it is read instead of written, 
 +random data will be written to the latch. 
 + 
 +This will usually crash the machine. 
 + 
 +:!: This will be corrected in future board designs. 
 + 
 +==== SN74HCT273N ==== 
 + 
 +:!: Link to Data Sheet 
 + 
 +===== U3 ===== 
 + 
 +Non-Volatile Random Access Memory (NVRAM). 
 + 
 +The static random access memory (SRAM) socket may hold either a 128kb or 512kb NVRAM, and is also bank selected with a combination of latch [[#U2]] and a special “steering” 
 +gate [[#U6A]]. 
 + 
 +The purpose of [[#U6A]] is to enforce a contiguous 56k CPU view of main 
 +memory, while also supporting the swapping of 32k pages in the lower 
 +half of memory. 
 + 
 +This is done with NOR gate [[#U6A]]. 
 + 
 +==== AS6C4008-55PCN ====
 Alliance Semiconductor 4Mib / 512KiB static RAM. Alliance Semiconductor 4Mib / 512KiB static RAM.
  
-===== MC68B50 ===== +:!: This RAM is capable of being battery backed up with the design of the SST-6809 board design and works with or without battery power.
-Motorola's Asynchronous Communications Interface Adapter (ACIA) for serial communication.+
  
-===== HD63B50 ===== +:!: Link to Data Sheet 
-Hitachi's upgraded Asynchronous Communications Interface Adapter (ACIA) based on the Motorola 6850.+ 
 +===== U4 ===== 
 + 
 +The MC6850 / HD6350 is a complete asynchronous serial interface, which 
 +enables serial communication with external serial devices. 
 + 
 +It obtains its timing reference from a 1.8432MHz crystal oscillator 
 +module on board. 
 + 
 +A mounting space has been provided on board, to attach a USB/serial 
 +conversion module to the serial lines, so that the board can communicate 
 +directly with a USB host running the serial protocol. 
 + 
 +The operating power for the board can optionally come from there, or 
 +else from a dedicated power connector J2 adjacent to it. 
 + 
 +The MC6850 was designed by Motorola, specifically for use with Motorola 
 +8 bit CPU’s, so the rest of the interface details are unremarkable. 
 + 
 +It is mapped into the I/O space by the decode circuit on board. 
 + 
 +==== MC68B50 ==== 
 + 
 +ACIA Option 1: Motorola's Asynchronous Communications Interface Adapter (ACIA) for serial communication. 
 + 
 +:!: Link to Data Sheet 
 + 
 +==== HD63B50 ==== 
 + 
 +ACIA Option 2: Hitachi's upgraded Asynchronous Communications Interface Adapter (ACIA) based on the Motorola 6850. 
 + 
 +:!: Link to Data Sheet 
 + 
 +===== U5 =====
  
-===== DS1813 ===== 
 One of three reset circuit options for the SST-6809. One of three reset circuit options for the SST-6809.
 +
 +DS1813 is the preferred reset device, and will hold the CPU and any
 +attached peripherals in a RESET state when power is applied or removed.
 +
 +Two alternate circuits are provided on board, in case the component
 +can’t be obtained.
 +
 +A short to ground will activate the DS1813, so the reset button uses
 +that method to perform a manual reset.
 +
 +==== DS1813 ====
  
 The DS1813 is the preferred or default option. The DS1813 is the preferred or default option.
  
-===== 74HCT02N =====+:!: Link to Data Sheet 
 + 
 +===== U6 ===== 
 Address decoding. Address decoding.
  
-===== DS1210 ===== +==== U6A ==== 
-Battery backup.+ 
 +Without U6A, either the lower 32k would be duplicated in the upper 32k 
 +of memory, or else the paging would be restricted to 64k pages. 
 + 
 +That would conceal the 8k at the high end of each extended memory page, 
 +which is an unacceptable waste. 
 + 
 +Unfortunately, U6A by itself is not sufficient to maintain a static 
 +mapping of the upper 32kb of memory, so paging must be performed by 
 +routines resident in ROM only. 
 + 
 +:!: This limitation will be addressed in future versions. 
 + 
 +==== U6B ==== 
 + 
 +This circuit portion further decodes the address and qualifies the input 
 +to the memory paging latch [[#U2]] with the timing signal E. 
 + 
 +==== U6C ==== 
 + 
 +This gate parallels a ROM bank select jumper setting so that it can be 
 +both manually and jumper controlled. 
 + 
 +:!: It will be deprecated in future. 
 + 
 +==== U6D ==== 
 + 
 +This NOR gate inverter simply inverts a memory address, in such a way 
 +that a 128kb device can operate in the same socket as a 512kb device. 
 + 
 +==== 74HCT02N ====
  
-===== SN74HCT139N ===== 
 Address decoding. Address decoding.
  
-===== At28C256 ===== +:!: Link to Data Sheet 
-32KiB EEPROM.+ 
 +===== U7 ===== 
 + 
 +Non-volatile controller for the RAM battery backup. 
 + 
 +The DS1210 Non volatile memory controller IC connects the on board 3.0V 
 +coin cell, to the SRAM IC power pin, and also safeguards the SRAM accesses 
 +by disabling the control input CS on the SRAM, unless it detects that 
 +the supply voltage indicates that the system is powered on. 
 + 
 +Otherwise, the SRAM contents could be corrupted by the random bus states 
 +that the CPU circuit assumes when it is undergoing a power application 
 +or removal. 
 + 
 +==== DS1210 ==== 
 + 
 +:!: Link to Data Sheet 
 + 
 +===== U8 =====
  
-===== MC74HCT138AN ===== 
 Address decoding. Address decoding.
  
-===== DS1233 ===== +==== U8A ==== 
-Reset circuit option.+ 
 +This half of U8 further divides the I/O block into two on board, 
 +and two external bus decodes. 
 + 
 +==== U8B ==== 
 + 
 +This half of dual selector 74HCT139, performs two functions at the 
 +same time. 
 + 
 +It separates RAM and ROM memory accesses, and also performs the conversion 
 +of Motorola standard E and R/W based bus timing, to the separate read 
 +and write signals that the memory devices use. 
 + 
 +==== SN74HCT139N ==== 
 + 
 +:!: Link to Data Sheet 
 + 
 +===== U9 ===== 
 + 
 +Electronically-Erasable Programmable Read Only Memory (EEPROM). 
 + 
 +==== At28C256 ==== 
 + 
 +The EEPROM functions as a boot and monitor ROM, and occupies the uppermost 
 +4kb of CPU memory space. 
 + 
 +Because it is actually a 32kb device, a particular bank of 4kb can be 
 +made active using a combination of software settings and jumper settings. 
 + 
 +Normally, it will boot from the default bank that is selected with the 
 +on board jumpers. 
 + 
 +Booting, loading binary code, and simple debugging using the monitor, 
 +is all that it usually does. 
 + 
 +The bank selection is performed using a memory mapped latch [[#U2]] that is 
 +shared with the [[#NVRAM]] banking scheme. 
 + 
 +:!: Link to Data Sheet 
 + 
 +===== U10 ===== 
 + 
 +3 input to 8 line selector U10, a 74HCT138 IC, is configured to activate 
 +one of eight output lines, each one spanning a 4kb segment of the upper 
 +32kb of memory. 
 + 
 +The uppermost line selects the ROM in $F000-$FFFF. 
 + 
 +The remaining 7 lines go to a header block, so that the 4kb I/O segment 
 +location can be jumper selected. 
 + 
 +For the maximum contiguous RAM, it would be set to $E000-$EFFF and so 
 +that is considered a default. 
 + 
 +==== MC74HCT138AN ==== 
 + 
 +:!: Link to Data Sheet 
 + 
 +===== U11 ===== 
 + 
 +Reset circuit option 2.
  
 :!: There are three reset options, this is one. :!: There are three reset options, this is one.
-===== 74HCT20N =====+ 
 +==== DS1233 ==== 
 + 
 +:!: Link to Data Sheet 
 + 
 +===== U12 ===== 
 +U12 is no longer in the design. 
 + 
 +===== U13 ===== 
 Address decoding. Address decoding.
 +
 +==== U13A ====
 +
 +This NAND gate decodes some important memory control signals and passes
 +them to [[#U8B]].
 +
 +As it is the second to last stage before driving memory, the E signal
 +is included.
 +
 +The DIS signal is include so that memory can be disabled for external
 +bus overlays.
 +
 +==== U13B ====
 +
 +This circuit portion further decodes the address and qualifies the input
 +to the memory paging latch [[#U2]] with the timing signal E.
 +
 +==== 74HCT20N ====
 +
 +:!: Link to Data Sheet
 +
  
 Return to [[:SST-6809:]] Return to [[:SST-6809:]]