This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Calibration or Configuration Tool for the embedded world

Is there a Calibration or Configuration Tool that allows you to monitor and modify variables in an software program at run time. Basically, if you add a small piece of code to your embedded application such as CAN Calibration Protocol (CCP) or XCP you could monitor and modify the values of variables at run time. This is how the automotive world calibrates their Electronic Control Units. This is very powerful because you don't have to create a customed interface inside the embedded controller for every different application. The customization is done on the PC side from the information generated by the C Compiler. Is there a similar tool for the embedded world aside from the calibration tools for the automotive world.

Parents
  • I think those of you recommending the use of the ICE for the calibration process are missing the point. And I think Leo is not seeing how simple this really can be. Let me describe it as I see it.

    Leo wants a real time capability to enter calibration constants into the product when it is already out in the field in the customer hands.

    The way I usually solve this problem is to add a serial EEPROM like 93C46 to the hardware design to store the calibration constants in. The device software reads the constants out of EEPROM at power up and puts working copies in RAM for quick reference.

    Next I provide a set of interrupt driven UART routines that transfer data to and from circular buffers in RAM.

    Then I add a piece of code as a subroutine, which is coded as a state machine. This is designed to be called periodically from the main program loop. The state machine is designed to poll for data in the UART receive queue and decode command packets. There can be commands to write parameters and
    calibration constants to internal RAM, commands to read them back out and finally a command that can commit the RAM copy of the parameters to storage in the EEPROM for permanent keeping.

    ------------------

    So rather than thinking of your requirement as working same as an ICE, provide the equivalent functionality right in your application. The UART ISR overhead is very small. And the calling of the mainline code to the command parsing state machine only takes about a half of a percent of processor bandwidth when there are no commands arriving from the external computer.

    Mike Karas

    Then I make a small piece of code that acts like a state machine that cab

Reply
  • I think those of you recommending the use of the ICE for the calibration process are missing the point. And I think Leo is not seeing how simple this really can be. Let me describe it as I see it.

    Leo wants a real time capability to enter calibration constants into the product when it is already out in the field in the customer hands.

    The way I usually solve this problem is to add a serial EEPROM like 93C46 to the hardware design to store the calibration constants in. The device software reads the constants out of EEPROM at power up and puts working copies in RAM for quick reference.

    Next I provide a set of interrupt driven UART routines that transfer data to and from circular buffers in RAM.

    Then I add a piece of code as a subroutine, which is coded as a state machine. This is designed to be called periodically from the main program loop. The state machine is designed to poll for data in the UART receive queue and decode command packets. There can be commands to write parameters and
    calibration constants to internal RAM, commands to read them back out and finally a command that can commit the RAM copy of the parameters to storage in the EEPROM for permanent keeping.

    ------------------

    So rather than thinking of your requirement as working same as an ICE, provide the equivalent functionality right in your application. The UART ISR overhead is very small. And the calling of the mainline code to the command parsing state machine only takes about a half of a percent of processor bandwidth when there are no commands arriving from the external computer.

    Mike Karas

    Then I make a small piece of code that acts like a state machine that cab

Children