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.

Compiler/msp430f5659: mspboot ISR not working

Part Number: MSP430F5659
Other Parts Discussed in Thread: MSP430F5529

Tool/software: TI C/C++ Compiler

Hi, 

I'm testing MSPBoot code for msp430f5659.

I succeeded downloading application code by mspboot.

But, when i use usci_b1 I2C and , my code was no response. 

I think the ISR vector mapping is correct.

Other ISR like DMA_ISR, P3_ISR etc. is working.

Here is my linker file.

linker.zip

Is there anything else I should set up?

vector file : vector file.zip

mspboot : F5659_spi MSPBoot.zip

Thanks,

Regards 

Youngjun

  • Hi Youngjun,

    Can you provide your vector mapping? Also, is it possible to debug the code and see what happens when you try to communicate with the device?

    Finally, in your post you mention you're using I2C but the linker file says SPI. Just to clarify, which protocol are you using?

    Best regards,
    Caleb Overbay
  • Hi Caleb Overbay.

    Thank you for your reply.

    I'm using spi and dma by ISR for MSPBoot.

    It is work.

    My Oled works in general ccs project. (OLED : WEO006432a)

    But, When i run Oled code in MSPBoot application code, my oled is not working.

    And, I can't debugging mspboot application code.

    I uploaded vector file above question.

    Thanks
    Regards,
    Youngjun.

  • Hi Youngjun,

    Thanks for providing the vector files. It looks like you've set them up correctly. I noticed you were using USB on this device but in your linker file you don't have USBRAM defined. This might not be the issue but I recommend including it in your application's linker.

    MSPBoot was built for our small memory model devices and the MSP430F5659 is a large memory model device. Have you taken this into account while porting MSPBoot to this device?

    Also why can't you debug the application code? I recommend starting by using the debugger to program MSPBoot onto the MCU. Keep the debugger attached and in debug mode. Then have your host transfer the image to the device and once the MCU switches over to the application, you can load symbols from the application in CCS and debug you app code. This would be the best way of finding out what is causing your problem.

    Best regards,
    Caleb Overbay
  • Hi Caleb Overbay.
    I also had USB communication problem. Thanks.

    I just want to know why my oled doesn't working in mspboot application code.
    Because, I checked that another sensor attached my mcu is working.
    I think I have to check I2C register in application code.

    Thanks.
    Best regards,
    Youngjun.
  • Hi Youngjun,

    I'm not sure why your oled isn't working. MSPBoot is a very complex program so it could be a number of things causing the issue. What changes did you make to MSPBoot to allow for large memory model support? Also are you able to debug the code using the method I described above?

    Best regards,
    Caleb Overbay
  • Hi Caleb Overbay,

    my code is modified like below.
    1. system clock to 8MHz.
    2. SPI register variable in TI_MSPBoot_CI_PHYDL_USCI_SPI.c
    3. buffering method in TI_MSPBoot_CI_PHYDL_Poll() function.
    4. vector table
    5. linker file
    I uploaded my mspboot poject above question.

    And, i can debug application code by disassembly after uploading by mspboot.
    Also I can see the register setting in ccs.

    Thanks,
    Best regards,
    Youngjun.
  • Hi Youngjun,

    There are more changes that need to be made to accommodate the large memory model. I've been working on updating MSPBoot to include this support. Currently in your code, if anything is placed in upper memory, it will not work.

    I'm attaching a preliminary code revision for MSPBoot on the MSP430F5529 using UART communication. Pay close attention to the Memory Interface (MI) portion of the code. Also, some of the linker variable names have been modified so you'll need to change them if you want to integrate this into your current code.

    Large_Mem_MSPBoot.zip

    Best regards,

    Caleb Overbay

  • Thanks for your reply.
    I found the problem.
    My Oled i2c write timing was longer than i expected.
    It's working when i add delay_cycle.
    But, i don't why the mspboot application is not working without delay.

    Thanks,
    Best regards,
    Youngjun.
  • Hi Youngjun,

    Can you point me to where in your code did you need to add the delay? Maybe I can help determine why this got things working again.

    Also, be sure to take a look at the large memory model example I provided. It's crucial that you make the appropriate changes to your memory interface code so that you can take advantage of the full code space.

    Best regards,
    Caleb Overbay
  • Hi Caleb Overbay.

    I added delay at I2C start, stop idle condition,

    below picture is my oled datasheet.

    System clock of my code is 8MHz and the timing of Tidle is 1.3us. 

    Thank you for uploading large memory model example.

    I will change large memory model soon.

    Thanks.

    Best regards,

    Youngjun.

**Attention** This is a public forum