Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
03/21/05 00:13
Read: times


 
Msg Score: +2
 +2 Good Answer/Helpful
#90062 - Email Reply
Responding to: ???'s previous message
Gert sent me an email on this subject too. I thought I would post the whole reply here so all can see it.

----------------------------------------------------
Hello Michael,

- Sorry to contact you directly, but the message I posted on the 8052 forum regarding an simulation or emulation environment.did not receive a lot of reactions so far.

- I read on your user's page that you once bought the C8051F120DK development kit from Silicon Laboratories (formerly Cygnal). May I ask your opinion about this environment? If I look to the price, then this sounds more than reasonable if you see what you're getting.

I have used the described development kit for numerous projects. I particularly like the ability to make "proto" boards that connect to the processor via the 96 pin DIN connector so I can make quick turn development setups without having to build the MCU portion.


-What's your experience so far?

The debug facility offered by the SiLabs setup is an excellent implementation. The ability to work in-circuit and to be able to debug directly from the program image that is in FLASH permits direct test of the program image you intend to ship in the final product. I have seen too many development concepts that require one to write and/or compile the code in a separate way to support debugging. This leads to some code paths that are not fully tested when the program is made into the target release version. It also opens the chance of bugs made due to assumptions made that the conditional compilation switchover is transparent. With the SiLabs processor there is no need for this assumption. You test the target release code DIRECTLY. No special need to have RAM in code space so breakpoints would work. Instead the hardware breakpoint circuits on the SiLabs parts let you debug code "right from FLASH".


-Do you use it in combination with the Keil uVision environment or is the Silicon IDE and compiler more than sufficient?

I purchased the Keil tool set because it is possibly the best for the '51 processor. At some $2400 or so it may seem expensive but when coupled with the quality of generated code, reliability of tool, and assurance that the compiler always makes right code it is a good cost justification. When I first started with Cygnal parts in the earlier days the Keil uVision tool set was unable to directly support the JTAG debug port of the Cygnal parts. This was due to the fact that the Cygnal staff had not yet completed the necessary software DLL component for Windows that interfaces the uVision debug API to the Cygnal JTAG adapter. So I was forced to use the Cygnal IDE that did have this debug interface support. To use the Cygnal IDE you have to connect and configure the Keil compiler and linker to be used as the tool chain inside the IDE. Do note that the Cygnal IDE is just that....a development environment. It does not actually include a Cygnal/SiLabs C compiler and linker. If you buy the Eval kit you get an evaluation version of the Keil tool set with it. This version is a more generous setup than the eval/student version of the Keil tool set that you can get for free from the Keil web site. The main difference is that this version can make 8K programs from C, unlimited in assembler, and will permit the programs to start from address 0x0000. Still no FLOAT data type support though.

I have used the Keil IDE too. It is a far more professional IDE than the SiLabs IDE and has more debugging features. Now days the necessary DLL to interface most SiLabs parts to uVision 2 is available for download off the SiLabs web site. I have it but have not yet used it. (The last two projects I did I had the opportunity to re-use much code from the first C8051F126 project I did and so I stayed with the SiLabs IDE to save time and avoid having to setup the all my software files and built environment in the Keil IDE.


-Do you still use it?

I work in many MCU technologies since I am a product development specialist. Some clients have a preference for other technologies other than 8051 but I steer some projects I do toward the SiLabs parts if possible. This permits me to re-use experience from prior projects and get the job done faster which sometimes translates to more money in the pocket. More often than not the ability to quick turn a project from past experience and code re-use is what gets one into a project in the first place. So in answer to your question, yes I use the SiLabs solution whenever possible. However I also have to keep clients with MC68HC11, MC68HC908GP32, ATMega16, ATMega8, and PIC type processors happy too!


-Is it still possible to use a 'normal' 8051 derivative, once you've debugged your code or are you obliged to stay in the C8051 family?

It is possible to do what you have described above. I have done this on several occasions; one of which I described here: http://www.8052.com/users/mkaras/Cygnal_ICD.phtml . In this case instead of using an eval card itself I adapted a Cygnal C8051F226 type part directly into a target product socket so I could support code work on the product. It worked great but it was necessary to put some conditional compilation directives in the code to support the re-targeting to the final deliverable code to an Intel 89C51FA family part.

This brings up an important point. It is not necessary to use one of the SiLabs eval cards to derive the benefits of JTAG debugging. Any of their parts can be put right into your own electronics and as long as you make provision for the 10-pin connector you can do in circuit FLASH programming and debugging. All the eval card really gets you is the ability to start testing code without having to build anything. In many cases you can simply connect up I/O devices such as keypads and LCDs directly to an eval card. (Do keep in mind that ALL the SiLabs parts are 3.3volts).

One other project I did in a similar manner was for a guy from Greece that hired me to write a Mag Card reader code module for him. I used a SiLabs C8951F226 eval card connected to an off-the-shelf low cost mag card stripe reader. I made the code in assembler for him and tested it on the 'F226 part and then flipped an assembly time equate to change port pin assignments to his target hardware which I believe was an Atmel AT89C4051 part.

When you intend to do a re-target like this keep in mind that there are no parts in the SiLabs family that are exactly like the bog standard Intel 8051 original. In the case of their most similar parts, ie like the F226, things like the UART, TIMERs, and EXT INTR signals are on different equivalent port pins. When you move up to the higher end parts such as an 'F005 or 'F020 part these have the on-board I/O crossbar which provides a degree of configurable I/O pin assignment which is completely different from other vendors special function I/O methodology. When you get to the highest end SiLbs parts there are extra discoveries that cause code re-targeting to get even more complicated such as additional SFR functions, SiLabs specific SFR address assignments that are different from other derivatives (and sometimes with different names too), and the concept of the SFRPAGE concept that you will on parts like the 'F12x family. By the way, do not get misled about the SiLabs I/O Cross bar. At first glance they will have you thinking it is a true cross bar switch wherein you can configure any SFR function to any I/O pin. This is far from how it actually works so if you get in bed with SiLabs parts you may find it more comfortable to stay with that partner (or at least her siblings) instead of going to a new bed next month.


-What extra do you have to develop, once your project is bugfree? Since you're using the DK for development purposes only, I assume you need an extra processor board for the final assembly? Or how do you do this?

See above discussion. That should answer this.


-Other things I should know?

I'm asking these questions since I faced (and still face) problems with one of my PCF8574's (see one of the latest threads on the 8052 forum) and I currently don't have anything to do serious debugging. Since I want to continue to develop both hard- and software projects, I'm thinking in doing a small investment in something that is worth "every penny".

If you are a student I would think that acquiring a SiLabs eval board would be worth "every penny". For some projects you could even embed an eval card right into your project implementation. If your out in industry already you will find the eval cards too expensive to buy for more than 1-up or 2-up development platforms. Anything more than that you are better off to roll some real target product hardware and make sure to provide for a JTAG connector. If your target needs to be "small" there is no need to use the "huge 2x5 100mil" style JTAG connector on the target board. I have for example used 10-conductor 1mm pitch FPC connectors for JTAG and made a simple adapter cable to the SiLabs EC2 JTAG pod. Do keep in mind that I find that development boards such as those from SiLabs are often a way for me to get software development going on project weeks ahead of time while others are busily getting together the target hardware platform. Sometimes I even quick-turn my own development boards. (I just did this for a project at one company where I wanted a version of the target hardware that had larger and easier to probe circuits. The real hardware is all micro-lead frame packages and 0402 resistors and capacitors which are almost impossible to use for software development where you often need to connect up a scope or other instruments.

Michael Karas


List of 6 messages in thread
TopicAuthorDate
Any suggestions for emu- or simulator?            01/01/70 00:00      
   Cat            01/01/70 00:00      
      Spooky, my 'mistaken' cat...            01/01/70 00:00      
   P89V51RD2            01/01/70 00:00      
   Email Reply            01/01/70 00:00      
   price is not the factor, cost is            01/01/70 00:00      

Back to Subject List