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:38] – [HD63C09] 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  |
  
-===== MC68B09 =====+===== U1 =====
  
-Microprocessor Option 1: Motorola's famous 8-bit microprocessor.+Micro Processor Unit (MPU).
  
-Full Address and Data bus lines with most Control lines route to the M8 bus connectoronboard memory, ACIA, and address decode circuitry.+The MPU U1 coordinates all bus activity via its data, 
 +address, and control lines.
  
-The MC68B09 maximum clock is 2.0MHz without overclocking.+The MPU is driven by an on chip clock oscillator controlled by quartz 
 +crystal [[#Y1]].
  
-:!: This SBC uses the internal clock version of the MC6809rather than the externally clocked MC6809E+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 useas 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.
  
-:?: Why? Because its simpler and reducing parts count.+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 :!: Link to Data Sheet
  
-===== HD63C09 =====+==== HD63C09 ====
  
 Microprocessor Option 2: Hitachi's upgraded 8-bit microprocessor based on the Motorola 6809. Microprocessor Option 2: Hitachi's upgraded 8-bit microprocessor based on the Motorola 6809.
  
-Runs cooler and sips less power.+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. The HD63C09 maximum clock rate is 3.0MHz without overclocking.
Line 40: Line 152:
 :!: Link to Data Sheet :!: Link to Data Sheet
  
-===== SN74HCT273N =====+===== 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:]]