1861 views|0 replies

2015

Posts

0

Resources
The OP
 

For beginners of TI 6000 series DSP [Copy link]

It was the same when I first learned DSP. When I encountered a problem, I didn't know how to express it clearly. It was really painful. Recently, I had some time to recall my process of learning DSP. It can be regarded as a personal experience. I hope it will be useful to everyone.
My experience
missed the first learning opportunity
. I entered university in 2000, majoring in communication engineering. When I entered the university, I had good grades and won a first-class scholarship. I thought I was very smart. At that time, our college had a science and technology association, referred to as the Science and Technology Association. The president of the Science and Technology Association at that time was a senior brother with a bald head. He was impressive. I felt that he was very powerful, so I joined the Science and Technology Association. The first class was to make a running light with 555. The Science and Technology Association had already made the printed circuit board. I only had to solder the components on it. The light was on and it was fun, so I figured out the principle of the circuit by myself. At that time, I was a kid who had just entered the university and didn't know anything. I couldn't understand that thing at all. I felt it was too difficult. Later, I gradually stopped participating in activities and gave up.
Now I think that I gave up too easily at that time, including the self-study of 51 single-chip microcomputer and FPGA in college, which were only a taste and not persistent, so that I missed many opportunities later. So here I want to tell everyone, and also tell myself, you must persist in learning technology. No matter what difficulties you encounter, you must never give up easily. Persistence will lead to progress, just like long-distance running, there are always a few difficult points. If you persist in it, you will feel that it is not so difficult, and your level will be improved. The
first time I used C51
Speaking of this, I have to thank one of my college roommates. He introduced me to C51, the first time I used protel to draw printed circuit boards, the first time I applied for free samples, the first time I wrote debugging programs, the first time I used an oscilloscope, etc. All these are attributed to his guidance.
Time flies, and I am a senior in a blink of an eye. Thinking about the fact that I played games for three years in college and neglected my studies, I must seize the opportunity of graduation design, otherwise I have no capital to find a job. So when choosing the topic, I chose a single-chip microcomputer topic "Signal Generator Design Based on DDS". Although I had been exposed to 51 and protel before, I only read books and didn't know how to do it. The solution I decided was to use C51 to control AD9853 to output the waveform of the corresponding frequency. Of course, the keyboard and LCD display are indispensable here. AD9853 is a sample applied for from AD company. At that time, I first knew that there was a free lunch. Big companies are really good. I remember that TI DSP could be applied for at that time, so I applied for a 6202, but it was not so easy to apply later. This time I persisted and did it step by step, and finally completed the graduation project successfully.
I am lucky because there is a very good teacher around me. Most beginners do not have such conditions. Even so, beginners should fully tap the resources around them and use them all, so that you can get closer to success.
Contact DSP
After graduation in 2004, I went to work in a research institute. My department was engaged in video trackers, mainly using DSP+FPGA. It was like a fish in water for me because I was very interested in these things. At that time, my colleagues were still using TI C50 DSP, which many people may not have heard of. TI's DSP has gone through several series in time: C25-C50-V33-2000-5000-6000. C50 has very limited functions and only has an assembly development environment. Because of its simple functions, it is relatively easy to learn. In addition, I have a basic knowledge of 51, so I got started quickly. A year and a half later, the department's device generation was directly replaced with 64xx. Due to the influence of C50, we are still used to using assembly for development. Around May 2006, I took the lead in using C to develop products and achieved good results.
I was exposed to a lot during this period. Due to my personal character, I wanted to learn everything well, so I took a lot of detours. For example, I started using protel for PCB, but later found it inconvenient to draw complex boards, so I learned to use allegro, and then SI; the same is true for DSP. After I learned how to use 6000, I wanted to learn 2000 and 5000, but later I found that I was naive. In fact, it is enough to master one or two. What to learn should pay attention to the learning concept. Tools and platforms are always external skills, and you must work hard to improve your internal skills.
Summary and suggestions
1) Choose your own tools and platforms
. Of course, you must first choose a DSP to learn DSP (here we mainly talk about TI's DSP, and I won't talk about AD if you are not familiar with it). If you are learning personally, it mainly depends on personal needs and application occasions. For example, if you are doing image processing, of course TI 6000 is the first choice. Beginners don't have to classify DSP into different levels. There is no obvious advantage or disadvantage in each series, but there are clear application areas. 2000 is more about interface control, 5000 is more about voice, and 6000 is suitable for large-scale signal processing, such as images, radars, etc. It is best for beginners to have a development board, otherwise it is just a theory. The development boards of 2000 and 5000 are relatively cheap, while those of 6000 are more expensive.
In terms of ease of use, I personally think that 6000 is easier to use. The structure of 6000 is clearer than that of 2000 and 5000, and there are fewer rules and regulations on the hardware. You don't need to read a lot of hardware structure information to start programming. This is probably the progress of technology. But it's still the same sentence. The application determines your choice.
2) Do it yourself.
If a beginner knows C language syntax, he can start writing his first program after reading some materials. If he can't write it, he can look at the most basic routines of TI and complete his first program. When I gave 6000 training to new colleagues in our unit, the first topic for them was to write a program to make the LED light flash continuously. This light may be connected to GPIO or controlled by EMIF decoding and FPGA (the latter may be more meaningful). The further program is to control the flashing frequency. I prefer to let them use GPIO and EMIF. They may be the simplest and most used peripherals in 6000. They are the first fortress that beginners need to conquer.
Beginners often have no concept of the coordination between hardware structure and software, and have no real understanding of the concepts of on-chip storage space, off-chip storage space, and on-chip peripherals. These concepts require repeated thinking, repeated experiments, and repeated experience to finally figure them out. Once you understand these, you will get started.
Beginners are more taboo to read too many and too complex routines. Reading too much will make your thoughts more chaotic, and reading too complex will make you impatient. Complex routines generally have relatively complex programming structures, which are difficult for beginners to understand. So don't read them at the beginning. Wait until you have written 20 to 30 programs before trying to read relatively complex routines.
3) Do more hands-on
. There is no need to say more. Just watching without practicing is fake.
4) On-chip peripherals
. Take DM642 as an example. I will arrange the commonly used peripherals from simple to complex: GPIO-TIMER-EDMA-EMIF-I2C-MCASP-VideoPort-EMAC, MDIO. I have never used MCASP, but after reading the information, I feel it is not complicated. My suggestion to beginners is to learn the first four clearly first. You can learn GPIO first, which is really simple. Don't rush to use CSL at the beginning. Use assembly or C to write a program to output a waveform on a GPIO pin. This will help you understand the on-chip peripherals and related concepts. After you understand the first four, you can learn the specific uses of the latter. At this time, you can look at the corresponding routines of TI and use them.
5) Assembly, C and linear assembly
The standard process for developing 6000 is to write in C first. There are many advantages of C that I won't talk about here. There are too many articles discussing them. However, for those who are preparing to do optimization, assembly is not good. Assembly is more helpful for you to understand the architecture of 6000 than C. Many beginners do not understand the use of pointers to operate a certain space in C language. It is relatively easier to understand if it is written in assembly.
You don't have to be afraid of assembly. In fact, it is also very simple, but it is more obscure. It takes too much time to develop the entire system with it. However, the optimization of key algorithms is sometimes inseparable from it. TI currently also provides linear assembly, which is a compromise between assembly and C, combining the efficiency of assembly and the ease of development of C.
Assembly and C are just tools. The key is your understanding of the architecture and programming concepts, so it makes sense to choose either one, just explore the architecture through tools. I personally think that beginners should mainly learn C. After all, it is the mainstream. You can write 4-5 small programs in assembly and be familiar with its syntax. You will not know nothing when you use it for optimization in the future, and it also helps to understand the hardware architecture.

This post is from DSP and ARM Processors
 

Guess Your Favourite
Just looking around
Find a datasheet?

EEWorld Datasheet Technical Support

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号
快速回复 返回顶部 Return list