RetroBrew Computers Forum
Discussion forum for the RetroBrew Computers community.

Home » RBC Forums » General Discussion » Has anyone reverse engineered SP0256A external serial speech ROM (SPR016, SPR032, and SPR128)
Reading G.I. SPRnnn External Serial ROM Content [message #10685 is a reply to message #10669] Mon, 08 April 2024 10:01 Go to previous messageGo to previous message
jayindallas is currently offline  jayindallas
Messages: 110
Registered: June 2021
Senior Member
GI's target market for the SP0256 family of voice processors would generally require larger datastructures than its internal ROM, so the SP0256 was designed with a set of external, serial speech processor ROMs from the start.

The SP0256-AL2 that Radio Shack/Archer later sold as part of a simple Text-to-Voice chipset, is a standard SP0256 with a GI Allophone-based voice processor datastructure already loaded in its internal masked ROM, so it didn't require any voice processor datastructure development nor external serial ROMs, under GI's customer expected use.

SP0256 family chips function the same, only the ROM datastructure developed for each customer application, differs.

General Instrument Serial ROM for the SP0256

	       SPR016  		    Signal	Function
	       SPR032  		    =======	=================================================
	       SPR128  		    ROM_ENA#	Chip select to eliminate bus conflict at start-up
             __________		    SER_IN	Serial input used to load 16-bit address
           _|   \__/   |_	    SER_OUT	Serial output to shift out data byte
      VSS [_| 01    16 |_] C2	    CS1		Chip select; will tri-state serial out when low
           _|          |_	    CS2#	Chip select; will tri-state serial out when hi
       C3 [_| 02    15 |_] C1	    ROM_CLK	1.56Mhz clock input from SPO256 Speech Processor
           _|          |_	    VSS		Ground pin
       NC [_| 03    14 |_] SER_IN   C1		Control state pin Nxx, most significant bit
           _|          |_	    C2		Control state pin xNx. 
  ROM_CLK [_| 04    13 |_] NC	    C3		Control state pin xxN, least significant bit
           _|          |_	    VDD		Positive suppy pin (+4.6V to +7.0V)
       NC [_| 05    12 |_] NC	    
           _|          |_	    
       NC [_| 06    11 |_] VDD			PART #		Rom Size and Description
           _|          |_			======		==================================
      CS1 [_| 07    10 |_] SER_OUT  		SPR016		 2K bytes, serial read only memory
           _|          |_			SPR032		 4K bytes, serial read only memory
     CS2# [_| 08    09 |_] ROM_ENA#		SPR128		16K bytes, serial read only memory
            |__________|	    		
A Method To Read The Contents of a SPR016, SPR032, or SPR128 External ROM
This method wraps the external ROM with a virtual interface to a SP0256, which is orchestrated by an Arduino UNO.

The ROM_CLK signal will not be free-running, because it needs to be Arduino controlled when shifting bits across the interface. When not shifting bits, the Arduino will insert a series of clock transitions, blindly, to give the SPRnnn a chance to use them, if needed to advance its state-machine to the next idle state awaiting a new control-state input. This applies to SPRnnn initialization too.

Message Portion removed for offline editing

[Updated on: Thu, 02 May 2024 09:33]

Report message to a moderator

 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: SDC68020
Next Topic: Netlist auditing question


Current Time: Sat May 17 09:21:06 PDT 2025

Total time taken to generate the page: 0.00659 seconds