DSPRelated.com
Forums

How to start out on hardware implementation

Started by gokul_s1 February 4, 2008
I graduated in mechanical engineering but my current work is more towards
signal processing. I have quite a good understanding of signal processing
concepts (theory and digital applications). However, I would now like to
learn to code a small program into a chip. I would be grateful if someone
could suggest appropriate reading materials (assuming I am a rank
beginner) and also direct me how to go about it.

Thanks for your help.

Regards
Gokul 
On Sun, 03 Feb 2008 23:12:54 -0600, gokul_s1 wrote:

> I graduated in mechanical engineering but my current work is more > towards signal processing. I have quite a good understanding of signal > processing concepts (theory and digital applications). However, I would > now like to learn to code a small program into a chip. I would be > grateful if someone could suggest appropriate reading materials > (assuming I am a rank beginner) and also direct me how to go about it. > > Thanks for your help. > > Regards > Gokul
If you can, subscribe to a hobbyist magazine like "Nuts & Volts" or "Circuit Cellar". Over the course of a year or so you'll learn some basics. You could also work on writing code to implement algorithms on your computer, and work down from there -- that will let you start with the implementation in an easy environment, then you can move to smaller (and more difficult) chips as you get better. -- Tim Wescott Control systems and communications consulting http://www.wescottdesign.com Need to learn how to apply control theory in your embedded system? "Applied Control Theory for Embedded Systems" by Tim Wescott Elsevier/Newnes, http://www.wescottdesign.com/actfes/actfes.html
On 4 Feb, 06:12, "gokul_s1" <swamy...@msu.edu> wrote:
> I graduated in mechanical engineering but my current work is more towards > signal processing. I have quite a good understanding of signal processing > concepts (theory and digital applications). However, I would now like to > learn to code a small program into a chip.
This can be taken along two lines: - How to program signal processing algorithms in general - How to program a DSP processor ('chip') in particular It is easier to develop programming skills from scratch on a regular computer than on a DSP chip. You don't need as many peripherals and interfaces and there is more learning material available for general-purpose programming. You can get a long way with a regular PC, a C/C++ compiler (C++ compilers are available for free) and some standard peripherals like a soundcard and a microphone. You might find it convenient to have access to matlab (very expensive to buy, but maybe you can get access through your job), scilab, octave (both should be available for free) or something similar. Rune
Tim Wescott <tim@seemywebsite.com> wrote in news:
_vmdnVpfLfbzXDvanZ2dnUVZ_gKdnZ2d@web-ster.com:

> On Sun, 03 Feb 2008 23:12:54 -0600, gokul_s1 wrote: > >> I graduated in mechanical engineering but my current work is more >> towards signal processing. I have quite a good understanding of signal >> processing concepts (theory and digital applications). However, I
would
>> now like to learn to code a small program into a chip. I would be >> grateful if someone could suggest appropriate reading materials >> (assuming I am a rank beginner) and also direct me how to go about it. >> >> Thanks for your help. >> >> Regards >> Gokul > > If you can, subscribe to a hobbyist magazine like "Nuts & Volts" or > "Circuit Cellar". Over the course of a year or so you'll learn some > basics. > > You could also work on writing code to implement algorithms on your > computer, and work down from there -- that will let you start with the > implementation in an easy environment, then you can move to smaller
(and
> more difficult) chips as you get better. >
I'm not convinced that it is easier to implement signal processsing on a PC. In any case, its not what Gokul said he was interested in doing. I think it might be better to start with a dev board from one of the DSP manufacturers. As an ADI partisan, I would suggest either the 21369 SHARC EZ Kit or one of the Blackfin Kits. The BF-533 is probably the simplest but the BF-537 might be a little more useful. From strictly a programming/applications point of view, I like the SHARC since it is both a 32 bit fixed point DSP as well as a floating point DSP. This makes it easier to write algorithms since you can use the format that works best a given situation. You also have lots of bits of resolution which can be very important for many situations. I have worked with many different DSPs from four different manuafacturers. I found the SHARC to be the easiest (as well as the most powerful). Al Clark Danville Signal Processing, Inc.
On Feb 3, 11:12 pm, "gokul_s1" <swamy...@msu.edu> wrote:
> I graduated in mechanical engineering but my current work is more towards > signal processing. I have quite a good understanding of signal processing > concepts (theory and digital applications). However, I would now like to > learn to code a small program into a chip. I would be grateful if someone > could suggest appropriate reading materials (assuming I am a rank > beginner) and also direct me how to go about it. > > Thanks for your help. > > Regards > Gokul
Another option is to use a book like "Digital Signal Processing and Applications with the TMS320C6713 and TMS320C6416 DSK" by Rulph Chassaing as a guide. Yes the book is expensive, $125, and the DSK costs $495 but it is a good way to start if you want hands on experience. . Howard
On Feb 5, 10:02 am, hrh1818 <hr...@att.net> wrote:
> On Feb 3, 11:12 pm, "gokul_s1" <swamy...@msu.edu> wrote: > > > I graduated in mechanical engineering but my current work is more towards > > signal processing. I have quite a good understanding of signal processing > > concepts (theory and digital applications). However, I would now like to > > learn to code a small program into a chip. I would be grateful if someone > > could suggest appropriate reading materials (assuming I am a rank > > beginner) and also direct me how to go about it. > > > Thanks for your help. > > > Regards > > Gokul > > Another option is to use a book like "Digital Signal Processing and > Applications with the TMS320C6713 and TMS320C6416 DSK" by Rulph > Chassaing as a guide. Yes the book is expensive, $125, and the DSK > costs $495 but it is a good way to start if you want hands on > experience. . > > Howard
Update the TMS320C6713 DSK costs $395 Howard
On Mon, 04 Feb 2008 15:25:31 +0000, Al Clark wrote:

> Tim Wescott <tim@seemywebsite.com> wrote in news: > _vmdnVpfLfbzXDvanZ2dnUVZ_gKdnZ2d@web-ster.com: > >> On Sun, 03 Feb 2008 23:12:54 -0600, gokul_s1 wrote: >> >>> I graduated in mechanical engineering but my current work is more >>> towards signal processing. I have quite a good understanding of signal >>> processing concepts (theory and digital applications). However, I > would >>> now like to learn to code a small program into a chip. I would be >>> grateful if someone could suggest appropriate reading materials >>> (assuming I am a rank beginner) and also direct me how to go about it. >>> >>> Thanks for your help. >>> >>> Regards >>> Gokul >> >> If you can, subscribe to a hobbyist magazine like "Nuts & Volts" or >> "Circuit Cellar". Over the course of a year or so you'll learn some >> basics. >> >> You could also work on writing code to implement algorithms on your >> computer, and work down from there -- that will let you start with the >> implementation in an easy environment, then you can move to smaller > (and >> more difficult) chips as you get better. >> >> > I'm not convinced that it is easier to implement signal processsing on a > PC. In any case, its not what Gokul said he was interested in doing. > > I think it might be better to start with a dev board from one of the DSP > manufacturers. As an ADI partisan, I would suggest either the 21369 > SHARC EZ Kit or one of the Blackfin Kits. The BF-533 is probably the > simplest but the BF-537 might be a little more useful. > > From strictly a programming/applications point of view, I like the SHARC > since it is both a 32 bit fixed point DSP as well as a floating point > DSP. This makes it easier to write algorithms since you can use the > format that works best a given situation. You also have lots of bits of > resolution which can be very important for many situations. I have > worked with many different DSPs from four different manuafacturers. I > found the SHARC to be the easiest (as well as the most powerful). > > Al Clark > Danville Signal Processing, Inc.
Rune pretty much makes my point for me -- if you don't know programming _at all_, then it'll be easier (or at least a lot less expensive) to pick it up in a PC environment than with a board. Once one knows a bit, then one can transition to a board with a real DSP chip. -- Tim Wescott Control systems and communications consulting http://www.wescottdesign.com Need to learn how to apply control theory in your embedded system? "Applied Control Theory for Embedded Systems" by Tim Wescott Elsevier/Newnes, http://www.wescottdesign.com/actfes/actfes.html
gokul_s1 wrote:

> I graduated in mechanical engineering but my current work is more towards > signal processing. I have quite a good understanding of signal processing > concepts (theory and digital applications). However, I would now like to > learn to code a small program into a chip. I would be grateful if someone > could suggest appropriate reading materials (assuming I am a rank > beginner) and also direct me how to go about it.
If you mean programming a DSP, it isn't that different from programming other processors. In that case "coding a small program into a chip" means storing it in ROM (or EPROM or FLASH ram). If you mean a hardware implementation of an algorithm, such as in an FPGA (or ASIC if you need a large number of them), you need to learn about digital logic hardware. The thought process is somewhat different than most programming, but it isn't so hard to do. -- glen
Tim Wescott <tim@seemywebsite.com> wrote in
news:yKCdnW1eVLuUTzXanZ2dnUVZ_s3inZ2d@web-ster.com: 

> > Rune pretty much makes my point for me -- if you don't know > programming _at all_, then it'll be easier (or at least a lot less > expensive) to pick it up in a PC environment than with a board. > > Once one knows a bit, then one can transition to a board with a real > DSP chip. >
I think it really depends on where you are starting. I did my first PIC software application including learning the assembly language in 1/2 day. It wasn't particularly complicated (and it wasn't DSP), but it goes to the point that embedded software isn't necessarily harder than PCs. Something simple like a FIR filter takes about 5 lines of code. If you have an EZ-KIt or something like it, the device drivers and basic framework are already there. You can use C or assembly, neither are difficult in an ADI environment. You have different things to tackle when you use a PC. Are they easier or harder tasks? If you are familiar with Visual Studio, Microsoft APIs etc, I'm sure the PC seems like the easier choice. I stopped writing C programs for my PC when C stopped looking like C. I never did figure out all of Microsoft's craziness (or whatever). I have staff who write for Windows and they do fine as long as the underlying drivers do what they need. I know a very good programmer from another company who avoids (or did avoid) circular buffers in a Blackfin because they were unfamiliar to him. He has an extensive Windows programming background. He handled all the wraparounds manually. I have watched countless newcomers approach the programming side of DSP processors. In my experience, its not a big obstacle. Obviously, their initial code has lots of room for improvement. It also helps to know what you are trying to program in the first place. The same could be said for PC programming. I think the best advice is: Define a problem to solve and then work until you solve it. It doesn't need to be earthshaking, but it does need to be "real". Al Clark Danville Signal Processing, Inc.
On 6 Feb, 01:23, Al Clark <acl...@danvillesignal.com> wrote:
> Tim Wescott <t...@seemywebsite.com> wrote innews:yKCdnW1eVLuUTzXanZ2dnUVZ_s3inZ2d@web-ster.com: > > > > > Rune pretty much makes my point for me -- if you don't know > > programming _at all_, then it'll be easier (or at least a lot less > > expensive) to pick it up in a PC environment than with a board. > > > Once one knows a bit, then one can transition to a board with a real > > DSP chip. > > I think it really depends on where you are starting. I did my first PIC > software application including learning the assembly language in 1/2 day. > It wasn't particularly complicated (and it wasn't DSP), but it goes to > the point that embedded software isn't necessarily harder than PCs.
Two comments: - People now older than, say, 40-45 first learned programming in a different era, when hardware was simple and the difference between a PC and some (by present terminology) embedded device was not too great. In that sense, your statement that learning to program embedded devices is no harder than programming PCs (of that tiime) may be correct. - Even if your statement holds to be true today (whic may or may not be the case), there is more learning material for C and C++ on the PC than for any DSP or embedded device, and it is easier to get to. Just walk into the nearest university bookstore and there is hundreds of titles available. Even well off general bookstores carry programming titles these days.
> You have different things to tackle when you use a PC. Are they easier or > harder tasks? If you are familiar with Visual Studio, Microsoft APIs etc, > I'm sure the PC seems like the easier choice. I stopped writing C > programs for my PC when C stopped looking like C. I never did figure out > all of Microsoft's craziness (or whatever).
I agree and sympathise with your point. On the other hand, it is no problem to keep writing plain vanilla C or C++ if you want to, even with Visual Studio.
> Define a problem to solve and then work until you solve it. It doesn't > need to be earthshaking, but it does need to be "real".
Most certainly agreed. Rune