| 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 |