
An experimental adventure into Yamaha's "OPJ" FM chip.
I felt like experimenting with some reverse engineering and... FM synthesis.
I stared at my Electone HS-6 organ for a bit... then decided that that one is for a later date.
Then I remembered: I still have the PCB from my old Yamaha PSR-2 keyboard! Lets see what I can do with it.
The YM7137 "OPJ" FM chip
I've just started this project today, so please wait a bit for me to fully flesh out this project and page, thank you :)
Here is the absolute minimum circuit to get this chip to do things:
As you can see it's a very "standalone" kind of solution.
The opamp on the output is a necessity as the chip can't provide much power at all.
Of course a setup with diodes to simulated key and button presses is very awkward, but it allows for experimentation on a breadboard. Depending on the firmware version you can use PB6 as a "B6" for an extra half-octave of notes.
Pulling PA6 low will set it to single-finger chords mode or auto-accompaniment mode, depending on firmware.
Pulling PA7 low will set it to fingered chords mode, depending on firmware.
There's two pins that really caught my attention: M1 and M2 (sometimes also called M0 and M1 for some reason).
These pins set the configuration of the chip. In the minimal circuit this is set to 1,0 i.e. "single chip mode"
But as you can see 1,1 sets it to... "external CPU mode"? Interesting!
The two expansion modes are for the WaveROM that holds the PCM drum samples... I think, maybe. No clue what these configurations do.
Unfortunately service manuals for the PortaSound (PSS) series of keyboards that use the YM7137 are impossible to find unless you want to shell out money to some idiot pay-walling service manuals. Yes, I still hate that with a passion!
The reason I'm interested in the PortaSounds specifically because they tend to have a lot more going on internally, making for much nicer sounds and I suspect that one of these may use the "external CPU mode" for the YM7137... Maybe.
Either way, some deduction and experimentation is needed. So lets set it to that mode and whip out the oscilloscope...
NEXT SECTION IS WIP/TODO.
So to check if pins were floating I simply made sure nothing was connected to said pins before powering the chip.
To the left you can see the results (for now).
PORTC may be the data bus?
PORTD may have 3 control pins, what PD2 and PD0 are for I have no clue.
PD5 emits a solid 56.3KHz square wave with 55% duty cycle. This may be double the sampling rate for the PCM WaveROM?