Affichage des articles dont le libellé est Risc-V Drumulator. Afficher tous les articles
Affichage des articles dont le libellé est Risc-V Drumulator. Afficher tous les articles

lundi 7 avril 2025

Drumulator : with RISC-V processors.

For now, I'm working on the analog output board of the Drumulator. After testing the feasibility of my concept, with the help of a few off-the-shelf boards, I'm starting to draw up the schematic diagram for the audio section of the Drumulator.

The schematic isn't complete yet, but there are already number of components.


This shouldn't take up too much PCB space, though. One of the dimensions will be dictated by the alignment of the audio connectors.

jeudi 27 mars 2025

Drumulator : with RISC-V processors.

And meanwhile, I'm making progress on the subject.

And it doesn't have to be simple! My goal is to make it 'easy' and not too expensive to manufacture. The idea is to design a quality machine that has a good sound.

The options to consider, the best use of available resources, and other considerations mean that it takes a little time to develop. But in the end, I enjoy that moment when, after many development difficulties, I feel that the final solution is taking shape.

Rather than designing a test circuit and then going through the cycle of testing and modifying the circuit, this time I preferred to use already available development boards. Obviously, this makes the development look a bit DIY, but in the end, it goes pretty well.


To facilitate the development of the machine, I opted for a modular design. That is to say that for the moment, I am focusing on the analog part in order to start by producing the audio output board which will be easily connected to the operating core of the machine which will have to copy the operation of the original Drumulator.

So now I'm at the stage of creating the schematic. I'll have to make the board and then run the tests. This is a process that, despite the ease of having electronic equipment made today, still requires a bit of time. But there you go, the subject seems to be off to a good start...

mercredi 5 mars 2025

Drumulator : with RISC-V processors.

Well here we are...

First in a long series of iterations on building a Drumulator clone. As a reminder: after trying to create a Drumulator using FPGAs, I gave up following the time wasted on the last used circuits from the Efinix brand.

Additionally, real-time debugging is much easier with microprocessor tools than with FPGA tools. Well, basically, for the type of subject in question here, it ultimately seems much more relevant to me to start on a microprocessor basis than on an FPGA basis.

In addition, this should also allow me to offer more capacity for the machine envisaged, while retaining exactly the same characteristics, including the non-linear 8-bit sampling which gives all its charm to the Drumulator.

To begin this series of micro-developments, I will focus on the sound generator since, ultimately, it is this generator which is the heart of the machine.

On the original machine, it is a whole series of logic circuits associated with static RAM which manages this subject. Moreover, EMU calls this sound generator, a 'sound sequencer'. The goal here being to do the same thing but using the minimum number of circuits and the minimum number of electrical connections, I am therefore going with a converter whose digital data will be supplied by the SPI bus.

In the continuation of this development, I will also try the use of an SPI type wave memory, in order, again, to minimize the need for connections. All this will have the effect of reducing the cost and electromagnetic radiation.

So, for now, my very first test is to set up a reliable SPI link to the digital to analog converter.

I'm not going to detail the whole process here, but basically it involves generating an SPI bus with the characteristics expected by the audio converter. That is to say, the number of bits expected, the different polarities of the signals and the frequency acceptable by the converter, here 10Mbits maximum per second.

So I configured the registers of the processor used to match the needs of the converter. I even made the maximum frequency dynamic to always configure the maximum frequency achievable by the processor according to the configuration of its clocks, but while always remaining less than or equal to 10MBits per second.


The signals seem completely correct and, in any case, present exactly the programmed pattern:

u16  Data = 0x555D;

I will now tackle the generation of interrupts. In fact, the data to be sent to the converter must be sent a certain number of times per second. It seems to me that it is around 22KHz for the Drumulator. I'll look up the actual value later. For the moment, it is a question of generating the same SPI signals not inside an infinite loop in the main() function, but directly by interrupt...