Some basic information about programming a chip?

Started by Jmariner, November 19, 2023, 03:26:52 PM

Previous topic - Next topic

Jmariner

I'm just curious about the process in general. I have only gone as far as installing Sigma Studio, and while there are tutorials free from engineers with the company, it still looks fairly intimidating.
Is it a situation of months or years before programming a dynamic chip with a broad range of functions relatively equivalent to producing a full featured but entry level commercial model of floor processor?
A more distinct question would be in regard to fundamentals like distortion, equalization and reverb/delay.

I only made it through the fundamentals of analog electronics in school, which was 12 years ago, and still have a long way to go in this area as it is. I was in the midst of op-amp understanding for effective skills in designing around them before I burned out with school. While I retrace my completed academic steps and modest hands-on experience to get my brain firing on all cylinders again, I thought it couldn't hurt to get some experience, or at least knowledge of what to expect, with chip programming. I am competent enough to start with a common delay chip, and something like Sigma or a relative equivalent is obviously going to be baby steps to wade into sometime next year.

ElectricDruid

I wouldn't describe Sigma Studio or most of the stuff you can program with it as "baby steps". There are a lot easier ways to get into microprocessor and DSP programming, if that's where you want to go. I would find it fairly intimidating, and I've got quite a lot of experience with this stuff now. But learning a new programming environment and new chips is always a big job because you often don't even know what it is that you don't know!

That's not to say that one way to learn how to swim isn't to just throw yourself into the deep end of the pool! If you come up to the surface, you've made it!

You don't say exactly whitch chips you're thinking of programming. That makes a bit difference. Some of this stuff is a lot more sophisticated/complicated than others.


Jmariner

Quote from: ElectricDruid on November 19, 2023, 05:29:09 PM"learning a new programming environment and new chips is always a big job because you often don't even know what it is that you don't know!"


I now grasp what it is I didn't even know that I don't know lol!
That was very well phrased.
With slightly more research and finding someone into the thick of programming in a video, I have a better grasp of what's going on. Once within a module for say, an equalizer, you're inserting RC equations directly from what is taught in analog electronics to configure that module of architecture within the chipset, defining what order of pass etc.. So, a cluster of filter networks controlling the digitally sampled replication of the guitar signal to process it before the final conversion into analog. That actually showed me that by anyone, they mean someone thoroughly educated in analog electronics and familiar with the math and commonly used formulas. I actually have enough, but more accurately stated, made it through the fundamentals as opposed to advanced applications, and it's been 11 years since I was in school and about a decade since I used it.

I can see I'm going to need roughly a year of review within my own previous education, go a bit beyond it for the sake of my own desires and goals, and more hands-on experience with analog before having the potential to get somewhere in the level of digital programming I was seduced by. I have enough to get involved without a tremendous amount of time passing, but previous education and experience was not long enough for it to be a permanent fixture in my brain. Somewhere in the research, one of the chip programming engines I saw was selecting modules already built, and simply installing frequency values for filters, gain for preamp staging, numerical values for flanging etc. meaning, inserting numbers to modules already built in the engine and being defined in English. This promotion was presented as though someone with little or no knowledge of analog electronics and relative math could configure prebuilt modules and the available GUI parameters for dropping into an embedded system used by consumers. I can see something like Sigma is not totally beyond me, but ATM, that particular one is.
Maybe a good reference is I am currently reading "Op Amps for Everyone" by Ron Mancini, and have no trouble understanding it, but became lazy about maintaining my math skills since a decade ago. Strangely, I love math and am actually great at it.

Quote from: ElectricDruid on November 19, 2023, 05:29:09 PMYou don't say exactly whitch chips you're thinking of programming. That makes a bit difference. Some of this stuff is a lot more sophisticated/complicated than others.

I am planning to start with a simple and common reverb chip which we program with passive components. I had made it through most all the fundamentals of analog electronics with school. So, actives, the math, fundamental and basic design topologies etc. and burned out in the midst of op-amps which had taken me into intermediate analog electronics. It was, however, an electronics/electrical engineering degree program, so specific to what I'm trying to get back into and newly started in.

Is there still a direction you can steer me where I can have some digital progress with actual programming in a chip engine?
I am always going to be primarily focused on analog, but getting my feet a bit wetter than just a basic delay chip would do me some good.



Ksander

How about Arduino and/or Attiny85? These are quite limited in their capabilities, but easy enough to not just drown in the deep end. Your toes will probably reach the bottom of the pool.

potul

There are probalby 4 knowledge areas to develop here, depending on your current level:

1-Analog electronics. As you mentioned, you already have some knowledge you need to maybe refresh.
2-Programming in general. Do you have C++ or similar language skills? You can start working on programming from your PC, no need to go to chips as a starting point.
3-Microcontrollers. Ok, next level... Understanding how a certain MC works, memory management, I/O, timers, ADC, DAC, etc... Here I would go for Arduino or Attinys. And you can also do this at the same time you learn to program.
4-DSP. Ok, this is a complex one. Understanding the way to shape the signal to what you want to achieve. Knowing different algorithms and be able to translate what you do in the analog world to a digital algorithm. But it goes beyond, as there are things you cannot do in analog, but you can in DSP (pitch shifting, FFT, etc...). You could start with a more visual tool like pureData, this way you don't need to go to programming yet.

It's a fun journey. Welcome.