Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
sst-6809:a_tour_of_the_hardware [2025/05/30 09:26] – [DS1813] robert | sst-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:// | ||
+ | |||
+ | 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, | ||
+ | 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 [[# | + | | |
- | | U2 | Texas Instruments [[# | + | | |
- | | U3 | Alliance [[# | + | | |
- | | U4 | Motorola [[# | + | | |
- | | U5 | Dallas Semiconductor [[#DS1813]] EconoReset | + | | |
- | | U6 | Phillips [[# | + | | |
- | | U7 | Dallas Semiconductor [[#DS1210]] Nonvolatile Controller | + | | |
- | | U8 | Shenzhen Honglifa HLF [[# | + | | |
- | | U9 | Atmel [[# | + | | |
- | | U10 | Motorola [[# | + | | |
- | | U11 | Dallas Semiconductor [[#DS1233]] EconoReset | + | | |
| U12 | - not present - | | | U12 | - not present - | | ||
- | | U13 | Phillips [[# | + | | |
- | ===== MC68B09E | + | ===== U1 ===== |
- | Motorola' | + | |
- | ===== HD63C09E ===== | + | Micro Processor Unit (MPU). |
- | Hitachi' | + | |
- | ===== 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/ | ||
+ | |||
+ | 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' | ||
+ | |||
+ | 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' | ||
+ | |||
+ | 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' | + | |
- | ===== HD63B50 | + | :!: Link to Data Sheet |
- | Hitachi' | + | |
+ | ===== 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/ | ||
+ | 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' | ||
+ | |||
+ | :!: Link to Data Sheet | ||
+ | |||
+ | ==== HD63B50 ==== | ||
+ | |||
+ | ACIA Option 2: Hitachi' | ||
+ | |||
+ | :!: 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, | ||
+ | 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 | ||
:!: 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 [[: | Return to [[: |