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.

C553x Hardware Register Header

Hey everybody,

in my current project I use C5532 (right now the TMS320C5535eZdsp evalboard). I do not want to use bios or CSL in that project, because I want to have better control of hardware and also deeper knowledge about the DSP itself.

However therefore I needed a register header file to get access to the registers, I used the 'registers.h' from the CSL V3 programmer example as a guideline and extend it with all registers from the datasheet. I thought, maybe it is also helpful for somebody out there. Of course I can not give any warranty of the correctness, but if I will face some problems I will update the file here in the forum (if wanted). I tried to use the phrases of the registers out of the datasheet so that you can for example write something like:

TCR0        |= (1<<TIMEN) | (1<<AUTORELOAD) | (DIV16);

But sometimes it was not possible, for example for phrases like "EN" or "RESET", in that cases please refer to the 'register.h' file for the correct naming (peripheral is described in the file in same order as in datasheet). Unfortunately some of the registers are not or just partial described in the datasheet like the NMI register (IO Addr. 0x1C3E) or DEVCTL (IO Addr. 0x8461?), maybe one of the TI guys here can tell us something about them :).

Also, I will post in a new topic (unfortunately I can just attache one file at once in one post) an updated 'vectors.asm' file (based on C5505eZdsp demo vectors.asm), which should compatible to C553x devices. (see here http://e2e.ti.com/support/dsp/tms320c5000_power-efficient_dsps/f/109/t/231447.aspx)

I will show in that post also how easy it can be to set a timer interrupt without CSL. By the way, I really like CSL (used it a lot in C67x projects), but if you want to understand what happens in hardware you must do it (at least once) yourself ;) Maybe there are some guys out there who are also interested in that like I was (and am) and they will like that example :)

Regards,

Max

registers.h
  • Hey thank you for your posts !!  I can say that CSL and DSP-BIOS give me headaches.  I wish someone would completely "unravel" all that CSL stuff and just  use plain header files and C functions (with a minimal use of MACRO's).   Please continue your work.  Thanks.

  • Thank you for this .h file!!!

    ive been looking for hours and hours for a header file that includes all the addresses for the registers in the C5535 DSP!! Why does TI not have this header file anywhere to download?? Do they have it, and Im just not finding it???
     

    I am completely confused on what CSL or bios is or does... if someone could explain to me how to use them and what they are, that would be great, because I have a feeling they have something to do with the setting of registers!! Thank you!!!

  • Hey Nathan Zorndorf1,

    no problem, I attached a newer version of the header file (some minor changes in the latest version, but I would reccomend to use the latest).

    The CSL and bios is, in my opinion, a very good tool provided by TI to start easily develompent with DSP without complete deep knowledge about registers and peripheral stuff. In most cases you do not need to know exactly what is defined in the registers (low level layer of DSP) to get good results and that is for what CSL and bios is (just my  opinion). You can get really good examples to start with CSL components inside the CSL installation folder! The latest version for C55x is V3, you can find more information about how to use it and what it is here:

    http://processors.wiki.ti.com/index.php/C5000_Chip_Support_Library

    If you would like to know better what exactly happens in your application you need to set everything manually, which is on one side much more effort but on the other side in some applications a better way to improve the application.

    If you are new in developing software on DSP and you do not want necessarly getting deep insight of how peripheral stuff is done on DSP I would reccomend to use bios and CSL, because you will get much faster results.

    Regards,

    Max

    registers.h
  • Hi Max,

    Thanks so much for the reply and the updated .h file.
    There are 2 problems I am having if you wouldnt mind commenting more on them :)
    1)  It seems that the Chip Support Library is not supported for C5535. This is unfortunate because I am using the C5535. Can I still use the library meant for C5515 for the C5535?

    2) I just downloaded the TMS320VC55XCSL-LOWPWR .exe and installed it. But at this point I am completely in the dark about how to use it. Can i now just call functions like DC_config(), or do I need to do something more?

    I wish there more code examples, explanations, or a beginners guide of some sort... because as a beginner this is all very confusing.
    Also, why did TI not release their own register.h file? Im still scratching my head wondering why a member of the community had to provide this seemingly extremely important header file to all of us DSP users.

    Right now Im trying to configure the ADC, and the SPI by setting values in individual registers, which is probably a bad idea considering my lack of knowledge- but I have no options since I  dont know how to use the CSL.

    Anyways, thanks so much for the help Max - it is greatly appreciated.


    Cheers,
    Nate


    p.s.
     what is "the BIOS"?

  • Hey Nate,

    I will do my very best to answer your questions (as far as I can):

    1) It is true that the CSL is not officially supporting the C5535 but you can use it if you do not use the EMIF (because EMIF is not included on C553x processors). You can find the following commment from TI on the wiki page (I added the link in my last post):

    Q: Does the CSL support 5532/3/4/5?

    • A: As of version 2.50 the CSL has not been updated to include defined support for the 5532/3/4/5.
    • A: CSL version 2.50 can be used with 5532/3/4/5 by using the 5515 CSL without the EMIF support.

    May I ask you on which plattform you are trying to start your development? Is it the C5535 eZdsp USB Kit? If yes you can find also some additional test/demo software here http://support.spectrumdigital.com/boards/ezdsp5535/revc/

    2) The CSL is a bunch of c-source and header files, if you would like to use them you have (like in standard c) include the specific header file and use the prepared functions to configure or use the peripheral. There are a lot of code examples in your CSL installation folder (CSL installation folder\ccs_vx.x_examples) which you can use to understand how CSL must/can be used. Also there is a good html documentation in the folder (\doc) about the examples and the specific CSL functions.

    3) In my opinion it is really not a bad idea to configure the ADC or SPI yourself :), but it might be much easier (if you are a beginner with DSP dev.) to use the CSL. In the CSL installation folder are also some examples how to use the ADC (it is named SAR on the C5535) (CSL installation folder\ccs_vx.x_examples\sar\).

    4) The bios is some kind of a small operating system. You can use it to to handle tasks, software interrupts and priorities so that you do not need to think in your software how you need to implement such stuff (you can find some more information about everything here http://processors.wiki.ti.com/index.php/55x_FAQ)

    I hope I was able to help you a little bit.

    Best regards,

    Max

  • Thanks Max! That was a huge help.
    I am still a little unsure of how to use BIOS but the wiki will help me with that.
    Thanks again!

    Nate