Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
sst-6809:top [2024/10/25 19:34] – robert | sst-6809:top [2025/05/10 09:40] (current) – add sub page link for microFORTH robert | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== SST-6809 Single Board Computer ====== | ====== SST-6809 Single Board Computer ====== | ||
- | {{sst-6809-2.0.png? | + | ^ SST-6809 SBC V2.0 ^ SST-6809 SBC V2.1 ^ |
- | + | | | |
- | {{sst-6809-2.1.png? | + | |
[[https:// | [[https:// | ||
- | ^ V2.0 Part ^ Integrated Circuit ^ | + | * The [[Parts List]] |
- | | U1 | Motorola MC68B09 or Hitachi HD63C09 MPU | | + | |
- | | U2 | Texas Instruments SN74HCT273N Octal Flip-Flop with Reset | | + | * [[56K NVRAM]] |
- | | U3 | Alliance AS6C4008-55PCN 4Mbit / 512KB SRAM | | + | * [[Main Bus Select 0 1K]] |
- | | U4 | Motorola MC68B50 or Hitachi HD63B50 ACIA | | + | * [[Main Bus Select |
- | | U5 | Dallas Semiconductor DS1813 EconoReset | | + | * [[ACIA Select 256b]] |
- | | U6 | Phillips 74HCT02N Quad 2-Input NOR | | + | * [[Memory Latch Select 256b]] |
- | | U7 | Dallas Semiconductor DS1210 Nonvolatile Controller | | + | |
- | | U8 | Shenzhen Honglifa HLF SN74HCT139N Dual 2-to-4 Line Decoder / Demultiplexer | | + | * Configuring |
- | | U9 | Atmel At28C256 256Kbit / 32KB Parallel EEPROM | | + | * [[JP2]] - Secondary Battery |
- | | U10 | Motorola MC74HCT138AN 3-to-8 Line Decoder / Demultiplexer | | + | * [[JP3]] - Power Select |
- | | U11 | Dallas Semiconductor DS1233 EconoReset | | + | * [[JP5]] |
- | | U12 | - not present - | | + | * [[J4]] |
- | | U13 | Phillips 74HCT20N Dual 4-input NAND | | + | * [[J5]] |
- | + | | |
- | The [[Memory Map]] and Bank Switching. | + | |
- | + | | |
- | ===== Jumpers ===== | + | |
- | + | * [[M8 6809 Mezzanine Board]] | |
- | ==== JP2 ==== | + | |
- | + | | |
- | JP2 connects to on-board 3.0V coin cell to the backup circuit. | + | * Motorola |
- | + | * [[Getting Started]] | |
- | The purpose is to provide an easy way to clear the NVRAM contents on the V2.1 SBC. | + | |
- | + | | |
- | ==== JP3 ==== | + | |
- | + | * [[TinyBASIC]] by Tom Pittman, Holger Veit, and Doug Gilliland | |
- | ^ JP3 ^ Selects ^ | + | |
- | | 1-2 | External 5V from screw terminals | | + | * [[PSYMON]] 1.20B by Percom Data Systems |
- | | 2-3 | 5V Comes from USB serial adapter | | + | |
- | + | | |
- | Some boards like the [[#M8 Game Board]] use too much power for the USB port to supply. | + | |
- | + | | |
- | In that case, external regulated 5V should be connect to the screw terminals, and the jumper on JP3 should be moved to pins 1-2. | + | * The [[http:// |
- | + | * The Future | |
- | Otherwise, it should join pins 2-3 for USB power. | + | * :?: Flex 6809 |
- | + | * :?: CP/M | |
- | This is done to prevent 5V board power from backfeeding into the USB port. | + | * :?: NitrOS-9 Level 1 |
- | + | * :?: NitrOS-9 Level 2 | |
- | ==== JP5 ==== | + | * :?: Fuzix |
- | + | | |
- | ^ JP5 ^ SBC V2.1 Boot ROM Select | + | * [[https:// |
- | | 1-2 | normal | | + | * [[https:// |
- | | 2-3 | ROM A14 inverted | | + | * [[http:// |
- | + | * [[http:// | |
- | In the normal position, the system boots from the top of the 32K EEPROM | + | * [[https:// |
- | + | * [[https:// | |
- | In the inverted position, it boots from code at the top of the lower 16K of the same EEPROM. | + | * Lost Wizard Assembler [[http:// |
- | + | * MacroAssembler AS [[http:// | |
- | This control bit originates from the latch, so it can be changed by writing the latch, regardless of position. | + | |
- | + | ||
- | ==== J4 ==== | + | |
- | + | ||
- | ^ J4 ^ Main Serial | + | |
- | | 1 | Ground | | + | |
- | | 2 | VCC (5V) | | + | |
- | | 3 | Transmit Data (TXD) | | + | |
- | | 4 | Receive Data (RXD) | | + | |
- | | 5 | Data Terminal Ready (DTR) - Not Connected | | + | |
- | | 6 | 3V3 - Not Connected | | + | |
- | + | ||
- | ==== J5 ==== | + | |
- | + | ||
- | J5 exposes some 6x09 signals that do not appear on [[#The M8 Bus]] | + | |
- | + | ||
- | ^ Pin ^ Signal ^ | + | |
- | | 1 | BS :!: | | + | |
- | | 2 | NVBAT | | + | |
- | | 3 | /FIRQ " | + | |
- | | 4 | /RESET Reset Interrupt Request | | + | |
- | | 5 | BSEL1 M8 Bus Select 1 | | + | |
- | | 6 | Ground | | + | |
- | + | ||
- | The NVBAT pin on J5 has two possible uses. | + | |
- | + | ||
- | It is connected directly to the on board battery. | + | |
- | + | ||
- | So it can either be used to replace the on board with an external battery, or can convey backup power to additional circuits such as, for example, an RTC. | + | |
- | + | ||
- | ==== J6 ==== | + | |
- | + | ||
- | J6 Access to the secondary battery connection | + | |
- | + | ||
- | The DS1210 NVRAM controller supports two backup batteries. | + | |
- | + | ||
- | J6 provides access to the secondary battery. | + | |
- | + | ||
- | This should have a jumper between pin 1 and 2 to ground BAT2 if it's not in use. | + | |
- | + | ||
- | It makes it possible to use an external battery. | + | |
- | + | ||
- | One important purpose of the BAT2 connection, is that the on board battery may be removed for replacement without incurring memory loss, provided that a second battery is temporarily connected to GND and BAT2 on J6. | + | |
- | + | ||
- | ^ Pin ^ Purpose ^ | + | |
- | | 1 | Ground | | + | |
- | | 2 | Battery 2 | | + | |
- | | 3 | Serial Ready To Send (RTS) | | + | |
- | | 4 | Serial Data Terminal Ready (DTR) | | + | |
- | + | ||
- | ===== SBC Reset Circuit | + | |
- | + | ||
- | There are three footprints for a reset circuit on the board. | + | |
- | + | ||
- | Only one should be populated for use. | + | |
- | + | ||
- | The basic RC does work but some future devices may not tolerate the slow rise time. | + | |
- | + | ||
- | There is a footprint for a DS1813 or for a DS1233 - these are obsolete parts but better than the RC reset solution if they are available. | + | |
- | + | ||
- | ===== The M8 Bus ===== | + | |
- | + | ||
- | The M8 bus design allows using the most advanced ICs that were available at the time, without regard to brand and fully supports DMA with the 6809 as well. | + | |
- | + | ||
- | Note: The board decodes two bus select signals BSEL0 and BSEL1, only BSEL0 is routed to the M8 bus. | + | |
- | + | ||
- | The additional decode could be routed to circuits on peripheral cards, using fly wire jumpers, for development purposes. | + | |
- | + | ||
- | ===== M8 Game Board ===== | + | |
- | + | ||
- | The M8 Game Board combines a TMS9918A Video Display Processor (VDP), dual Phillips SAA1099 sound synthesizers, | + | |
- | + | ||
- | [[https:// | + | |
- | + | ||
- | M8 Game Board Wiki:\\ | + | |
- | [[https:// | + | |
- | + | ||
- | ^ I/O Memory Map ^ R/W ^ IC ^ | + | |
- | | 00-07 | R/W | TMS9918A | + | |
- | | 08-0F | R | HCT541 | + | |
- | | ::: | W | SAA1099P A | | + | |
- | | 18-1F | R | HCT541 | + | |
- | | ::: | W | SAA1099P B | | + | |
- | + | ||
- | Bit 0 of each HCT541 is a read of the corresponding synth' | + | |
- | + | ||
- | ===== M8 6809 Mezzanine Board ===== | + | |
- | + | ||
- | M8-bus 6809 Mezzanine adds a timer IC, parallel I/O IC, two UARTs for serial communication to the SST-6809 SBC. | + | |
- | + | ||
- | One UART is dedicated to an ESP32 module for wifi and bluetooth communications. | + | |
- | + | ||
- | [[https:// | + | |
- | + | ||
- | ===== M8 6522 Proto ===== | + | |
- | + | ||
- | M8-bus compatible card which combines a 6522 VIA multi-IO chip with a prototyping area and some I/O connector footprints. | + | |
- | + | ||
- | [[https:// | + | |
- | + | ||
- | ===== Software ===== | + | |
- | + | ||
- | {{sst-6809-green.png? | + | |
- | + | ||
- | * [[ASSIST09]] | + | |
- | + | ||
- | ==== Getting Started ==== | + | |
- | Plug in USB-C power from a serial port on a Debian GNU/Linux machine. | + | |
- | + | ||
- | Install minicom if you haven' | + | |
- | sudo aptitude install minicom | + | |
- | + | ||
- | Hunt down your USB device pathlist: | + | |
- | ls /dev/tty* | + | |
- | + | ||
- | Start minicom with the path to your USB device (-D pathlist): | + | |
- | minicom -D / | + | |
- | + | ||
- | Configure minicom terminal timings for 1ms per character and line ending delays: | + | |
- | | + | |
- | [D] [1] [ENTER] | + | |
- | [F] [1] [ENTER] | + | |
- | + | ||
- | Press RESET on the SST-6809 and you should see: | + | |
- | ASSIST09 | + | |
- | > | + | |
- | + | ||
- | ==== Hexadecimal Loader ==== | + | |
- | + | ||
- | You can use ASSIST09 to load data and code as a hexadecimal loader with these three starting commands: | + | |
- | + | ||
- | Dump out a memory range | + | |
- | >D 0000 0100 | + | |
- | + | ||
- | Display/ | + | |
- | >M 0000 | + | |
- | 00- | + | |
- | + | ||
- | Simply pick a memory address and start typing in hex codes as 2 digits, and then hit space to go to the next byte | + | |
- | + | ||
- | "Go To" an address to start running code: | + | |
- | >G 1000 | + | |
- | + | ||
- | ==== Load Motorola S-Records | + | |
- | + | ||
- | You can also load assembled code as S-record files: | + | |
- | | + | |
- | + | ||
- | You can load S19 records using copy and paste into the terminal emulator window, or use minicom' | + | |
- | [CTRL]+[A] [Y] | + | |
- | Choose a file name | + | |
- | + | ||
- | Be patient, larger loads may take some time. | + | |
- | + | ||
- | If the load succeeds, you will see: | + | |
- | > | + | |
- | + | ||
- | If the load fails, you will see: | + | |
- | ? | + | |
- | > | + | |
- | + | ||
- | Once loaded, use the "Call subroutine" | + | |
- | + | ||
- | ===== TinyBASIC ===== | + | |
- | + | ||
- | TinyBASIC from [[https:// | + | |
- | + | ||
- | Then, start TinyBASIC with: | + | |
- | >G 020D | + | |
- | : | + | |
- | + | ||
- | ===== TSC BASIC ===== | + | |
- | + | ||
- | TSC BASIC from [[https:// | + | |
- | + | ||
- | Then, start TSC BASIC with: | + | |
- | | + | |
- | ! | + | |
- | + | ||
- | ===== Additional Software ===== | + | |
- | + | ||
- | The [[http:// | + | |
- | + | ||
- | With it, I have also adapted the following to execute: | + | |
- | | + | |
- | * [[BUGGY]] 1.01 by Lennart Benschop | + | |
- | + | ||
- | ===== Future | + | |
- | + | ||
- | With the addition of DriveWire or other access to storage, loading full 6809 operating systems may become possible: | + | |
- | + | ||
- | * Flex 6809? | + | |
- | * CP/M? | + | |
- | * NitrOS-9 Level 1? | + | |
- | * NitrOS-9 Level 2? | + | |
- | * Fuzix? | + | |
- | + | ||
- | ===== Additional Resources | + | |
- | * [[https:// | + | |
- | * [[https:// | + | |
- | * [[http:// | + | |
- | * [[http:// | + | |
- | ===== RTS ===== | ||
Return to [[:top]] | Return to [[:top]] |