FLASH SIMM update
2010-12-31 by woodsworth1
Just so you know its not forgotten... I managed to get hold of some SAM7SE microcontrollers (they were the thing that I thought I already had, but discovered that I didn't). I altered the CPLD programming so that the dip switches make more sense. There are four switches which allows for 16 combinations. To understand them, I'll just clarify the operation a little: The FLASH SIMM has 7 addressable 32+4MB regions [32MB for wave memory, 4MB for preset memory which holds the presets, beats, demos etc]. The SIMM is physically in one slot, and can emulate a ROM in the other slots. If you place the FLASH SIMM in slot 0 [NOT any other slot!!!] then it can operate as: a ROM in that single slot 0 only two ROM in slots 0 & 1 three ROMs in slots 0 & 2 & 3 four ROMs in all slots Notes: if the SIMM is acting as a single SLOT ROM then you can put it in any physical slot (or in an ULTRA sampler) the corollary is, that if you place the SIMM In any slot other than slot one, it won't behave properly unless you have it set to not emulate other slots if the SIMM is emulating a slot then you can't have another physical ROM in that slot. Examples: virtuoso 2000 -> put the orch1 & orch2 ROMs in slots 2 & 3 and put the FLASH SIMM in slot 0 and allow it to emulate slot 1 as well xl7 -> put the extreme lead ROM in slot 1 and the FLASH SIMM in slot 0 with emulation of slots 2 & 3. multiple FLASH SIMMs -> arrange them as you wantfollowing the rules, but only the one in slot0 should emulte other slots... The CPLD programming allows you to make use of the DIP swithces to select which region is used for the physical slot, but the emulated slots are hard coded to a predefined region - basically not enough DIP switches ;-). The DIP switches also effectively enable/disable slot emulation. If enabled, slot 1 emulation will always be region 2 on the FLASH SIMM. If enabled, slots 2 & 3 emulation will always be regions 3 & 4 on the FLASH SIMM respectively. However, the region used for the physical slot can be selected from those not being used (so if you have slots 1, 2 & 3 being emulated, the DIP switches will allow you to use regions 1, 5, 6 or 7 in slot 0 [only one at a time of course!]). In that way you can make the most of the images that are written into the FLASH regions. MORE IMPORTANTLY if emultion of slots is disabled (perhaps if you have more than one FLASH SIMM and are using the second one [not in slot 0]) then you can assign any of the regions to be used for the physical slot - this would also be useful in an ULTRA sampler. The DIP switches only set the region being used at start up. It is possible to write to the CPLD to select any of the regions for any slot - emulated or physical, but that requires modification of the OS to allow the user to change that "on the fly". A task for another day. It is also possible to expose the dip switch settings to the outside world using wires (so you can change them without access to the SIMM itself) but that would require soldering wires to the SIMM and would necessarily void your warranty :) ----------------------------------- I have been over the schematic and layout so I can be reasonably confident that the number of 'non-conformances' is limited. Once the fabrication plants are back up after the holdiay break I can send the PCBs off for manufacture. Should have them back near the end of January. After that I need to write some software (for the SIMM to allow them to be programmed, for the PC to program them, and for the programmer board to read them). In the longer term I need to write software to allow anyone to create their own regions from whatever they want [new waves, new presets, new demos, new arps and beats] (also I would like to merge the protozoa and holy grail ROMs into one, since there's no real point in having 16MB ROMs anymore...) Just for your information - the micro with the USB interface uses full speed communication (about 1MBps) so transferring a complete region [ONE ROM IMAGE] may take about 40 seconds so you're better off not having to change them too often even though you could write to them 100,000's of times. Also, the SIMM is disabled during transfers (so you won't be able to generate sounds from it during the download. Also if you change the contents, the existing OS won't know about it until after the module is reset. AND it is not-likely that the existing OS will write to the FLASH SIMM (preset memory only) and if it did it would destroy everything other than the preset information. so to put your own stuff on them (without a modification to the OS) you would need to generate presets on the module, transfer them [eg sysex] to your PC and then incorporate them into a region image. -- So there is some forward progress...