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.

IWR1843BOOST: IWR1843BOOST

Part Number: IWR1843BOOST
Other Parts Discussed in Thread: SYSBIOS, UNIFLASH, IWR1843, IWR6843

Hi,

sorry if I've asked this before - there's a lot to learn between tools, sysBios, applications etc !

Once I have a successful build in CCS (e.g OOB demo as a known starting point, before I try my own code), I can download & debug in CCS - but what if I want to configure & use the system via say mmWaveStudio, with code from CCS?

mmWaveStudio requires a file (e.g. ...MASTERSS.bin) to be downloaded, overwriting the CCS debug load.

>> How do I turn the CCS output - which I assume has separate MSS & DSS parts, into one file which contains both (presumable MASTERSS is both)?

Is this done with Image_Creator, or is that just for FLASH files ... or are FLASH files & those suitable for mmWavewSTudio the same? In the image_creator doc, it says something about the SDK may contain tools - is there a simple way to use it?

Or, if its not image_creator, how do I do this?

may thanks

Alan Milne

  • Hi, Alan:

    When you use the mmwave studio, you have to load the binary that was provided in the radar studio release under C:\ti\mmwave_studio_02_01_01_00\rf_eval_firmware\.   There is not an option that you use any demo code to work with mmwave studio.   

    Best,

    Zigang

  • Hi Zigang,

    I understand what you're telling me.  What I'm trying to do is go one step at a time - first to be sure that I've got the PROCESS correct, so that I have the best chance of testing that my own software is working or not.

    I will be providing my own controller (i.e. similar to mmWaveStudio, but without the fancy bits, sort of thing), so that's not really the question.  I don't want to be using the FLASH device all the time for development changes, so I will want to download builds - and it seems that this mechanism is already built into the software that's on the IWR: no point in re-inventing.

    I understand that my own code will probably not be compatible with Studio - all I want to do in this step is to be able to build the OOB demo in CCS (done that bit) and get this onto the IWR to check it all works i.e. sort out the process of doing so, with known software.  Then I'll move on to my own code.

    >> Thus, I need to know how I get from the various files CCS produces, for MSS & DSS, into the format I can download (using Studio) and check it's all just the same as the pre-built files. One step at a time.

    many thanks

    Alan

  • HI, Alan:

    Unfortunately, the binary that works with mmwave studio is very different from OOB demo.  And the source code of this binary is not provided, not even to the internal users.   One difference is that the configuration is sent to the sensor through SPI interface instead of UART (OOB demo is using UART).

    That is why I mentioned that it is not supported to run mmwave studio with other demo. 

    Best,

    Zigang

      

  • Hi Zigang,

    hmm, I can see now that I've made a fundamental (and rather silly) mistake!  I've been so busy using the OOB as my starting point, and indeed it's OOB that I've got in the IWR flash, that I've made a totally wrong assumption i.e. the pre-built bin for mmWaveStudio IS the OOB ... whereas the OOB works not with Studio, but with the visualiser - think I've got that right, at last!

    It's all to do with who/what is using the com-ports (not quite sure what CCS debug uses), but I still want to be able to control/configure the IWR, and receive data - hence I'd like to be able to download software onto the IWR, and then leave the com-ports free, for my own interface s/w.  The OOB has this facility, I think, on the grounds that this is what I'm talking to on the IWR (i.e. from FLASH at power-up), even when I'm about to do a download from mmWaveStudio - I know of the CCSdebug build too.

    >> so: I have CCS producing files for both MSS & DSS, and I have the means to do a download onto the IWR - but I don't know what I need to do to get from the CCS outputs, to the single downloadable file.

    Of course, there may be another incorrect assumption here: the single pre-built file, for use with mmWaveStudio, does contain both MSS & DSS?  The functionality it gives is a bit much to just be a single core load?

    many thanks

    Alan

  • Hi, Alan:

    I am very confuse when you talk about CCS debug, pre-build binary together with mmwaveStudio.  I already mentioned that mmwaveStudio is independent tool, you can not load any demo binary to mmwave studio.  

    For other questions, please submit a new e2e ticket. 

    Best,

    Zigang

  • Hi Zigang,

    to clarify: I have various tools with go with the IWR i.e. CCS, mmWaveStudio, Visualiser etc, which work in various combinations.

    I have the OOB demo in FLASH - which allows me to download for example the pre-built .bins for use with mmWaveStudio - presumably this also means that I could download other code onto the IWR via the same mechanism?

    I can generate new code in CCS (for example OOB as a known starting point to test just the process) - and use the debug functions of that to get code onto the IWR.  However, this presumably uses one or both of the IWR com ports for CCS?  Thus, I may not be able to use them for control/config/data etc - in a similar way to say the visualiser does.

    So: I'd like to be able to download new code, using the mechanism above ... assuming this is how it works.

    >>>>>If this IS possible, how do I get from the MSS & DSS outputs produced by CCS, to the single binary that is downloaded. Of course, I'm assuming the this single download has both MSS & DSS in it.

    I'm only trying to use the tools available - to produce my own code, and get it onto the IWR: preferably without using the FLASH.  I seem to have most of the pieces available in the tools provided - even if not quite in the expected order or combinations. This is trying to take one step at a time to learn how the process works, using what is available.

    Once I know how its all done, I'll be using CCS, plus whatever produces the downloadable .bin, an some sort of controller of my own i.e. replacing mmWavwStudio & visualiser functionality - they are just the tools I have to start with, to use along the way to my own system.

    Hope that helps.

    Alan

  • Hi, Alan:

    Whether you are flashing the binary or loading the binary through CCS,  you will be able to use the same visualizer,  you will be able to send the configuration through UART the same way and you will be able to obtain the output the same way (like through visualizer).

    Best,

    Zigang 

  • Hi Zigang,

    thanks for that - but I still have the question of how I get from the two .bins (MSS & DSS) produced in CCS, to the single .bin used for download?

    thanks

    Alan

  • Hi, Alan:

    When you build the project, it will create the single .bin as well as the two .bins(MSS &DSS).   You can check the project spec for any demo you are interested.  You can download the latest industrial toolbox at: https://dev.ti.com/tirex/explore/node?node=AJoMGA2ID9pCPWEKPi16wg__VLyFKFf__LATEST, and find the project spec for any of the demo included in the package.  For example, you can find the xwr1843 OOB demo project spec at: 

    C:\ti\mmwave_industrial_toolbox_xx_xx_xx\labs\Out_Of_Box_Demo\src\xwr18xx\out_of_box_18xx_dss.projectspec

    C:\ti\mmwave_industrial_toolbox_xx_xx_xx\labs\Out_Of_Box_Demo\src\xwr18xx\out_of_box_18xx_mss.projectspec

    When you build the project, you need to build DSS binary first, and then built MSS binary, it will also create the single .bin. 

    Let me know if it is helpful.

    Best,

    Zigang

  • Hi Alan,

    As Zigang said above the .projectspec files used by ccs to build the projects. In the mss project spec you will see post build steps similar to what I have attached here. This pulls in the bss (radarss from the SDK), mss and dss images into one single binary image that can be flashed onto the device.

    postBuildStep="${COM_TI_MMWAVE_SDK_INSTALL_DIR}/packages/scripts/ImageCreator/out2rprc/out2rprc.exe xwr68xx_mmw_demo_mss.xer4f xwr68xx_mmw_demo_mss.tmp;
            ${COM_TI_MMWAVE_SDK_INSTALL_DIR}/packages/scripts/ImageCreator/multicore_image_generator/MulticoreImageGen.exe LE 37 0x00000006 xwr68xx_mmw_demo.bin 0x35510000 xwr68xx_mmw_demo_mss.tmp 0xb5510000 ${COM_TI_MMWAVE_SDK_INSTALL_DIR}/firmware/radarss/xwr6xxx_radarss_rprc.bin 0xd5510000 ${WORKSPACE_LOC}/mmwave_sdk_68xx_dsp_dss/Debug/xwr68xx_mmw_demo_dss.bin;
            ${COM_TI_MMWAVE_SDK_INSTALL_DIR}/packages/scripts/ImageCreator/crc_multicore_image/crc_multicore_image.exe xwr68xx_mmw_demo.bin xwr68xx_mmw_demo.tmp;
            ${COM_TI_MMWAVE_SDK_INSTALL_DIR}/packages/scripts/ImageCreator/append_bin_crc/gen_bincrc32.exe xwr68xx_mmw_demo.bin;"

    Thank you,

    Angie

  • Hi Zigang & Angie,

    brilliant, that's exactly the information I'm after!  As I understand it then, this is what happens as a project is created ... and I can see all the relevant files in the toolbox OOB directories.

    What I seem to be missing still, is how I get this working in my own project ... I don't seem to see any single .bin being created as I do the compile (dss then mss re-built etc).  From Zigang's text, this ought to be happening, but I can't find the resulting .bin in my directories (separate DSS & MSS OK, so its nearly working).

    Is there some further step I need to do e.g. to make sure the image_creator output is pointing where I want it?

    Juts to check also: this single .bin is what I would use to FLASH onto the hardware.  Is it exactly the same file I'd use to DOWNLOAD e.g. like mmWaveStuido does?  I'm wondering if I need to produce a slightly different .bin, as studio asks for the BSS file separately.

    Great, nearly all there!

    many thanks

    Alan

  • Hi again,

    I think I may have eventually found the files:

    In the ISK folders there are .xe674 & .xeRF4 - these are the binary outputs for dss & mss?

    Then in the BINARIES folders, there is a xxx_DSS_ISK.bin, no xxx_MSS_ISK.bin but a xxx_demo_isk.bin - this one is the final, everything in it file?

    thanks

    Alan

  • Hi Alan,

    Yes! the .xe674 and .xeRF4 are the binary outputs for the dss & mss. The xxx_demo_isk.bin includes the bss, mss and dss images all in 1. 

    Thanks,

    Angie

  • Hi Angie,

    great!  Sorry if it takes me a while to get there - but there's so much to take in ... how the IWR code works, how to use tiROS, CCS , mmWave tools etc etc!  I have used some TI products before, but that was C40 processors and, erm, about 30 years ago!

    Still one thing: if I use the "mmWaveStudio mechanism" for downloading the bin, it asks for the bss part separately.

    >> Presumably I could still load the bss (studio wants this first) - and then the "whole" bin would overwrite, but still be OK?

    >> Presumably I could do a new image_creator command to build just mss + dss, but no bss?

    I've got the CCS bit more or less sorted, and started producing my own code (for IWR & PC to control it) ... this question thread is all about how to get that code onto the IWR.  I need to do this using the tools supplied (e.g. studio & OOB demo) first, so that I can be sure that I've understood the process and can get the oob functionality working (from a CCS build, rather than the pre-build versions supplied) before I get to my own code on the IWR. One bit at a time!

    many thanks!

    Alan

  • HI, Alan:

    You can only use the binary provided in the mmwave studio release for firmware loading.   Any demo binary will not work.

    Best,

    Zigang

  • Hi,

    OK I understand that for use with the mmWaveStudio, you'd have to use only the files provided.

    However I still have the requirement: to be able to generate code in CCS & image_creator etc - and to be able to download this onto the IWR ... NOT using the FLASH, as this isn't suitable for development use.  I think what I'm trying to get to can be asked in two parts:

    1) is there some form, tool etc in the ITB, SDK etc, which allows me to download files to the IWR - assume these are in multicore image i.e. MSTR format, as in the final .bin produced by CCS using image_creator?

    2) if that's not the case, then I have mmWaveStudio with the OOB in the IWR.  Evidently this can download - in RPRC format.  I'm assuming this has both mss & dss in it.  How can I generate a file suitable for this? out2rprc does part of it, but doesn't put mss & dss together in a single file (of course it may just be that the mmWaweStudio code isn't multicore??).

    As the IWR and similar are sold as development platforms, surely there is a way somehow of downloading development code?

    thanks

    Alan

  • Hi Alan,

    1) the ITB features .bin files that have been produced by CCS for all our labs. These are multi-core images. To find these images you need to download ITB. 

    Clarification: are you trying to load an image without using our uniflash tool?

    Thank you,

    Angie

  • Hi Angie,

    I have the OTB thanks.  I need to be able to re-create all files for the labs by making & compiling CCS projects (done for OOB) - so I understand how all that works - before I get to testing software of my own. I need to know the process of code production & loading onto the IWR all works ... so I know whether my code works or not.

    I don't want to use the FLASH facility, if at all possible.  FLASH devices have limited programming life time so, for development, I want some other way of getting code on there.  It seems that I'm very nearly there i.e. OOB in FLASH plus mmWaveStudio DOES give download facility ... but I don't have all the information as to how I produce the files.  Maybe CCS etc is already producing everything I need, I just need to understand it all e.g. I now know it produces the overall .bin file (which you would use with FLASH, yes?) in MSTR sort of format, but this isn't the file or format (RPRC) needed to get mss & dss in onto the IWR (bss being loaded separately).

    Hope that makes sense!
    thanks

    Alan

  • Hi Alan,

    Great! This document (IWR6843 Bootloader Flow) can help you get started with understanding how to load code onto our device. Even though it is labeled IWR6843 it applies to the IWR1843 as well. In production you can use SPI connections to load code without flash (see figure 4).

    Thanks,

    Angie

  • Hi Angie,

    Brilliant, thanks, now we're really getting somewhere ... a busy few days ahead I think, understanding and implementing!  I won't close this thread just yet, as there may be a few more questions.  To start, a couple of things, just to be sure I've understood so far:

    • so: I use SOP mode 5 (FLASH), but use command 0x26 - should write to SRAM not the FLASH device;
    • the file/format, protocol etc are the same as for the FLASH i.e. uses the got-everything-in-it .bin produced by CCS, as already discussed;

    just for completeness:

    • when I say I've got the OOB demo in FLASH, this doesn't actually matter - in SOP5, I'm actually talking to the boot loader, which is in separate ROM?
    • so, no matter what's in FLASH (even if I erase it ... don't intend to), the boot loader program will still be there?  Just making sure I don't break anything!
    • Is it possible to write to the boot loader ROM? It talks of "investing in your own loader".  This really is just for interest and understanding, and again checking out things I must avoid, so I don't break it.

    I was going to ask whether the protocol for all this was available - that's table 2, so I think that document (plus these questions) covers everything I can think of at the moment.  I like that there's a PING & VERSION commands - something very low level that I can implement first, to check that I've got the serial comms working, before anything more complicated.

    many thanks

    Alan

  • Hi Alan,

    I'm glad this is helping you! If you are asking additional questions it would be best to start a new thread. This helps us keep track of customer questions and helps with findability when other customers have the same question.

    • when I say I've got the OOB demo in FLASH, this doesn't actually matter - in SOP5, I'm actually talking to the boot loader, which is in separate ROM?
      • Can you explain what you mean by OOB demo in FLASH? You can have the device in SOP5 or SOP4 mode. You can load the .bin in SFLASH using our Uniflash tool or you can load it over UART directly to program memory. Loading can only happen in SOP5 mode. 
    • so, no matter what's in FLASH (even if I erase it ... don't intend to), the boot loader program will still be there?  Just making sure I don't break anything!
      • Do you mean the ability to go into bootmode? That is no breakable if so.
    • Is it possible to write to the boot loader ROM? It talks of "investing in your own loader".  This really is just for interest and understanding, and again checking out things I must avoid, so I don't break it.
      • I will get back to you with an answer here tomorrow

    Thank you,

    Angie

  • Hi Alan,

    Additionally...

    • Is it possible to write to the boot loader ROM? It talks of "investing in your own loader".  This really is just for interest and understanding, and again checking out things I must avoid, so I don't break it.
      • You can not write to ROM (read only memory) and there is no way to change the way the bootloader is set up. You can only load an image over Sflash and over SPI. 
  • Hi Angie,

    it's always been my philosophy that, in order to design, you have to understand.  Sometimes as you delve in and start to understand - you find there are more layers underneath, which also need to be understood.

    I have programmed the OOB demo pre-built binaries into my IWR FLASH - my starting point.  The doc you pointed me at answers the question of how I write binaries into RAM, rather than FLASH.

    The remaining questions are to do with discovering more layers: I had thought that the down-loader etc was part of the OOB code, but in fact it seems not, they're in another memory.  I then just wanted to know that this was "safe" - so no matter what I do with ram/FLASH loading, I can't break that bit, and can always load new code.

    I think you've answered all my queries so far now! One last thing to check...

    When in SOP5 - ALL commands in table 2 of the doc should be available?

    I've got the first part of my own (PC) interface to the IWR done - in fact this was already done, and I use it for sending config files, so I know the basic comms etc are all working, I've just added a PING button to it.

    So far, I haven't got anything back in SOP5: I'm sending the PING command, but it doesn't answer.  I'm assuming this is going to be do with windows/c#/comPorts being a bit strange when sending things other than normal characters.  If so, that's all in my domain to solve, I just wanted to check that I've understood the document ... in SOP5, send PING, and I should get a ACK back?

    Also, I understand the need to keep discussion threads to a single subject where possible: this one was meant to be about getting code from CCS onto the IWR ... without using the FLASH, or the CCS debugger, because I want to free up the com ports to/from the IWR.  I think all the rest flows from that, so I was at least trying to stay on one subject.

    many thanks

    Alan

  • Hi Alan,

    This is all one subject, just wanted to let you know if you have additional questions that aren't on subject to place them in a new thread to help our other customers find the answers as well. The benefit of this forum is that all your questions and answers are public allowing everyone to learn from TI answering these questions.

    When in SOP5 - ALL commands in table 2 of the doc should be available? Yes

    If so, that's all in my domain to solve, I just wanted to check that I've understood the document ... in SOP5, send PING, and I should get a ACK back? Yes

    Thank you,

    Angie