This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Development Experience with C5505?

We're trying to get to market rather rapidly with a C5505 based design. I'd be really interested in hearing from users who have developed their own target boards, and written code, as to how easy it has been to get target boards working, code working, getting tools to cooperate, using libraries, and generally making progress? Initially, we will do some rather simple stuff that could probably be done with a simple uP, but we'd like to put the hooks in to do upgrades, ostensibly via SD cards or USB. So we'll need some basic drivers to upgrade. But initially, our code will be quite simple.

Thoughts and experiences?

  • Just our own experience here.

    Also having more or less a similar target as you do.

    The tools are ok and libs quite mature, but examples are not complete.

    Faced quite a few issues with the USB and the real problem was the lack of official responses on the subject, so we been left on our own to solve problems, we even turned to third party for this and got quotation of 5 digit numbers.

    Thankfully we managed to solve the issues based on our efforts alone but the outcome was a pleasant surprise in terms of performance at least according to what we expected.

    Can't tell yet on boards since we are currently in designing but it does not seem to be an issue there if you follow the standards of the reference designs.

    I hope the above give you an idea of our own experience.

     

    Regards,

    Christos

     

     

     

  • I would say that it is a mixed bag, depending upon your experience.

    For budgetary reasons, we decided to skip purchasing the evaluation board and attempt firmware development on our own custom board.  This did speed things up and save some money.  The first prototype came up and ran perfectly, and the second prototype is also working well.  There has been one mysterious glitch with the JTAG that is particularly frustrating because it worked on the first board and I added "improvements" from the documentation.  Since the differences are almost arbitrary, it may be tough to figure out why.  These are the risks of skipping the evaluation boards, but thankfully the customer will not need JTAG because firmware will be preloaded into an on-board Flash.  In any event, the evaluation boards would have required a great deal of additional peripherals before our firmware development could have started, so it made sense to just build the whole board instead of just an evaluation module peripheral board.

    As you may be aware, DSP programming is a bit more challenging than typical MCU programming.  The samples and documentation are thin, but so far it seems that all of the information is there if you are clever.  This forum helps a great deal.  I have received answers from employees as well as fellow engineers, so the forum lives up to its name.  I have only used the CSL, though, and not the real time BIOS, but that is mostly because it is my style to write close to the iron and use as few libraries as possible.  On that note, the open source DSP library is interesting, but perhaps neglected by the community (unless I'm just not linked in).

    The only thing is that I would caution you that your combination of working with the C5505 for the first time and desiring rapid completion might be incompatible.  You may need significant time to get the hardware and firmware worked out.  It might seem like you can release quickly if you start with small features and allow for later upgrades, but the catch is that you cannot design your hardware for upgrades without fully understanding the DSP first.  A great deal of the power of the C55x comes from DMA and peripherals that you can directly wire to hardware on your board, and wiring is obviously not upgradable in the field.  In other words, you have to put in the research to get your hardware design right from the start so that you can leave room for efficient feature additions in the future.

    Apart from the limitations of hardware, you can certainly start with a small firmware and add features later - just be sure to develop or purchase some sort of firmware upgrade technology.  The chip has a USB bootloader built in, but that uses the Texas Instruments VID/PID because it is in ROM, so you might have difficulty distinguishing your product if you use that (unless I'm missing something).  However, there are many other bootloader modes, and you could probably design an SD card based firmware loader that would allow mechanical firmware updates.  If you develop or purchase a dual-stage bootloader that supports USB, then you could have a firmware that loads an upgrade via USB and burns it into some non-volatile memory.

  • Thanks for the feedback.

  • Thanks for this very thorough response. Followup question - we're doing mixed signal i.e. audio on the same board as the C5505. What was your experience with analog noise issues on your board? I assume you're doing some analog/mixed signal?

    Thanks.

  • I should point out that I'm designing with the C5506, and it's perhaps a bit too early to comment on analog noise.  The design actually only has D/A on the same board as the DSP.  All 16 channels of A/D are on separate boards with serial digital interconnects.  Noise appears to be very low, but the entire system has not been fully tested, and thus these early results might be misleading.  The analog signals are control signals, not general audio, so we are able to control the frequencies used to avoid clock noise or other issues.

    In general, I recommend putting audio on a separate board with only digital signals flowing between each board.  This should isolate the audio from most of the noise.