Okay guys, I searched the forum and didn't find anything relevant. Here it is:
I am planning on building an arpeggiator project based on the Yamaha YM2612 IC which was the sound chip used in the Sega Genesis console. I ordered the chips online and am waiting patiently for them to get here, and meanwhile researching as much as I can to find out what I need to do to make this project work.
My question is: which of these microcontrollers would be the best to use for this project? (These are the microcontrollers I already own, although I could buy another one if none of the ones I have will work)
*-Arduino Uno R3
-PIC 18
-Raspberry PI
-Arduino Nano
-Teensy x.x* (I do not own one of these but this may be the best option based on other projects I have seen.)
I would guess that the PIC18 would be the best to use since I could program it in assembly language, but I am just now beginning to learn assembly language and C would be much easier for me. I saw a guy on YouTube who was using an Arduino Uno who built a project like this and it wouldn't run corrently, and he suspected that it was due to latency problems, so maybe the Arduino is out. Any help here is welcome.
For a little bit of background on the YM2612, it is a 6-channel FM synthesis chip with 4 operators which can be routed in 8 different configurations. It uses data exchange to write values to its internal registry to alter parameters like attack, decay, sustain, release, frequency, amplitude, etc. It is suggested to operate at a 7.67 MHz frequency and so I was planning on using an 8 MHz crystal oscillator (resonator) to provide the clock. Eventually I will integrate this project with a keyboard that outputs midi data (or maybe even bypassing midi, just using the microcontroller to control the chip manually) so I will be leaving this project open for further changes/revisions.
Also this is my first project of this type, I know it could be considered a big bite but I am here to learn. Any help is welcome, thanks guys
P.S. Here is a datasheet for the YM2612: - http://www.datasheetspdf.com/PDF/YM2612/865751/1
...and here is a video of something similar: - https://www.youtube.com/watch?v=XlDlF1MOaUA
If you are still around, I'm curious to hear about any progress you've made.
Also, beware the fake YM2612s!
Kind of late to the party - and not sure the OP is in the same place anymore ... But the dirt has been kicked so:
If you wanted to do straight assembly or something lower-level, an STM micro may be good. I like the pin configuration options and also the cost model for the dev environment for STMicro. I'm not sure I really condone use of programming language as micro selection criteria. I understand the gist of what you're saying - you want tight control over the instructions clock-to-clock without a compiler inserting a ton of "stuff" in your code when you have timing critical code paths. Most CPUs with compiled code let you use inline assembly or you have control over the link stage and can include in your own assembly routines to call from C. What you have to look out for is even further level of code abstraction where there's an OS running under (like linux) and your code is being written for an interpreter and not necessarily compiled at all. At any rate - you need to understand what each of these environments give you and what's really going on "under the hood".
Not sure if this is you or not - but you could just step on the backs of previous work:
https://www.aidanlawrence.com/megablaster-hardware-sega-genesis-video-game-music-player/
There's schematics and also some warts of the first prototype(s) discussed. Did not strike me as an expert (more of a hobbyist) given the early design decisions - so this may be too much of the blind leading the blind. I didn't check through and make sure that project was sound at the end of it all.
Current Yamaha Synthesizers: Montage Classic 7, Motif XF6, S90XS, MO6, EX5R
I hope that https://www.heisener.com/ will help you solve your problems and find the answers you are looking for.
I hope Title https://www.pneda.com/ can help you find a solution to your problem.