SIBO ASICs and the SIBO Serial Protocol

SIBO ASICs

ASIC stands for Application Specific Integrated Circuit. These devices are widely used within Psion hardware. Some are well documented, others barely mentioned in anything but internal documentation. This is a list of ASICs specific to the SIBO range.

ASIC1

ASIC1 is the main system controller chip for the SIBO architecture. It connects directly to the 8086-based processor (i.e. the V30H) controlling all bus cycles to and from the processor. This configuration effectively forms a micro-controller like device that executes 8086 instruction codes. ASIC1 is made up of a number of functional blocks including a bus controller, a programmable timer, an eight input interrupt controller, an LCD controller and the memory decoding circuitry.

ASIC2

ASIC2 is the peripheral controller chip for the SIBO architecture. It contains the system clock oscillator and controls switching between the standby and operating states. ASIC2 provides an interface to the power supply, keyboard, buzzer and SSDs. ASIC2 includes the eight-channel SIBO Serial Protocol controller and provides interface circuitry to both the reduced external and extended internal peripheral expansion ports.

ASIC3

MC and HC power supplies are based on a full custom liner ASIC known as ASIC3. This custom chip is manufactured by Maxim and has the Maxim part number MAX616. The power supply provides a number of switched power rails from one unregulated supply rail known as VSUP. This supply is typically connected to the main battery in the system and can be in the range 5.5 to 12 volts. These supply rails are derived from VSUP from either PNP pass transistor linear regulators or from switch mode regulators. Series 3 power supplies generate a subset of the rails listed below from a number of switch mode regulators.

ASIC4

ASIC4 is a serial protocol slave IC for addressing memory and general memory-mapped peripherals. It is used in SSDs to convert SIBO serial protocol signals into addresses within the memory range of the memory pack. ASIC4 was designed to be a cut-down version of ASIC5 which was the original SIBO serial protocol slave chip.

ASIC5

ASIC5 is a general purpose I/O chip with a built-in UART that can be set to run in a number of different modes thereby simplifying the task of peripheral design. For example, it is possible to set up ASIC5 to run as a Centronics parallel port interface, an 8-bit parallel I/O port, a serial bar code controller or a serial RS232 converter.

ASIC6

The first of the three ASICs not mentioned in the SIBO SDK or HDK.

Known internally at Psion as 'the voice ASIC,' ASIC6 is the support chip for use with the TMS320C10 DSP. It is primarily controlled via an MC serial channel with minor control from the DSP. The ASIC contains an extremely limited version of an ASIC5 in Pack mode, allowing access to the on board ROM and RAM by the MC. The DSP is unable to access the ROM, the RAM is the main system memory. Access to the RAM by the MC is non-standard as it is arranged in words of two bytes. There is a second serial interface for talking to the combo, the SLD bus.

ASIC7

The second publicly-undocumented ASIC. Additional glue logic for the MC range, including keyboard LEDs.

ASIC8

The final publicly-undocumented ASIC. So far we have very little information about ASIC8, but we believe that it was meant to be a peripheral chip combining features from ASIC4 and ASIC5.

ASIC9

ASIC9 is a composite chip comprising of a V30H processor, ASIC1, ASIC2 and general I/O and PSU control logic all on one IC. ASIC9 thus integrates all the digital logic required to produce a SIBO architecture computer less the memory onto one chip. ASIC9 has a few additional features such as an extra free-running clock (FRC) and a codec interface for sound.

SIBO-SP Slave IDs

 

"Select" is kind of a misnomer, because in actual fact it's a question. The SIBO/EPOC16 device has a list of device IDs it knows how to speak to. Although these device IDs refer to specific ASICs and their modes, it's also possible to think of an ID as an ASIC's "language", For example, ASIC4 can "pretend" to be ASIC5 in Pack Mode. More on this later.

This SSel packet contains an ID number. This ID number refers to one of a number of different ASIC chips that could be in a slave device. Here's a list of the device IDs we've found so far and the devices they refer to.

ID Name
1 ASIC2 Slave
2 ASIC5 Pack Mode
3 ASIC5 Peripheral Mode (“ASIC5 Normal” in OSSIBO.INC)
4 ASIC6 (undocumented, mentioned only in OSSIBO.INC)
5 ASIC8 (undocumented, mentioned only in OSSIBO.INC)
6 ASIC4
31 Unknown (undocumented, detected on Workabout)
48 Unknown (undocumented, detected on Workabout and Workabout mx)
56 Unknown (undocumented, detected on Workabout mx)

Each SIBO/EPOC16 device has a list of IDs it can speak to. When a SIBO-SP port is initialised, the SIBO machine first sends a "Reset All" command. This tells all slaves to stop what they're doing and listen for a SSel packet. Then, the SIBO/EPOC16 device goes through its list of IDs, starting from the top. It asks the slave, "Do you speak ID:x?". If there's no reply, it goes to the next ID on the list until it gets a reply or runs out of IDs.

The list of IDs is different for SIBO Serial Ports and SSD ports. This makes sense - the types of device that could be connected to a SIBO Serial Port are different to what would be put in an SSD port. However, the different types of SSel IDs that each device sends  are interesting.

This is a list of SIBO devices with the IDs they send out on each port. Anything marked "unknown" is because I haven't been able to test it yet (I don't own an MC200 or Workabout 1MB and I don't have the right connectors for the MC or Workabout ranges).

Model SIBO Port SSD Port
MC200 Unknown Unknown
MC400 Unknown 2, 1
Series 3 3, 5 2, 1
Series 3a 3, 5, 6, 2, 6 6, 2
Series 3c N/A 6, 2, 3
Series 3mx N/A 6, 2, 3
Workabout 48, 6, 2, 3 Unknown
Workabout mx 31 (pause) 6, 3, 2, 5 (pause) 3, 5, 6, 2 48, 6, 2, 3 1

1 Wmx also sends ID:56 at boot on the SSD port whether the door is open or closed.

What's interesting is that for every SSD port I could test, it asks for at least one ASIC that can handle some sort of peripheral, all the way back to the MC400, possibly even further. Although I don't know this for certain, I assume an ASIC2 in Slave Mode was a precursor to the ASIC4 in Extended Mixed Mode.

Solid State Disks (Data Packs)

This page is unfinished.

Flash SSDs

Circuitry

On-board voltage regulator LM317, taking VPP and lowering it to ~12v 1A.

Type I and Type II Flash

Flash I (ASIC5)

 

Flash II (ASIC4)

https://scontent-lhr3-1.xx.fbcdn.net/v/t1.0-9/s960x960/45191596_10156862299249189_3344048385475739648_o.jpg?_nc_cat=107&_nc_oc=AQlbDtvFPMXQtYLoz3JrfzxIeJ8e6lQMlNJ52YU_IBHm7QKfdwoe2fUvUcUT9pcOKiM&_nc_ht=scontent-lhr3-1.xx&oh=4b47c98cc6e7cdbf76452fef5cfe0aef&oe=5E8C308ENo photo description available.

ROM SSDs

data:image/xx&oh=e3aeccde606c11b8559ce78fdcdbdc45&oe=5E4239F2;base64,QmFkIFVSTCB0aW1lc3RhbXA=

No photo description available.

RAM SSDs

SSD Pins

Facing pins, front of SSD upwards.

Pin Name Description Characteristics
1 CLK SIBO-SP Clock TTL 5V logic
2 GND Ground  
3 VBACKUP Backup power for RAM modules +3.75VDC, always on. Also usable as an interrupt on ASIC9-based machines.
4 VPP Used for programming Flash SSDs +15VDC to +18VDC, drops to +9V on power off. Unregulated
5 VCC Main power +5VDC, stops on power off
6 DATA SIBO-SP bidirectional data TTL 5V logic

 

SIBO Devices and On-Board ASICs

Here is a list of the SIBO ASICs that can be found on board every SIBO machine.

Name ASIC1 ASIC2 ASIC3 ASIC9 ASIC9 v2
MC200 Yes Yes Yes    
MC400 Yes Yes Yes    
MC600 Yes Yes Yes    
Series 3 Yes Yes      
Series 3a       Yes  
Series 3c       Yes  
Series 3mx         Yes
Siena       Yes  
Workabout       Yes  
Workabout mx         Yes