MSPM0G1107: MSPZero code studio

Part Number: MSPM0G1107

Tool/software:

Hi Team, 

Posting this on behalf of customer who will be tracking this post too. 

Our customer from KGS are seeing an issue with the MSPZero Code studio with its saving functionality. 

The version number does not show on the application info but customer have the latest version? 

I recommended to re-install and also asked him to try the web version for now but have you seen this issue before?

I tried this on my end but I was able to save my progress and load it back. 

Can you help? 

Regards,

Ivan

  • Update from customer: 

    The issue mentioned is visible only after the project has some complexity. Sometimes save work, sometime not. 

    If you try to add some blocks than those new blocks sometimes (in my case very often) are not saved.

  • Hi Team,

    I do not see how I could include project file here. I pasted it below.

    If I add another block; like another GPIO WRITE and build project than save, new syscfg file will not include those blocks.

    It happen more often than not.

    /**
    * These arguments were used when this file was generated. They will be automatically applied on subsequent loads
    * via the GUI or CLI. Run CLI with '--help' for additional information on how to override these arguments.
    * @cliArgs --device "MSPM0G110X" --part "Default" --package "VQFN-32(RHB)" --product "MSPM0-ZERO-CODE-SDK@1.01.00.08"
    * @v2CliArgs --device "MSPM0G1107" --package "VQFN-32(RHB)" --product "MSPM0-ZERO-CODE-SDK@1.01.00.08"
    * @versions {"tool":"1.22.0+3893"}
    */

    /**
    * Import the modules used in this configuration.
    */
    const gpio_write = scripting.addModule("/ti/zero_code/gpio/gpio_write/gpio_write", {}, false);
    const gpio_write1 = gpio_write.addInstance();
    const gpio_write2 = gpio_write.addInstance();
    const gpio_write3 = gpio_write.addInstance();
    const gpio_write4 = gpio_write.addInstance();
    const i2cc_read = scripting.addModule("/ti/zero_code/i2c/i2cc_read/i2cc_read", {}, false);
    const i2cc_read1 = i2cc_read.addInstance();
    const i2cc_write = scripting.addModule("/ti/zero_code/i2c/i2cc_write/i2cc_write", {}, false);
    const i2cc_write1 = i2cc_write.addInstance();
    const conditional_repeat_block = scripting.addModule("/ti/zero_code/loops/conditional_repeat_block/conditional_repeat_block", {}, false);
    const conditional_repeat_block1 = conditional_repeat_block.addInstance();
    const repeat_block = scripting.addModule("/ti/zero_code/loops/repeat_block/repeat_block", {}, false);
    const repeat_block1 = repeat_block.addInstance();
    const delay = scripting.addModule("/ti/zero_code/misc/delay/delay", {}, false);
    const delay1 = delay.addInstance();
    const delay2 = delay.addInstance();
    const delay3 = delay.addInstance();
    const delay4 = delay.addInstance();
    const uart_write = scripting.addModule("/ti/zero_code/uart/uart_write/uart_write", {}, false);
    const uart_write1 = uart_write.addInstance();

    /**
    * Write custom configuration values to the imported modules.
    */
    const ProjectConfig = scripting.addModule("/ti/project_config/ProjectConfig", {}, false);
    ProjectConfig.migrationCondition = true;

    gpio_write1.$name = "gpio_write_0";

    gpio_write2.$name = "gpio_write_1";
    gpio_write2.writeValue = "set";

    gpio_write3.$name = "gpio_write_2";
    gpio_write3.writeValue = "set";

    gpio_write4.$name = "gpio_write_3";

    const gpio_write_peripheral = scripting.addModule("/ti/zero_code/gpio/gpio_write_peripheral/gpio_write_peripheral", {}, false);
    const gpio_write_peripheral1 = gpio_write_peripheral.addInstance({}, false);
    gpio_write_peripheral1.$name = "gpio_write_config_0";
    gpio_write1.gpio_write_peripheral = gpio_write_peripheral1;
    gpio_write2.gpio_write_peripheral = gpio_write_peripheral1;
    gpio_write_peripheral1.pin.$assign = "PA22";

    const gpio_write_peripheral2 = gpio_write_peripheral.addInstance({}, false);
    gpio_write_peripheral2.$name = "gpio_write_config_1";
    gpio_write3.gpio_write_peripheral = gpio_write_peripheral2;
    gpio_write4.gpio_write_peripheral = gpio_write_peripheral2;
    gpio_write_peripheral2.pin.$assign = "PA5";

    i2cc_read1.$name = "i2cc_read_0";
    i2cc_read1.targetAddress = 0x3F;
    i2cc_read1.readContentSize = 1;

    i2cc_write1.$name = "i2cc_write_0";
    i2cc_write1.targetAddress = 0x3F;
    i2cc_write1.writeContent = "0x0E,0xC3";

    const i2cc_peripheral = scripting.addModule("/ti/zero_code/i2c/i2cc_peripheral/i2cc_peripheral", {}, false);
    const i2cc_peripheral1 = i2cc_peripheral.addInstance({}, false);
    i2cc_peripheral1.$name = "i2cc_config_0";
    i2cc_write1.associatedI2CController = i2cc_peripheral1;
    i2cc_read1.associatedI2CController = i2cc_peripheral1;
    i2cc_peripheral1.peripheral.sdaPin.$assign = "PA10";
    i2cc_peripheral1.peripheral.sclPin.$assign = "PA11";

    conditional_repeat_block1.$name = "for_loop_0";
    conditional_repeat_block1.count = 3;

    repeat_block1.$name = "repeat_block_0";
    repeat_block1.$size = [515,220];

    delay1.$name = "delay_0";
    delay1.delayAmount = 500;

    delay2.$name = "delay_1";
    delay2.delayAmount = 500;

    delay3.$name = "delay_2";
    delay3.delayAmount = 500;

    delay4.$name = "delay_3";
    delay4.delayAmount = 500;

    uart_write1.$name = "uart_write_0";

    const uart_write_peripheral = scripting.addModule("/ti/zero_code/uart/uart_write_peripheral/uart_write_peripheral", {}, false);
    const uart_write_peripheral1 = uart_write_peripheral.addInstance({}, false);
    uart_write_peripheral1.$name = "uart_write_config_0";
    uart_write1.associatedUARTWrite = uart_write_peripheral1;
    uart_write_peripheral1.peripheral.txPin.$assign = "PA8";

    /**
    * References between modules
    */
    conditional_repeat_block1.$groupContents0 = [gpio_write3, gpio_write4, delay3, delay4];
    repeat_block1.$groupContents0 = [gpio_write1, delay1, gpio_write2, delay2];

    /**
    * Connections between modules
    */
    scripting.connect(gpio_write1, "out", delay1, "in");
    scripting.connect(gpio_write2, "out", repeat_block1, "insideInput");
    scripting.connect(gpio_write3, "out", delay3, "in");
    scripting.connect(gpio_write4, "out", delay4, "in");
    scripting.connect(i2cc_read1, "out", uart_write1, "in");
    scripting.connect(i2cc_read1, "data_out", uart_write1, "data_in");
    scripting.connect(i2cc_write1, "out", i2cc_read1, "in");
    scripting.connect(conditional_repeat_block1, "out", repeat_block1, "in");
    scripting.connect(conditional_repeat_block1, "insideOutput", gpio_write3, "in");
    scripting.connect(repeat_block1, "insideOutput", delay2, "in");
    scripting.connect(delay1, "out", gpio_write2, "in");
    scripting.connect(delay2, "out", gpio_write1, "in");
    scripting.connect(delay3, "out", gpio_write4, "in");
    scripting.connect(delay4, "out", conditional_repeat_block1, "insideInput");
    scripting.connect(uart_write1, "out", conditional_repeat_block1, "in");

    /**
    * (x,y) coordinates for modules that are displayed in a graph
    */
    gpio_write1.$position = [175,50];
    gpio_write2.$position = [405,60];
    gpio_write3.$position = [70,105];
    gpio_write4.$position = [295,105];
    i2cc_read1.$position = [-325,110];
    i2cc_write1.$position = [-445,110];
    conditional_repeat_block1.$position = [-90,285];
    repeat_block1.$position = [495,60];
    delay1.$position = [300,50];
    delay2.$position = [60,40];
    delay3.$position = [180,105];
    delay4.$position = [400,95];
    uart_write1.$position = [-205,110];

    /**
    * Pinmux solution for unlocked pins/peripherals. This ensures that minor changes to the automatic solver in a future
    * version of the tool will not impact the pinmux you originally saw. These lines can be completely deleted in order to
    * re-solve from scratch.
    */
    i2cc_peripheral1.peripheral.$suggestSolution = "I2C0";
    uart_write_peripheral1.peripheral.$suggestSolution = "UART1";

  • Hello Ivan,

    The current version on ti.com is the latest version. Re-installing is a method that customer can try. 

    What does the "saving functionality issue" mean?

    Best Regards,

    Janz Bai

  • It means that program is not saving current project state. It saves old project. 

    Example: I open File1.syscfg. Add one extra block to project. Save file to File2.syscfg. Check that files are identical (no changes).

  • Hello,

    I have tested on my side using the latest Zero Code Studio downloading from ti.com. I can't find this issue. Please try to download the latest version from ti.com and try it again.

    MSP-ZERO-CODE-STUDIO GUI for evaluation module (EVM) | TI.com

    Best Regards,

    Janz Bai