...
Generic functions read and write the API-DLL’s configuration, access status messages and can instruct the FPA to power or reset the target device. The functions described in this section require that each FPA already be opened using Multi API-DLL Functions | F_OpenInstancesAndFPAs.
After the following functions have been used to configure each FPA correctly for its target device, use Data Buffer Functions to determine what code should be written during programming. Finally, Encapsulated Functions can perform the process of programming, writing, erasing, verifying, etc., according to the aforementioned settings.
Table of Contents | ||||
---|---|---|---|---|
|
1. F_Initialization
Anchor | ||||
---|---|---|---|---|
|
General Description
Initialize FPA after it has been successfully opened using Multi API-DLL Functions | F_OpenInstancesAndFPAs. F_Initialization performs the following tasks:
...
Select which FPA to initialize, using the function Multi API-DLL Functions | F_Set_FPA_index with desired parameter (0-all, 1-64 for individual FPA). After successful initialization, call Generic Functions | F_ConfigFileLoad to read settings from file, or configure settings manually using the function Generic Functions | F_Set_Config_Value_By_Name.
For backwards compatibility, F_nitialization Initialization will call F_OpenInstancesAndFPAs(*# *) if no instances are currently opened, and perform initialization on FPA 1. If Multi API-DLL Functions | F_OpenInstancesAndFPAs was already invoked successfully then initialization is performed on the selected FPA index from the function Multi API-DLL Functions | F_Set_FPA_index.
Default config file used to perform initialization is config.ini (Use F_Use_Config_INI(FALSE) to disable automatic load of config.ini).
...
Select FPA to perform operation on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64. Use index 0 to perform operation on all FPAs (if results differ, use Multi API-DLL Functions | F_LastStatus to get individual results).
...
FALSE (0) : failed
TRUE (1) : succeeded
4 : Programming adapter not detected
FPA_UNMATCHED_RESULTS (-1 or 0xFFFFFFFF) : Result of operation inconsistent across all selected FPAs, refer to Multi API-DLL Functions | F_LastStatus
FPA_INVALID_NO (-2 or 0xFFFFFFFE) : FPA not opened with Multi API-DLL Functions | F_OpenInstancesAndFPAs or index out of range
2. F_Use_Config_INI
General Description
Configure Generic Functions | F_Initialization to use (default) or skip config.ini file. When skipping config.ini it is necessary to use Generic Functions | F_ConfigFileLoad or Generic Functions | F_Set_Config_Value_By_Name functions to configure the adapter.
...
Select FPA to perform operation on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64. Use index 0 to perform operation on all FPAs (if results differ, use Multi API-DLL Functions | F_LastStatus to get individual results).
...
FALSE (0) : failed
TRUE (1) : succeeded
FPA_UNMATCHED_RESULTS (-1 or 0xFFFFFFFF) : Result of operation inconsistent across all selected FPAs, refer to Multi API-DLL Functions | F_LastStatus
FPA_INVALID_NO (-2 or 0xFFFFFFFE) : FPA not opened with Multi API-DLL Functions | F_OpenInstancesAndFPAs or index out of range
3. F_Get_Config_Name_List
Anchor | ||||
---|---|---|---|---|
|
General Description
Iterate over configuration parameter names, starting from index 0. Increase index until return is null character. Will return a pointer to a character array with name of parameter or null character once index is too high.
Requires the target FPA to be opened using Multi API-DLL Functions | F_OpenInstancesAndFPAs and initialized using Generic Functions | F_Initialization.
Syntax
Code Block | ||
---|---|---|
| ||
char * F_Get_Config_Name_List( INT_X index ); |
...
Select FPA to perform operation on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64.
Output
char * : configuration parameter name
...
Access the current FPA’s configuration. Use Generic Functions | F_Get_Config_Name_List to get configuration parameter names, then use them as input to this function. Select input type to validate name, and get current, minimum, maximum, and default values.
Because normal return values from this function can be any value, from 0 to 0xFFFFFFFF, it is important to pick a correct fpa index (use Multi API-DLL Functions | F_Check_FPA_index to validate) and validate the configuration parameter name first (using CONFSEL_VALIDATE), before retrieving the current, minimum, maximum or default values. Unless all FPAs are to be configured identically, avoid using FPA index 0 to prevent confusion in results (when results don’t match using FPA index 0 (all FPAs) the result is simply FPA_UNMATCHED_RESULTS (-1)).
Requires the target FPA to be opened using Multi API-DLL Functions | F_OpenInstancesAndFPAs and initialized using Generic Functions | F_Initialization.
Syntax
Code Block |
---|
unsigned int F_Get_Config_Value_By_Name(char *name, INT_X type); |
...
Select FPA to perform operation on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64. Use index 0 to perform operation on all FPAs (if results differ, use Multi API-DLL Functions | F_LastStatus to get individual results).
...
FALSE (0) : failed name validation (CONFSEL_VALIDATE)
TRUE (1) : successful name validation (CONFSEL_VALIDATE)
any : actual parameter value, minimum and maximum bounds, and default value if not set by user/file (CONFSEL_VALUE, CONFSEL_MIN, CONFSEL_MAX, CONFSEL_DEFAULT)
-1 or 0xFFFFFFFF : name not found (avoid this by using CONFSEL_VALIDATE first)
FPA_UNMATCHED_RESULTS (-1 or 0xFFFFFFFF) : Result of operation inconsistent across all selected FPAs, refer to Multi API-DLL Functions | F LastStatus(avoid this by not using FPA index 0)_LastStatus
FPA_INVALID_NO (-2 or 0xFFFFFFFE) : FPA not opened with Multi API-DLL Functions | F_OpenInstancesAndFPAs or index out of range(avoid this by using F Check FPA index first)
Example
...
Example
Use the example code below to read full configuration:
Code Block | ||
---|---|---|
| ||
//#define CONFSEL_VALIDATE 0 //#define CONFSEL_VALUE 1 //#define CONFSEL_MIN 2 //#define CONFSEL_MAX 3 //#define CONFSEL_DEFAULT 4 stringstream msg; char *tmp=NULL; int i=0; while((tmp = F_Get_Config_Name_List(i++)) != NULL && strcmp(tmp, "\0") != 0) { //Check if parameter name is correct, should be redundant if(F_Get_Config_Value_By_Name(tmp, 0)) { unsigned int val = F_Get_Config_Value_By_Name(tmp, 1); unsigned int min = F_Get_Config_Value_By_Name(tmp, 2); unsigned int max = F_Get_Config_Value_By_Name(tmp, 3); unsigned int def = F_Get_Config_Value_By_Name(tmp, 4); msg << tmp << "=0x" << hex << val << ", 0x" << hex << min << "<=X<=0x" << hex << max << "(def=0x" << hex << def << ")\r\n"; //sanity check on current value if(val < min || val > max) { msg << "======= " << tmp << " value outside min/max =======\r\n"; msg << "DLL failed to trim\r\n"; } //sanity check on default value if(def < min || def > max) { msg << "======= " << tmp << " default outside min/max =======\r\n"; msg << "Param default OUT OF RANGE\r\n"; } } else { msg << "config parameter name invalid " << tmp << "\r\n"; } } |
5. F_Set_Config_Value_By_Name
Anchor | ||||
---|---|---|---|---|
|
General Description
Set the current FPA’s configuration. Use Generic Functions | F_Get_Config_Name_List to get configuration parameter names, then use them as input to this function. New value for configuration parameter will be trimmed by minimum and maximum values allowed for this parameter. If not initialized, this parameter will have a default value. Double check parameters after configuration using F_Get_Config_Value_By_Name.
Requires the target FPA to be opened using Multi API-DLL Functions | F_OpenInstancesAndFPAs and initialized using Generic Functions | F_Initialization.
Syntax
Code Block | ||
---|---|---|
| ||
INT_X F_Set_Config_Value_By_Name(char *name, unsigned int newValue); |
...
Select FPA to perform operation on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64. Use index 0 to perform operation on all FPAs (if results differ, use Multi API-DLL Functions | F_LastStatus to get individual results).
...
FALSE (0) : parameter name not found
TRUE (1) : name found and parameter value changed
FPA_UNMATCHED_RESULTS (-1 or 0xFFFFFFFF) : Result of operation inconsistent across all selected FPAs, refer to Multi API-DLL Functions | F_LastStatus
FPA_INVALID_NO (-2 or 0xFFFFFFFE) : FPA not opened with Multi API-DLL Functions | F_OpenInstancesAndFPAs or index out of range
6. F_Get_Device_Info
...
Select FPA to perform operation on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64.
Output
INT_X : value dependent on input parameter
any : based on input parameter
-1 (0xFFFFFFFF) : invalid input parameter
FPA_INVALIDUNMATCHED_NO RESULTS (-2 1 or 0xFFFFFFFE0xFFFFFFFF) : FPA not opened with F_OpenInstancesAndFPAs or index out of rangeResult of operation inconsistent across all selected FPAs, refer to Multi API-DLL Functions | F_LastStatus
FPA_INVALID_NO (-2 or 0xFFFFFFFE) : FPA not opened with Multi API-DLL Functions | F_OpenInstancesAndFPAs or index out of range
Example
Insert excerpt | ||||
---|---|---|---|---|
|
7. F_Set_MCU_Name
General Description
...
Select FPA to perform operation on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64. Use index 0 to perform operation on all FPAs (if results differ, use Multi API-DLL Functions | F_LastStatus to get individual results).
...
microcontroller index if input name was found and set, index is greater than or equal to zero (0)
-1 (0xFFFFFFFF) : name not found (avoid by getting list of proper names using F_Get_MCU_Name_list)
FPA_UNMATCHED_RESULTS (-1 or 0xFFFFFFFF) : Result of operation inconsistent across all selected FPAs, refer to Multi API-DLL Functions | F_LastStatus
FPA_INVALID_NO (-2 or 0xFFFFFFFE) : FPA not opened with Multi API-DLL Functions | F_OpenInstancesAndFPAs or index out of range
8. F_Search_MCU_Name
...
Select FPA to perform operation on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64.
Output
void * : pointer to results
...
Code Block | ||
---|---|---|
| ||
void MSPPRG_API F_Reset_Config(); |
Input
none.
Output
none.
...
Select FPA to perform operation on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64. Use index 0 to perform operation on all FPAs (if results differ, use Multi API-DLL Functions | F_LastStatus to get individual results).
Output
none.
10. F_Get_MCU_Name_list
General Description
...
Select FPA to perform operation on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64.
Output
char * : Name of vendor, family, group, or MCU for the given index.
valid name : if correct parameters provided
”” : incorrect FPA index provided (avoid using F_Check_FPA index)
Example
Refer to F_Set_MCU_Family_Group.
...
Select FPA to perform operation on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64. Use index 0 to perform operation on all FPAs (if results differ, use Multi API-DLL Functions | F_LastStatus to get individual results).
...
FALSE (0) : index parameter out of range
TRUE (1) : index parameter set correctly
FPA_UNMATCHED_RESULTS (-1 or 0xFFFFFFFF) : Result of operation inconsistent across all selected FPAs, refer to Multi API-DLL Functions | F_LastStatus
FPA_INVALID_NO (-2 or 0xFFFFFFFE) : FPA not opened with Multi API-DLL Functions | F_OpenInstancesAndFPAs or index out of range
Example
Code Block | ||
---|---|---|
| ||
//C++ and C# are available in the installation package
//that implement this code
//Example from demo included in installation package
//Select one FPA index to perform this sequence on.
//If all FPA are the same then iterating over other FPA indices is not necessary.
//Iterate over supported vendors, then select vendor zero in this case
//Pull-down menu in demo allows user to change selected vendor index
void ProgDemoDlg::Init_MCU_Vendor_ComboBox( void )
{
int k;
char *name;
SelMCU_Vendor->ResetContent();//Reset list of vendors
k = 0;
Vendor_list_size = 0;
do
{
//----------------------------------------------------
name = F_Get_MCU_Name_list( MCU_VENDOR_LIST, k );//get name of vendor at index k
if( strlen( name ) == 0 ) break; //reached end of list of vendors
//----------------------------------------------------
if(SelMCU_Vendor)
{
//----------------------------------------------------
SelMCU_Vendor->AddString( name ); //add newly acquired vendor name to GUI list
//----------------------------------------------------
Vendor_list_size++;
}
k++;
}while(1);
//Select vendor zero in demo GUI (will not affect DLL yet)
SelMCU_Vendor->SetCurSel(0);
//Select chosen vendor and read supported MCU families
OnCbnSelchangeMcuVendor();
}
//Initialize list of supported families for selected vendor
void ProgDemoDlg::OnCbnSelchangeMcuVendor( void )
{
Vendor_list_index = SelMCU_Vendor->GetCurSel();
//----------------------------------------------------
//Set vendor to selected index (during initialization this is usually zero)
F_Set_MCU_Family_Group( MCU_VENDOR_LIST, Vendor_list_index );
//----------------------------------------------------
Init_MCU_Family_ComboBox();
}
//Iterate over supported families for selected vendor, then select family zero in this case
//Pull-down menu in demo allows user to change selected family index
void ProgDemoDlg::Init_MCU_Family_ComboBox( void )
{
int k;
char *name;
SelMCU_Family->ResetContent();
k = 0;
Family_list_size = 0;
do
{
//----------------------------------------------------
name = F_Get_MCU_Name_list( MCU_FAMILY_LIST, k ); //get name of family at index k
if( strlen( name ) == 0 ) break; //reached end of list of families
//----------------------------------------------------
if(SelMCU_Family)
{
//----------------------------------------------------
SelMCU_Family->AddString( name ); //add newly acquired family name to GUI list
//----------------------------------------------------
Family_list_size++;
}
k++;
}while(1);
//Select family zero in demo GUI (will not affect DLL yet)
SelMCU_Family->SetCurSel(0);
//Select chosen family and read supported MCU groups
OnCbnSelchangeMcuFamily();
}
//Initialize list of supported groups for selected family
void ProgDemoDlg::OnCbnSelchangeMcuFamily( void )
{
Family_list_index = SelMCU_Family->GetCurSel();
//----------------------------------------------------
//Set family to selected index (during initialization this is usually zero)
F_Set_MCU_Family_Group( MCU_FAMILY_LIST, Family_list_index );
//----------------------------------------------------
Init_MCU_Group_ComboBox();
}
//Iterate over supported groups for selected family, then select group zero in this case
//Pull-down menu in demo allows user to change selected group index
void ProgDemoDlg::Init_MCU_Group_ComboBox( void )
{
int k;
char *name;
SelMCU_Group->ResetContent();
MCU_Group_list_size = 0;
k = 0;
do
{
//----------------------------------------------------
name = F_Get_MCU_Name_list( MCU_GROUP_LIST, k ); //get name of group at index k
if( strlen( name ) == 0 ) break; //reached end of list of groups
//----------------------------------------------------
if(SelMCU_Group)
{
//----------------------------------------------------
SelMCU_Group->AddString( name ); //add newly acquired group name to GUI list
//----------------------------------------------------
MCU_Group_list_size++;
}
k++;
}while(1);
//Select group zero in demo GUI (will not affect DLL yet)
SelMCU_Group->SetCurSel(0);
//Select chosen group and read supported MCUs
OnCbnSelchangeMcuGroup();
}
//Initialize list of supported MCUs for selected group
void ProgDemoDlg::OnCbnSelchangeMcuGroup( void )
{
MCU_Group_list_index = SelMCU_Group->GetCurSel();
//----------------------------------------------------
//Set group to selected index (during initialization this is usually zero)
F_Set_MCU_Family_Group( MCU_GROUP_LIST, MCU_Group_list_index );
//----------------------------------------------------
Init_MCU_List_ComboBox();
}
//Iterate over supported MCUs for selected group, then select MCU zero in this case
//Pull-down menu in demo allows user to change selected MCU index
void ProgDemoDlg::Init_MCU_List_ComboBox( void )
{
int k;
char *name;
SelMCU_List->ResetContent();
MCU_Name_list_size = 0;
k = 0;
do
{
//----------------------------------------------------
name = F_Get_MCU_Name_list( MCU_NAME_LIST, k ); //get name of MCU at index k
if( strlen( name ) == 0 ) break; //reached end of list of MCUs
//----------------------------------------------------
if(SelMCU_List)
{
//----------------------------------------------------
SelMCU_List->AddString( name ); //add newly acquired MCU name to GUI list
//----------------------------------------------------
MCU_Name_list_size++;
}
k++;
}while(1);
//Select MCU zero in demo GUI (will not affect DLL yet)
SelMCU_List->SetCurSel(0);
} |
12. F_ReportMessage, F_Report_Message
General Description
Get the last report message from the programmer. When any of the DLL functions are called, an output message is usually created. The GUI uses these messages to print to the dialog box. The user application can use these messages to populate its own dialog box. The last report message can be read by user application using these functions.
When these functions are called, then a report message of up to REPORT_MESSAGE_MAX_SIZE characters is copied to the character array passed as input parameter, or in the case of the latter function, a pointer to a statically allocated character array is returned with the output message text.
Calling F_ReportMessage clears the message buffer. If F_ReportMessage is not called, then the report message will collect all reported information up to REPORT MESSAGE MAX SIZE most recent characters.
Syntax
Code Block | ||
---|---|---|
| ||
void F_ReportMessage( char * text );
char* F_Report_Message( void ); |
Input
char * text : F_ReportMessage, allocated text buffer of up to REPORT_MESSAGE_MAX_SIZE (2000) characters.
Select FPA to perform operation on using F_Set_FPA_index, index 1 to 64.
Output
char * : F_Report_Message, pointer to statically allocated character array containing output message text
13. F_GetReportMessageChar
General Description
Get one character from the report message buffer.
Syntax
Code Block | ||
---|---|---|
| ||
char F_GetReportMessageChar( INT_X index ); |
Input
INT_X index : character index, starting from 0 to REPORT_MESSAGE_MAX_SIZE - 1.
Select FPA to perform operation on using F_Set_FPA_index, index 1 to 64.
Output
char : character from report message buffer.
14. F_DLLTypeVer
General Description
Get information about DLL software type and version. This function returns integer number with DLL ID and software revision version and copies a text message to the report message buffer about DLL ID and software revision. Text content can als0 be read using F_ReportMessage, F_Report_Message, or F_GetReportMessageChar functions.
Syntax
Code Block | ||
---|---|---|
| ||
INT_X F_DLLTypeVer( void ); |
Input
none.
Select FPA to perform operation on using F_Set_FPA_index, index 1 to 64.
Output
INT X : (DLL ID) | (0x0FFF & Version)
Code Block | ||
---|---|---|
| ||
// return Type + Version
// Type 0x1000 - Single FlashPro430 - Parallel Port type
// 0x2000 - Single FlashPro430 - USB type
// 0x3000 - Single GangPro430 - USB type
// 0x4000 - Single FlashPro-CC - USB type
// 0x5000 - Single GangPro-CC - USB type
// 0xA000 - Single FlashPro2000- USB type
// 0xB000 - Single GangPro2000 - USB type
// 0xE000 - Single FlashPro-ARM - USB type
// 0xF000 - Single GangPro-ARM - USB type
// Version = 0x0FFF & version |
...
FPA_INVALID_NO (-2 or 0xFFFFFFFE) : FPA not opened with F_OpenInstancesAndFPAs or index out of range
15. F_ConfigFileLoad
General Description
Modify programmer’s configuration according to data taken from specified configuration file. This setup will override previous values and leave omitted parameters untouched. When loaded for the first time, unspecified configuration parameters take on default values as given by F_Get_Config_Value_By_Name. When calling this function multiple times with different configuration files, make sure to specify all relevant configuration parameters.
A configuration file can be created using the FlashPro-ARM/GangPro-ARM GUI software, or use the functions F_Get_Config_Name_List, F_Get_Config_Value_By_Name to extract a list of configuration names and values. The F_Set_Config_Value_By_Name function can be used to set configuration parameters instead of F_ConfigFileLoad.
...
Insert excerpt | ||||
---|---|---|---|---|
|
12. F_ReportMessage, F_Report_Message
Anchor | ||||
---|---|---|---|---|
|
General Description
Get the last report message from the programmer. When any of the DLL functions are called, an output message is usually created. The GUI uses these messages to print to the dialog box. The user application can use these messages to populate its own dialog box. The last report message can be read by user application using these functions.
When these functions are called, then a report message of up to REPORT_MESSAGE_MAX_SIZE characters is copied to the character array passed as input parameter, or in the case of the latter function, a pointer to a statically allocated character array is returned with the output message text.
Calling F_ReportMessage clears the message buffer. If F_ReportMessage is not called, then the report message will collect all reported information up to REPORT MESSAGE MAX SIZE most recent characters.
Syntax
Code Block | ||
---|---|---|
| ||
void F_ReportMessage( char * text );
char* F_Report_Message( void ); |
Input
char * text : F_ReportMessage, allocated text buffer of up to REPORT_MESSAGE_MAX_SIZE (2000) characters.
Select FPA to perform operation on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64.
Output
char * : F_Report_Message, pointer to statically allocated character array containing output message text
13. F_GetReportMessageChar
General Description
Get one character from the report message buffer.
Syntax
Code Block | ||
---|---|---|
| ||
char F_GetReportMessageChar( INT_X index ); |
Input
INT_X index : character index, starting from 0 to REPORT_MESSAGE_MAX_SIZE - 1.
Select FPA to perform operation on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64.
Output
char : character from report message buffer.
14. F_DLLTypeVer
General Description
Get information about DLL software type and version. This function returns integer number with DLL ID and software revision version and copies a text message to the report message buffer about DLL ID and software revision. Text content can als0 be read using F_ReportMessage, F_Report_Message, or F_GetReportMessageChar functions.
Syntax
Code Block | ||
---|---|---|
| ||
INT_X F_DLLTypeVer( void ); |
Input
none.
Select FPA to perform operation on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64.
Output
INT X : (DLL ID) | (0x0FFF & Version)
Code Block language cpp // return Type + Version // Type 0x1000 - Single FlashPro430 - Parallel Port type // 0x2000 - Single FlashPro430 - USB type // 0x3000 - Single GangPro430 - USB type // 0x4000 - Single FlashPro-CC - USB type // 0x5000 - Single GangPro-CC - USB type // 0xA000 - Single FlashPro2000- USB type // 0xB000 - Single GangPro2000 - USB type // 0xE000 - Single FlashPro-ARM - USB type // 0xF000 - Single GangPro-ARM - USB type // Version = 0x0FFF & version
FPA_INVALID_NO (-2 or 0xFFFFFFFE) : FPA not opened with Multi API-DLL Functions | F_OpenInstancesAndFPAs or index out of range
15. F_ConfigFileLoad
Anchor | ||||
---|---|---|---|---|
|
General Description
Modify programmer’s configuration according to data taken from specified configuration file. This setup will override previous values and leave omitted parameters untouched. When loaded for the first time, unspecified configuration parameters take on default values as given by Generic Functions | F_Get_Config_Value_By_Name. When calling this function multiple times with different configuration files, make sure to specify all relevant configuration parameters.
A configuration file can be created using the FlashPro-ARM/GangPro-ARM GUI software, or use the functions Generic Functions | F_Get_Config_Name_List, Generic Functions | F_Get_Config_Value_By_Name to extract a list of configuration names and values. The Generic Functions | F_Set_Config_Value_By_Name function can be used to set configuration parameters instead of Generic Functions | F_ConfigFileLoad.
Requires the target FPA to be opened using Multi API-DLL Functions | F_OpenInstancesAndFPAs and initialized using Generic Functions | F_Initialization.
Syntax
Code Block | ||
---|---|---|
| ||
INT_X F_ConfigFileLoad( char * filename ); |
Input
char * filename : path to configuration file including filename and extension
Select FPA to perform operation on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64. Use index 0 to perform operation on all FPAs (if results differ, use Multi API-DLL Functions | F_LastStatus to get individual results).
Output
INT X : result of operation
FALSE (0) : failed
TRUE (1) : succeeded
STATUS_OPEN_FILE_ERROR (535) : could not open file
STATUS_CORRUPT_CONFIG_ERROR (554) : malformed configuration file (missing header, etc.)
FPA_UNMATCHED_RESULTS (-1 or 0xFFFFFFFF) : Result of operation inconsistent across all selected FPAs, refer to Multi API-DLL Functions | F_LastStatus
FPA_INVALID_NO (-2 or 0xFFFFFFFE) : FPA not opened with Multi API-DLL Functions | F_OpenInstancesAndFPAs or index out of range
16. F_Power_Target
General Description
Enable power from FPA to target device. For this function to have its desired effect, configuration settings “PowerFromFpaEn” must be set to 1. If “PowerFromFpaEn” is set to 0, then power from FPA is always off regardless of this function’s input parameter.
Syntax
Code Block |
---|
INT X F_Power_Target( INT X OnOff ); |
Input
INT X : power setting
FALSE (0) : power off
TRUE (1) : power on
Select FPA to perform operation on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64. Use index 0 to perform operation on all FPAs (if results differ, use Multi API-DLL Functions | F_LastStatus to get individual results).
Output
INT_X : result of operation
FALSE (0) : failed
TRUE (1) : succeeded
FPA_UNMATCHED_RESULTS (-1 or 0xFFFFFFFF) : Result of operation inconsistent across all selected FPAs, refer to Multi API-DLL Functions | F_LastStatus
FPA_INVALID_NO (-2 or 0xFFFFFFFE) : FPA not opened with Multi API-DLL Functions | F_OpenInstancesAndFPAs or index out of range
17. F_Reset_Target
General Description
Generate short reset pulse on target device’s reset line. The length of the reset pulse can be selected using configuration options. The “ResetTimeIndex” is used to select pre-set times, or for custom setup select the last index and specify “ResetPulseTime”, and “ResetIdleTime”.
Syntax
Code Block | ||
---|---|---|
| ||
INT_X F_Reset_Target( void ); |
Input
none.
Select FPA to perform operation on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64. Use index 0 to perform operation on all FPAs (if results differ, use Multi API-DLL Functions | F_LastStatus to get individual results).
Output
INT_X : result of operation
FALSE (0) : failed
TRUE (1) : succeeded
FPA_UNMATCHED_RESULTS (-1 or 0xFFFFFFFF) : Result of operation inconsistent across all selected FPAs, refer to Multi API-DLL Functions | F_LastStatus
FPA_INVALID_NO (-2 or 0xFFFFFFFE) : FPA not opened with Multi API-DLL Functions | F_OpenInstancesAndFPAs or index out of range
18. F_Get_Targets_Vcc
General Description
Get Vcc in millivolts as read from target device.
This function is supported on all adapters (USB-FPA 6.1, XStream-Iso, and XStreamPro-Iso).
Syntax
Code Block | ||
---|---|---|
| ||
INT_X F_Get_Targets_Vcc( void ); |
Input
none.
Select FPA to perform operation on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64. Use index 0 to perform operation on all FPAs (if results differ, use Multi API-DLL Functions | F_LastStatus to get individual results).
Output
INT_X : returns target voltage in millivolts
value of zero or greater : voltage in millivolts
FPA_UNMATCHED_RESULTS (-1 or 0xFFFFFFFF) : Result of operation inconsistent across all selected FPAs, refer to Multi API-DLL Functions | F_LastStatus
FPA_INVALID_NO (-2 or 0xFFFFFFFE) : FPA not opened with Multi API-DLL Functions | F_OpenInstancesAndFPAs or index out of range
19. F_Get_Power_Results
Anchor | ||||
---|---|---|---|---|
|
General Description
Read detailed Voltage and Current measurement results based on General Configuration | Power Monitor. This function will query the adapter for the latest measurement sample and copy those results into the xs_adc structure.
This function is supported only on XStream-Iso, and XStreamPro-Iso adapters. The USB-FPA 6.1 adapter will return FALSE.
Syntax
Code Block | ||
---|---|---|
| ||
INT_X F_Get_Power_Results(double *xs_adc); |
Input
double *xs_adc : pointer to instance of XS_ADC and doubles array, i.e.
Code Block | ||
---|---|---|
| ||
XS_ADC xs_adc;
F_Get_Power_Results(xs_adc.members); |
Code Block | ||
---|---|---|
| ||
union XS_ADC
{
double members[ XS_ADC_NUM_MEMBERS ];
struct
{
double ExtVcc; //actual external Vcc value in V
double Vcc; //actual Vcc from programmer value in V
double Vpp; //actual Vpp for fuse blown from programmer value in V
double ExtVccMin; //external Vcc value in V - min value from the last read up to now
double ExtVccMax; //external Vcc value in V - max value from the last read up to now
double VccMin; //Vcc value in V - min value from the last read up to now
double VccMax; //Vcc value in V - max value from the last read up to now
double Icc_mA; //Icc value in mA - current value
double Icc_mA_av4; //Icc value in mA - average for last 4 read (interval ~ 10ms)
double Icc_mA_av16; //Icc value in mA - average for last 16 read (interval ~ 10ms)
double Icc_mA_min; //Icc value in mA - min value from the last read up to now
double Icc_mA_max; //Icc value in mA - max value from the last read up to now
double Temperature; //Temperature inside XStream in C deg
double Icc_mA_av64; //Icc value in mA - average for alpha 1/64
double Icc_mA_av; //Icc value in mA - average for defined alpha 1/N
} data;
}; |
Select FPA to perform operation on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64.
Output
INT_X : result of operation
FALSE (0) : failed - USB-FPA 6.1 adapter detected
TRUE (1) : succeeded - XStream-Iso, and XStreamPro-Iso adapter detected
FPA_INVALID_NO (-2 or 0xFFFFFFFE) : FPA not opened with Multi API-DLL Functions | F_OpenInstancesAndFPAs or index out of range
Example
Insert excerpt | ||||
---|---|---|---|---|
|
20. F_Get_Last_Power_Results_data
General Description
This function is almost identical to F_Get_Power_Results
except that the adapter is not queried. The value returned is simply the last value saved in memory from the last F_Get_Power_Results
call.
This function is supported only on XStream-Iso, and XStreamPro-Iso adapters. The USB-FPA 6.1 adapter will return FALSE.
Syntax
Code Block | ||
---|---|---|
| ||
INT_X F_Get_Last_Power_Results_data(double *xs_adc); |
Input
double *xs_adc : pointer to instance of XS_ADC and doubles array, i.e.
Code Block | ||
---|---|---|
| ||
XS_ADC xs_adc;
F_Get_Last_Power_Results_data(xs_adc.members);
union XS_ADC
{
double members[ XS_ADC_NUM_MEMBERS ];
struct
{
double ExtVcc; //actual external Vcc value in V
double Vcc; //actual Vcc from programmer value in V
double Vpp; //actual Vpp for fuse blown from programmer value in V
double ExtVccMin; //external Vcc value in V - min value from the last read up to now
double ExtVccMax; //external Vcc value in V - max value from the last read up to now
double VccMin; //Vcc value in V - min value from the last read up to now
double VccMax; //Vcc value in V - max value from the last read up to now
double Icc_mA; //Icc value in mA - current value
double Icc_mA_av4; //Icc value in mA - average for last 4 read (interval ~ 10ms)
double Icc_mA_av16; //Icc value in mA - average for last 16 read (interval ~ 10ms)
double Icc_mA_min; //Icc value in mA - min value from the last read up to now
double Icc_mA_max; //Icc value in mA - max value from the last read up to now
double Temperature; //Temperature inside XStream in C deg
double Icc_mA_av64; //Icc value in mA - average for alpha 1/64
double Icc_mA_av; //Icc value in mA - average for defined alpha 1/N
} data;
}; |
Select FPA to perform operation on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64.
Output
INT_X : result of operation
FALSE (0) : failed - USB-FPA 6.1 adapter detected
TRUE (1) : succeeded - XStream-Iso, and XStreamPro-Iso adapter detected
FPA_INVALID_NO (-2 or 0xFFFFFFFE) : FPA not opened with Multi API-DLL Functions | F_OpenInstancesAndFPAs or index out of range
Example
21. F_XS_Clr_ADC_av_history
General Description
Clear values accumulated in measurement history. Useful for resetting long running averages.
This function is supported only on XStream-Iso, and XStreamPro-Iso adapters. The USB-FPA 6.1 adapter will return FALSE.
Syntax
Code Block | ||
---|---|---|
| ||
INT_X F_ConfigFileLoad( char * filename _XS_Clr_ADC_av_history(); |
Input
char * filename : path to configuration file including filename and extensionnone.
Select FPA to perform operation on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64. Use index 0 to perform operation on all FPAs (if results differ, use Multi API-DLL Functions | F_LastStatus to get individual results).
Output
INT_X : result of operation
FALSE (0) : failed - USB-FPA 6.1 adapter detected
TRUE (1) : succeeded
STATUS_OPEN_FILE_ERROR (535) : could not open file
STATUS_CORRUPT_CONFIG_ERROR (554) : malformed configuration file (missing header, etc.)- XStream-Iso, and XStreamPro-Iso adapter detected
FPA_UNMATCHED_RESULTS (-1 or 0xFFFFFFFF) : Result of operation inconsistent across all selected FPAs, refer to Multi API-DLL Functions | F_LastStatus
FPA_INVALID_NO (-2 or 0xFFFFFFFE) : FPA not opened with Multi API-DLL Functions | F_OpenInstancesAndFPAs or index out of range
16. F_Power_Target
General Description
Enable power from FPA to target device. For this function to have its desired effect, configuration settings “PowerFromFpaEn” must be set to 1. If “PowerFromFpaEn” is set to 0, then power from FPA is always off regardless of this function’s input parameter.
Syntax
Code Block |
---|
INT X F_Power_Target( INT X OnOff ); |
Input
INT X : power setting
FALSE (0) : power off
TRUE (1) : power on
Select FPA to perform operation on using F_Set_FPA_index, index 1 to 64. Use index 0 to perform operation on all FPAs (if results differ, use F_LastStatus to get individual results).
Output
INT_X : result of operation
FALSE (0) : failed
TRUE (1) : succeeded
FPA_UNMATCHED_RESULTS (-1 or 0xFFFFFFFF) : Result of operation inconsistent across all selected FPAs, refer to F_LastStatus
FPA_INVALID_NO (-2 or 0xFFFFFFFE) : FPA not opened with F_OpenInstancesAndFPAs or index out of range
17. F_Reset_Target
General Description
Generate short reset pulse on target device’s reset line. The length of the reset pulse can be selected using configuration options. The “ResetTimeIndex” is used to select pre-set times, or for custom setup select the last index and specify “ResetPulseTime”, and “ResetIdleTime”.
Syntax
Code Block | ||
---|---|---|
| ||
INT_X F_Reset_Target( void ); |
Input
...
Example
22. F_XS_Update_HW_State
General Description
Set pull-up resistor mode and current measurement sensitivity.
This function is supported only on the XStreamPro-Iso adapter. The USB-FPA 6.1 and XStream-Iso adapter will return FALSE.
Syntax
Code Block | ||
---|---|---|
| ||
INT_X F_XS_Update_HW_State(BYTE mode, INT_X data); |
Input
BYTE mode : set, or clear flag
MODE_XS_IO_SET_FLAGS (0x12) - set flag chosen in data
MODE_XS_IO_CLR_FLAGS (0x13) - clear flag chosen in data
INT_X data : bit-wise OR of bits to affect (set or clear)
IO_PULLUP_EN (1) - change pull-up resistor mode, disable for current measurement
FORCE_ICC_LOW_SENSITIVITY (2) - Low Sensitivity only (20uA - 200mA)
FORCE_ICC_HI_SENSITIVITY (4) - Hi Sensitivity only (50nA - 0.6mA)
NOTE: If FORCE_ICC_LOW_SENSITIVITY and FORCE_ICC_HI_SENSITIVITY flags are cleared then adapter is in Automatic (50nA - 200mA) mode. If both flags are set, adapter will default to Low Sensitivity mode.
Automatic mode is generally preferred, but in automatic mode, around 5 samples will be lost if current fluctuations cause the adapter to switch from Hi-to-Low, or Low-to-Hi mode. If the user is only interested in measuring small currents, then setting to Hi Sensitivity is preferred. In Hi Sensitivity mode samples above 0.6mA will saturate at that value. In Low Sensitivity mode samples below 20uA will be noise.
Select FPA to perform operation on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64. Use index 0 to perform operation on all FPAs (if results differ, use F_LastStatus to get individual results).
Output
INT_X : result of operation
FALSE (0) : failedfailed - USB-FPA 6.1, or XStream-Iso adapter detected
TRUE (1) : succeeded - XStreamPro-Iso adapter detected
FPA_UNMATCHED_RESULTS (-1 or 0xFFFFFFFF) : Result of operation inconsistent across all selected FPAs, refer to Multi API-DLL Functions | F_LastStatus
FPA_INVALID_NO (-2 or 0xFFFFFFFE) : FPA not opened with Multi API-DLL Functions | F_OpenInstancesAndFPAs or index out of range
...
Example
23. F_
...
XS_
...
Current_
...
General Description
...
zeroing
General Description
Calibration function that can be used to improve the results of Current measurement. No targets should be connected to the adapter.
This function is supported only on XStream-Iso, and XStreamPro-Iso adapters. The USB-FPA 6.1 adapter will return FALSE.
Syntax
Code Block | ||
---|---|---|
| ||
INT_X F_GetXS_TargetsCurrent_Vcczeroing( void int state, char *txt ); |
Input
...
int state: calibration steps, from 0 to 100 (inclusive)
char *txt : comment related to currently executing part of zeroing procedure - the same as it is displayed in GUI
Select FPA to perform operation on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64. Use index 0 to perform operation on all FPAs (if results differ, use F_LastStatus to get individual results)index 1 to 64.
Output
INT_X : returns target voltage in millivolts
...
value of zero or greater : voltage in millivolts
...
result of operation
FALSE (0) : failed - USB-FPA 6.1 adapter detected
TRUE (1) : succeeded - XStream-Iso, and XStreamPro-Iso adapter detected
FPA_INVALID_NO (-2 or 0xFFFFFFFE) : FPA not opened with Multi API-DLL Functions | F_OpenInstancesAndFPAs or index out of range
...
Example
Insert excerpt | ||||
---|---|---|---|---|
|
24. F_Set_fpa_io_state
General Description
Set state of the Reset, Vcc and JTAG lines after programming is finished.
...
.
Syntax
Code Block | ||
---|---|---|
| ||
INT_X F_Set_fpa_io_state( BYTE jtag, BYTE reset, BYTE VccOn ); |
Input
BYTE jtag : set JTAG lines (TMS, TCK, TDI)
...
BYTE reset : set reset line
DEFAULT_RESET_LO (0) : reset line set to GND
DEFAULT_RESET_HI (1) : reset line set to Vcc
DEFAULT_RESET_3ST (2) : reset line to tri-state
BYTE VccOn : set Vcc line from adapter
...
Select FPA to perform operation on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64. Use index 0 to perform operation on all FPAs (if results differ, use Multi API-DLL Functions | F_LastStatus to get individual results).
Output
INT_X : result of operation
FALSE (0) : failed
TRUE (1) : succeeded
FPA_UNMATCHED_RESULTS (-1 or 0xFFFFFFFF) : Result of operation inconsistent across all selected FPAs, refer to Multi API-DLL Functions | F_LastStatus
FPA_INVALID_NO (-2 or 0xFFFFFFFE) : FPA not opened with Multi API-DLL Functions | F_OpenInstancesAndFPAs or index out of range
...
25. F_Get_Sector_Size
General Description
Will return the segment/sector size for memory region that contains given address. This function will access the FPA’s meta-data for the target device specified in configuration options. No communication with target device actually takes place.
Syntax
Code Block | ||
---|---|---|
| ||
INT_X F_Get_Sector_Size( INT_X address ); |
Input
INT X address : address contained by segment/sector
...
Select FPA to perform operation on using Multi API-DLL Functions | F_Set_FPA_index, index 1 to 64. Use index 0 to perform operation on all FPAs (if results differ, use Multi API-DLL Functions | F_LastStatus to get individual results).
Output
INT_X : result of operation
FALSE (0) : address out of range
positive number : actual sector size
FPA_UNMATCHED_RESULTS (-1 or 0xFFFFFFFF) : Result of operation inconsistent across all selected FPAs, refer to Multi API-DLL Functions | F_LastStatus
FPA_INVALID_NO (-2 or 0xFFFFFFFE) : FPA not opened with Multi API-DLL Functions | F_OpenInstancesAndFPAs or index out of range