Electronics > Projects, Designs, and Technical Stuff
YM3812 + YM3014 issue
<< < (3/3)
loscha:
I've got a few sets of YM3812 etc chips. Are you driving the board straight from PC via Controller.

I've got them because I'm a synthesizer nut.

Are you considering MIDI?
Dajgoro:

--- Quote from: loscha on August 24, 2013, 03:04:50 pm ---I've got a few sets of YM3812 etc chips. Are you driving the board straight from PC via Controller.

I've got them because I'm a synthesizer nut.

Are you considering MIDI?

--- End quote ---
I am building a system with a ATmega162 that will have a MIDI input, and a serial input for special effect control. As mentioned, the system also includes a SAA1099, and Was also planning to use a eeprom and the ATmegas pwm to generate some extra sounds. So the entire contraption is actually a MIDI device. I was also planning to add a hex keypad and a lcd display for manually adjusting the sounds. It also includes a DAC, and it will have pots in the front for fine tuning and such.
Dajgoro:
Yesterday I got a new YM3812, and I replaced it, and I got the same thing.
Sometimes it works, sometime it doesn't.
So I finally ran out of things to do, so as a last resort, I just duplicated all of the write commands.
And something changed, the chip behave a bit differently.
So I edited the write routine to write the data byte six times, instead of just once, and it worked!
So I thought, that there must be an issue with the bytes being written one too fast, so I added lots of nops between the two writes, and it didn't work again.
So what could be going?
Cumbayah:
So, this thread is old, but for the benefits of future generations ending up here through google queries, as I just did:

I did play routines for the OPL-2 based Adlib card back in the day and remember this issue. I ultimately found, from the programming information available, that a 3.3 µs delay after index register writes were required and a 23 µs delay after data register writes. Surprisingly annoying to achieve that timing in a portable way - at the time, repeatedly polling an I/O port, thus locking to the ISA bus speed instead of the highly varying CPU clock frequency, was generally how it was done. |O

You'll still find these delays described in various Adlib programming resources on the net, fx this - now that you know to look for it there. ;)

The YM3812 datasheet doesn't call attention to this explicitly; it might be evident from fig A-2, but frankly I'm too much of a new player on the hardware side of things to be able to correlate that with said delays.

Hope the project worked out. :)
Yansi:
Some very neat tips here guys, thanks, very appreciated!  I will be working on this beast, whenever free time or bad mood allows.

I have designed this "OPL2 MIDI" thing, just because and for the sake of it. My friend is a fan of vintage computer games, loves the sounds and also unlike me can play keys. I mean those to play music, not to write text  :)

So I have come up with this: Drawers full of old EPROMs and SRAMs, found a few 80C320 (2 UARTs and 4ck per machine cycle yaaayyyy!) in the garbage pile too so why not build a "classic" 8-bit microcomputer around the YM3812?  Here's the (not yet tried and executed) prototype in its CAD form, with a little brother made as a proof of concept whether I can program the damn thing. Took two afternoons and two evenings. Heck of a beast, never had so much (so large) DIL packages on  a single board, so kind of a first.

Navigation
Message Index
Previous page
There was an error while thanking
Thanking...

Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod