XMC™ Forum Discussions
text.format{('custom.tabs.no.results')}
Sort by:
XMC™
Hi to all,I have compiled(DAVE 4.3.2) and tested the E_EEPROM sample code(from xmc lib) and blinkyMCAN(from https://www.infineonforums.com/archive/index.php/t-4234.html?...
Show More
Hi to all,
I have compiled(DAVE 4.3.2) and tested the E_EEPROM sample code(from xmc lib) and blinkyMCAN(from https://www.infineonforums.com/archive/index.php/t-4234.html?) sample code separately and it is working fine.
I encounter the problem when I am integrating both of the codes(see error below):
'XMC_SCU_IRQCTRL_7_CAN0_SR3' undeclared (first use in this function) main.c /TempDisplay_with_EEPROM_mcanTry line 313 C/C++ Problem
make: *** [main.o] Error 1 TempDisplay_with_EEPROM_mcanTry C/C++ Problem
recipe for target 'main.o' failed subdir.mk /TempDisplay_with_EEPROM_mcanTry/Debug line 18 C/C++ Problem
unknown field 'clock_sync' specified in initializer main.c /TempDisplay_with_EEPROM_mcanTry line 254 C/C++ Problem
unknown field 'enable_automatic_dco1_calibration' specified in initializer main.c /TempDisplay_with_EEPROM_mcanTry line 254 C/C++ Problem
The merge code with my application code is shown below:
#include
#include "xmc_common.h"
#include "xmc1_flash.h"
/*********************************************************************************************************************
* HEADER FILES
********************************************************************************************************************/
#include "xmc_gpio.h"
#include "xmc_uart.h"
#include
#include
#include "xmc_can.h"
/*********************************************************************************************************************
* MACROS
*********************************************************************************************************************/
#define TICKS_PER_SECOND 1000
#define TICKS_WAIT 500
#define DIS_TICKS 1000
//Input
#define IN1 P4_0
#define IN2 P4_1
#define IN3 P4_2
#define IN4 P4_3
//Output
#define USERlED2 P1_7
#define USERlED1 P1_8
//CAN
#define CAN1_TXD P4_9 //ALT9
#define CAN1_RXD P4_8
#define LED P4_0
#define LED_TX P4_1 //CAN TX indication
#define LED_RX P4_3 //CAN_RX indication
XMC_GPIO_CONFIG_t led_config;
XMC_GPIO_CONFIG_t led_TX_config;
XMC_GPIO_CONFIG_t led_RX_config;
const unsigned char HIGH = 255;
const unsigned char LOW = 0;
/*********************************************************************************************************************
* GLOBAL VARIABLES
*********************************************************************************************************************/
const uint8_t message[] = "Hello world!!";
float degree;
//adc var
float tmax = 100;
float tmin = 0;
float imin = 0.004;
float imax = 0.020;
float currentReading = 0.017;
float val;
char buf[100];
int adc;
float vadc;
//input button
char upFlag = 0;
char downFlag = 0;
char setFlag = 0;
char buttonFlag = 0;
char set_status = 0;
//temp variables
float setValue = 25;
char blink = 0;
float rawSamples = 0;
char numOfSamples = 0;
float tempAverage = 0;
int setTimeOut = 0;
//c variables
unsigned char controlEnable = 0;
//declaration
void test_b3(float _tempVal);
//CAN
/*CAN Bit time*/
XMC_CAN_NODE_NOMINAL_BIT_TIME_CONFIG_t baud = { .can_frequency = 11000000,
.baudrate = 500000, .sample_point = 6000, .sjw = 3, };
/*CAN message= CAN_MO4 */
XMC_CAN_MO_t MCAN_message1 = { .can_mo_ptr = CAN_MO4, .can_priority =
XMC_CAN_ARBITRATION_MODE_IDE_DIR_BASED_PRIO_2, .can_identifier = 0x3ff,
.can_id_mask = 0x7ff, .can_id_mode = XMC_CAN_FRAME_TYPE_STANDARD_11BITS,
.can_ide_mask = 1, .can_data_length = 8, .can_data = { 0x12345555,
0x12345556 }, .can_mo_type = XMC_CAN_MO_TYPE_TRANSMSGOBJ };
/*CAN message= CAN_MO2 */
XMC_CAN_MO_t MCAN_message2 = { .can_mo_ptr = CAN_MO2, .can_priority =
XMC_CAN_ARBITRATION_MODE_IDE_DIR_BASED_PRIO_2, .can_identifier = 0x2ff,
.can_id_mask = 0x2ff, .can_id_mode = XMC_CAN_FRAME_TYPE_STANDARD_11BITS,
.can_ide_mask = 1, .can_data_length = 8, .can_mo_type =
XMC_CAN_MO_TYPE_RECMSGOBJ };
/*********************************************************************************************************************
* SER_DATA STRUCTURES
*********************************************************************************************************************/
/* UART configuration */
XMC_UART_CH_CONFIG_t uart_config = { .baudrate = 19200, .data_bits = 8U,
.frame_length = 8U, .stop_bits = 1U, .parity_mode =
XMC_USIC_CH_PARITY_MODE_NONE };
/* UART Tx and Rx Pins */
XMC_GPIO_CONFIG_t rx_pin_config = { .mode = XMC_GPIO_MODE_INPUT_PULL_UP, };
XMC_GPIO_CONFIG_t tx_pin_config = { .mode = XMC_GPIO_MODE_OUTPUT_PUSH_PULL_ALT7 // Tx output in ALT7
};
/* GPIO LED pin configuration */
XMC_GPIO_CONFIG_t led_pin_config = { .mode = XMC_GPIO_MODE_OUTPUT_PUSH_PULL,
.output_level = 1U };
/*********************************************************************************************************************
* SER_DATA STRUCTURES
*********************************************************************************************************************/
/* GPIO LED pin configuration */
XMC_GPIO_CONFIG_t LED_pin_config_output = { .mode =
XMC_GPIO_MODE_OUTPUT_PUSH_PULL,
//.output_level = 1U
.output_level = XMC_GPIO_OUTPUT_LEVEL_LOW };
XMC_GPIO_CONFIG_t LED_pin_config_input =
{ .mode = XMC_GPIO_MODE_INPUT_TRISTATE };
/*********************************************************************************************************************
* VADC CONFIG
*********************************************************************************************************************/
/* VADC Global resources data configuration. Divider factor for the analog
* internal clock is set => fADCI = 120 MHz / (DIVA+1) */
const XMC_VADC_GLOBAL_CONFIG_t g_global_handle = { .clock_config = {
.analog_clock_divider = 3, }, };
/* VADC group data configuration. No configuration needed, standard values
* are used. */
const XMC_VADC_GROUP_CONFIG_t g_group_handle = { };
/* Data configuration for background source. */
const XMC_VADC_BACKGROUND_CONFIG_t g_bgn_handle = { };
/* Channel data configuration. Channel does NOT use alias feature and uses
* desired result register. */
const XMC_VADC_CHANNEL_CONFIG_t g_g1_ch7_handle = { .alias_channel =
XMC_VADC_CHANNEL_ALIAS_DISABLED, .result_reg_number = 7, };
///
XMC_VADC_RESULT_SIZE_t result = 0;
/*********************************************************************************************************************
* LOCAL ROUTINES
*********************************************************************************************************************/
void SysTick_Handler(void) {
uint32_t index;
static uint32_t ticks = 0;
static uint32_t disTicks = 0;
ticks++;
disTicks++;
if (ticks == TICKS_WAIT) {
XMC_CAN_MO_Transmit(&MCAN_message1);
//get ADC reading
result = XMC_VADC_GROUP_GetResult(VADC_G1, 7);
//convert to temp
adc = result;
vadc = ((adc * 5.0) / 4095);
currentReading = vadc / 248;
val = (tmax - tmin) / (imax - imin);
val = val * (currentReading - imin) + tmin;
rawSamples += val;
numOfSamples++;
if (numOfSamples >= 10) { //get average
val = rawSamples / 10;
numOfSamples = 0;
rawSamples = 0;
tempAverage = val;
}
//===========DISPLAY conditions=============//
if (set_status == 0) { //normal display
test_b3(tempAverage);
} else { //dont update the display when set button is pressed
setTimeOut++;
if (setTimeOut > 40) {//no button press or action go back to normal display
//reset set flags
setTimeOut = 0;
set_status = 0;
setFlag = 0;
println("Set timeout! Last action not saved");
}
}
if (blink == 1) {
blink = 0;
} else {
blink = 1;
}
if (controlEnable == 1) {
}
ticks = 0; //clear ticks
}
}
XMC_SCU_CLOCK_CONFIG_t clock_config = { .dclk_src = XMC_SCU_CLOCK_DCLKSRC_DCO1,
.oschp_mode = XMC_SCU_CLOCK_OSCHP_MODE_OSC,
.enable_automatic_dco1_calibration = true, .clock_sync =
XMC_SCU_CLOCK_SYNC_CLKSRC_OSCHP, //XMC_SCU_CLOCK_SYNC_CLK_OSCLP,
.pclk_src = XMC_SCU_CLOCK_PCLKSRC_DOUBLE_MCLK, .fdiv = 0, //Fractional divider
.idiv = 1 //MCLK = 48MHz
};
uint32_t mode = 0;
Show Less
I have compiled(DAVE 4.3.2) and tested the E_EEPROM sample code(from xmc lib) and blinkyMCAN(from https://www.infineonforums.com/archive/index.php/t-4234.html?) sample code separately and it is working fine.
I encounter the problem when I am integrating both of the codes(see error below):
'XMC_SCU_IRQCTRL_7_CAN0_SR3' undeclared (first use in this function) main.c /TempDisplay_with_EEPROM_mcanTry line 313 C/C++ Problem
make: *** [main.o] Error 1 TempDisplay_with_EEPROM_mcanTry C/C++ Problem
recipe for target 'main.o' failed subdir.mk /TempDisplay_with_EEPROM_mcanTry/Debug line 18 C/C++ Problem
unknown field 'clock_sync' specified in initializer main.c /TempDisplay_with_EEPROM_mcanTry line 254 C/C++ Problem
unknown field 'enable_automatic_dco1_calibration' specified in initializer main.c /TempDisplay_with_EEPROM_mcanTry line 254 C/C++ Problem
The merge code with my application code is shown below:
#include
#include "xmc_common.h"
#include "xmc1_flash.h"
/*********************************************************************************************************************
* HEADER FILES
********************************************************************************************************************/
#include "xmc_gpio.h"
#include "xmc_uart.h"
#include
#include
#include "xmc_can.h"
/*********************************************************************************************************************
* MACROS
*********************************************************************************************************************/
#define TICKS_PER_SECOND 1000
#define TICKS_WAIT 500
#define DIS_TICKS 1000
//Input
#define IN1 P4_0
#define IN2 P4_1
#define IN3 P4_2
#define IN4 P4_3
//Output
#define USERlED2 P1_7
#define USERlED1 P1_8
//CAN
#define CAN1_TXD P4_9 //ALT9
#define CAN1_RXD P4_8
#define LED P4_0
#define LED_TX P4_1 //CAN TX indication
#define LED_RX P4_3 //CAN_RX indication
XMC_GPIO_CONFIG_t led_config;
XMC_GPIO_CONFIG_t led_TX_config;
XMC_GPIO_CONFIG_t led_RX_config;
const unsigned char HIGH = 255;
const unsigned char LOW = 0;
/*********************************************************************************************************************
* GLOBAL VARIABLES
*********************************************************************************************************************/
const uint8_t message[] = "Hello world!!";
float degree;
//adc var
float tmax = 100;
float tmin = 0;
float imin = 0.004;
float imax = 0.020;
float currentReading = 0.017;
float val;
char buf[100];
int adc;
float vadc;
//input button
char upFlag = 0;
char downFlag = 0;
char setFlag = 0;
char buttonFlag = 0;
char set_status = 0;
//temp variables
float setValue = 25;
char blink = 0;
float rawSamples = 0;
char numOfSamples = 0;
float tempAverage = 0;
int setTimeOut = 0;
//c variables
unsigned char controlEnable = 0;
//declaration
void test_b3(float _tempVal);
//CAN
/*CAN Bit time*/
XMC_CAN_NODE_NOMINAL_BIT_TIME_CONFIG_t baud = { .can_frequency = 11000000,
.baudrate = 500000, .sample_point = 6000, .sjw = 3, };
/*CAN message= CAN_MO4 */
XMC_CAN_MO_t MCAN_message1 = { .can_mo_ptr = CAN_MO4, .can_priority =
XMC_CAN_ARBITRATION_MODE_IDE_DIR_BASED_PRIO_2, .can_identifier = 0x3ff,
.can_id_mask = 0x7ff, .can_id_mode = XMC_CAN_FRAME_TYPE_STANDARD_11BITS,
.can_ide_mask = 1, .can_data_length = 8, .can_data = { 0x12345555,
0x12345556 }, .can_mo_type = XMC_CAN_MO_TYPE_TRANSMSGOBJ };
/*CAN message= CAN_MO2 */
XMC_CAN_MO_t MCAN_message2 = { .can_mo_ptr = CAN_MO2, .can_priority =
XMC_CAN_ARBITRATION_MODE_IDE_DIR_BASED_PRIO_2, .can_identifier = 0x2ff,
.can_id_mask = 0x2ff, .can_id_mode = XMC_CAN_FRAME_TYPE_STANDARD_11BITS,
.can_ide_mask = 1, .can_data_length = 8, .can_mo_type =
XMC_CAN_MO_TYPE_RECMSGOBJ };
/*********************************************************************************************************************
* SER_DATA STRUCTURES
*********************************************************************************************************************/
/* UART configuration */
XMC_UART_CH_CONFIG_t uart_config = { .baudrate = 19200, .data_bits = 8U,
.frame_length = 8U, .stop_bits = 1U, .parity_mode =
XMC_USIC_CH_PARITY_MODE_NONE };
/* UART Tx and Rx Pins */
XMC_GPIO_CONFIG_t rx_pin_config = { .mode = XMC_GPIO_MODE_INPUT_PULL_UP, };
XMC_GPIO_CONFIG_t tx_pin_config = { .mode = XMC_GPIO_MODE_OUTPUT_PUSH_PULL_ALT7 // Tx output in ALT7
};
/* GPIO LED pin configuration */
XMC_GPIO_CONFIG_t led_pin_config = { .mode = XMC_GPIO_MODE_OUTPUT_PUSH_PULL,
.output_level = 1U };
/*********************************************************************************************************************
* SER_DATA STRUCTURES
*********************************************************************************************************************/
/* GPIO LED pin configuration */
XMC_GPIO_CONFIG_t LED_pin_config_output = { .mode =
XMC_GPIO_MODE_OUTPUT_PUSH_PULL,
//.output_level = 1U
.output_level = XMC_GPIO_OUTPUT_LEVEL_LOW };
XMC_GPIO_CONFIG_t LED_pin_config_input =
{ .mode = XMC_GPIO_MODE_INPUT_TRISTATE };
/*********************************************************************************************************************
* VADC CONFIG
*********************************************************************************************************************/
/* VADC Global resources data configuration. Divider factor for the analog
* internal clock is set => fADCI = 120 MHz / (DIVA+1) */
const XMC_VADC_GLOBAL_CONFIG_t g_global_handle = { .clock_config = {
.analog_clock_divider = 3, }, };
/* VADC group data configuration. No configuration needed, standard values
* are used. */
const XMC_VADC_GROUP_CONFIG_t g_group_handle = { };
/* Data configuration for background source. */
const XMC_VADC_BACKGROUND_CONFIG_t g_bgn_handle = { };
/* Channel data configuration. Channel does NOT use alias feature and uses
* desired result register. */
const XMC_VADC_CHANNEL_CONFIG_t g_g1_ch7_handle = { .alias_channel =
XMC_VADC_CHANNEL_ALIAS_DISABLED, .result_reg_number = 7, };
///
XMC_VADC_RESULT_SIZE_t result = 0;
/*********************************************************************************************************************
* LOCAL ROUTINES
*********************************************************************************************************************/
void SysTick_Handler(void) {
uint32_t index;
static uint32_t ticks = 0;
static uint32_t disTicks = 0;
ticks++;
disTicks++;
if (ticks == TICKS_WAIT) {
XMC_CAN_MO_Transmit(&MCAN_message1);
//get ADC reading
result = XMC_VADC_GROUP_GetResult(VADC_G1, 7);
//convert to temp
adc = result;
vadc = ((adc * 5.0) / 4095);
currentReading = vadc / 248;
val = (tmax - tmin) / (imax - imin);
val = val * (currentReading - imin) + tmin;
rawSamples += val;
numOfSamples++;
if (numOfSamples >= 10) { //get average
val = rawSamples / 10;
numOfSamples = 0;
rawSamples = 0;
tempAverage = val;
}
//===========DISPLAY conditions=============//
if (set_status == 0) { //normal display
test_b3(tempAverage);
} else { //dont update the display when set button is pressed
setTimeOut++;
if (setTimeOut > 40) {//no button press or action go back to normal display
//reset set flags
setTimeOut = 0;
set_status = 0;
setFlag = 0;
println("Set timeout! Last action not saved");
}
}
if (blink == 1) {
blink = 0;
} else {
blink = 1;
}
if (controlEnable == 1) {
}
ticks = 0; //clear ticks
}
}
XMC_SCU_CLOCK_CONFIG_t clock_config = { .dclk_src = XMC_SCU_CLOCK_DCLKSRC_DCO1,
.oschp_mode = XMC_SCU_CLOCK_OSCHP_MODE_OSC,
.enable_automatic_dco1_calibration = true, .clock_sync =
XMC_SCU_CLOCK_SYNC_CLKSRC_OSCHP, //XMC_SCU_CLOCK_SYNC_CLK_OSCLP,
.pclk_src = XMC_SCU_CLOCK_PCLKSRC_DOUBLE_MCLK, .fdiv = 0, //Fractional divider
.idiv = 1 //MCLK = 48MHz
};
uint32_t mode = 0;
XMC™
Hello,I have got XMC4500 Relax Lite Kit and task to calculate a number of pulses for certain period of time. Say, the frequency around 10MHz due 1mS t...
Show More
Hello,
I have got XMC4500 Relax Lite Kit and task to calculate a number of pulses for certain period of time.
Say, the frequency around 10MHz due 1mS time interval.
I decided to use the CNT001 application in Gating mode.
To form 1mS Gating pulse, I use PWSMP001 application with 900Hz frequency and 90% Duty cicle.
Then I connect it's "Status" output to CNT001->"Gating" internally. IO002 input is connected to "CNT001"->Input respectively.
Additionaly, I have to write fuction to read CNT001 counter.
I apply 10MHz test signal on Input, and get 10000 value after first 1mS pulse.
Surprisingly, after second 1mS pulse I get 20000 value, despite that CNT001_ResetCounter() was used before.
So, I've discovered that CNT001 counter in this mode can not be reset or stopped, then "Gating" is inactive.
It is only possible, then internal "Gating" pulse is active, but that has not got practical sence.
Finally, I just use additional variable to store previous value of CNT001, and calculate difference with current value.
Probably someone can advise a better solution?
BR
K Show Less
I have got XMC4500 Relax Lite Kit and task to calculate a number of pulses for certain period of time.
Say, the frequency around 10MHz due 1mS time interval.
I decided to use the CNT001 application in Gating mode.
To form 1mS Gating pulse, I use PWSMP001 application with 900Hz frequency and 90% Duty cicle.
Then I connect it's "Status" output to CNT001->"Gating" internally. IO002 input is connected to "CNT001"->Input respectively.
Additionaly, I have to write fuction to read CNT001 counter.
I apply 10MHz test signal on Input, and get 10000 value after first 1mS pulse.
Surprisingly, after second 1mS pulse I get 20000 value, despite that CNT001_ResetCounter() was used before.
So, I've discovered that CNT001 counter in this mode can not be reset or stopped, then "Gating" is inactive.
It is only possible, then internal "Gating" pulse is active, but that has not got practical sence.
Finally, I just use additional variable to store previous value of CNT001, and calculate difference with current value.
Probably someone can advise a better solution?
BR
K Show Less
XMC™
the following codes are extrated form LLD driver, which the filed name is "system_XMC1300.c" which guy can tell me why do this operating? Cloc...
Show More
the following codes are extrated form LLD driver, which the filed name is "system_XMC1300.c"
which guy can tell me why do this operating?
Clock = ((uint32_t)ClockVal) * KHZ_MULTIPLIER;
Clock = Clock >> DCO_DCLK_DIVIDER;
void SystemCoreClockUpdate(void)
{
uint32_t IDIV, FDIV, CLKCR, Clock;
CLKCR = SCU_CLK -> CLKCR;
IDIV = (CLKCR & SCU_CLK_CLKCR_IDIV_Msk) >> SCU_CLK_CLKCR_IDIV_Pos;
FDIV = (CLKCR & SCU_CLK_CLKCR_FDIV_Msk) >> SCU_CLK_CLKCR_FDIV_Pos;
if(IDIV)
{
/* Divider is enabled and used */
if(0 == FDIV)
{
/* No fractional divider, so MCLK = DCO_Clk / (2 * IDIV) */
Clock = MCLK_MHZ / IDIV;
}
else
{
/* Both integer and fractional divider must be considered */
/* 1. IDIV + FDIV/256 */
Q_24_8 FDiv_IDiv_Sum = (IDIV << FRACBITS) + FDIV;
/* 2. Fixed point division Q24.8 / Q9.8 = Q15.0 */
Q_15_0 ClockVal = (DCO_DCLK_MULTIPLIER << FRACBITS)/ FDiv_IDiv_Sum;
Clock = ((uint32_t)ClockVal) * KHZ_MULTIPLIER;
Clock = Clock >> DCO_DCLK_DIVIDER;
}
}
else
{
/* Divider bypassed. Simply divide DCO_DCLK by 2 */
Clock = MCLK_MHZ;
}
/* Finally with the math class over, update SystemCoreClock */
SystemCoreClock = Clock;
} Show Less
which guy can tell me why do this operating?
Clock = ((uint32_t)ClockVal) * KHZ_MULTIPLIER;
Clock = Clock >> DCO_DCLK_DIVIDER;
void SystemCoreClockUpdate(void)
{
uint32_t IDIV, FDIV, CLKCR, Clock;
CLKCR = SCU_CLK -> CLKCR;
IDIV = (CLKCR & SCU_CLK_CLKCR_IDIV_Msk) >> SCU_CLK_CLKCR_IDIV_Pos;
FDIV = (CLKCR & SCU_CLK_CLKCR_FDIV_Msk) >> SCU_CLK_CLKCR_FDIV_Pos;
if(IDIV)
{
/* Divider is enabled and used */
if(0 == FDIV)
{
/* No fractional divider, so MCLK = DCO_Clk / (2 * IDIV) */
Clock = MCLK_MHZ / IDIV;
}
else
{
/* Both integer and fractional divider must be considered */
/* 1. IDIV + FDIV/256 */
Q_24_8 FDiv_IDiv_Sum = (IDIV << FRACBITS) + FDIV;
/* 2. Fixed point division Q24.8 / Q9.8 = Q15.0 */
Q_15_0 ClockVal = (DCO_DCLK_MULTIPLIER << FRACBITS)/ FDiv_IDiv_Sum;
Clock = ((uint32_t)ClockVal) * KHZ_MULTIPLIER;
Clock = Clock >> DCO_DCLK_DIVIDER;
}
}
else
{
/* Divider bypassed. Simply divide DCO_DCLK by 2 */
Clock = MCLK_MHZ;
}
/* Finally with the math class over, update SystemCoreClock */
SystemCoreClock = Clock;
} Show Less
XMC™
HI~I have a question with XMC4500 connecting SPI receive data and ETH_LWIPThe LAN(ETH_LWIP) connection is lost while receiving data using the SPI. Wha...
Show More
HI~
I have a question with XMC4500 connecting SPI receive data and ETH_LWIP
The LAN(ETH_LWIP) connection is lost while receiving data using the SPI. What is the way to connect both SPI and LAN(ETH_LWIP) at the same time?
please answer about my question.
Best regards
Chansoo Park Show Less
I have a question with XMC4500 connecting SPI receive data and ETH_LWIP
The LAN(ETH_LWIP) connection is lost while receiving data using the SPI. What is the way to connect both SPI and LAN(ETH_LWIP) at the same time?
please answer about my question.
Best regards
Chansoo Park Show Less
XMC™
HiI'm new to Infineon controller and I try to setup a small program.I like to sample 2 currents at the same time. That should be triggered by a rising...
Show More
Hi
I'm new to Infineon controller and I try to setup a small program.
I like to sample 2 currents at the same time. That should be triggered by a rising or falling trigger of from a CCU8 unit and a compare value.
After conversion of the two currents I need an interrupt for further processing but the adc should also sample 2 input voltages in the mean time when the interrupt is processing.
This 2 values will be read later in the main loop and I don´t want to wait until the whole converstion is done.
And here I need some help to set this configuration up.
Kind regards
René Show Less
I'm new to Infineon controller and I try to setup a small program.
I like to sample 2 currents at the same time. That should be triggered by a rising or falling trigger of from a CCU8 unit and a compare value.
After conversion of the two currents I need an interrupt for further processing but the adc should also sample 2 input voltages in the mean time when the interrupt is processing.
This 2 values will be read later in the main loop and I don´t want to wait until the whole converstion is done.
And here I need some help to set this configuration up.
Kind regards
René Show Less
XMC™
Hi,If you are thinking of adding Bluetooth to your XMC project maybe it would be of interest for you, Webinar: Bluetooth development with Infineon XMC4700...
Show More
Hi,
If you are thinking of adding Bluetooth to your XMC project maybe it would be of interest for you, Webinar: Bluetooth development with Infineon XMC4700
Have fun,
Jesus Show Less
If you are thinking of adding Bluetooth to your XMC project maybe it would be of interest for you, Webinar: Bluetooth development with Infineon XMC4700
Have fun,
Jesus Show Less
XMC™
Hi everyone,we are exploring the posibility to use one bootloader for all 1MB, 1.5MB and 2MB versions of the XMC4800. For that we need to know in the ...
Show More
Hi everyone,
we are exploring the posibility to use one bootloader for all 1MB, 1.5MB and 2MB versions of the XMC4800. For that we need to know in the program how big the flash memory is.
I figured there would be a register that could tell me which version of the chip I'm working on, for instance XMC4800-F100x1024, but I haven't been able to find that in the Reference Manual.
Any kind of help would be much appreciated.
Kind regards
Al Show Less
we are exploring the posibility to use one bootloader for all 1MB, 1.5MB and 2MB versions of the XMC4800. For that we need to know in the program how big the flash memory is.
I figured there would be a register that could tell me which version of the chip I'm working on, for instance XMC4800-F100x1024, but I haven't been able to find that in the Reference Manual.
Any kind of help would be much appreciated.
Kind regards
Al Show Less
XMC™
Hello!I'd like to know how to safely update the data of a remote frame CANbus Message Object (MO). When writing to the two data register while a remot...
Show More
Hello!
I'd like to know how to safely update the data of a remote frame CANbus Message Object (MO). When writing to the two data register while a remote frame request reads those two registers, the remote frame could transfer partly old and new data.
The XMC4700/4800 manual in ch. 19.3.9.2 (Frame Transmission) says to use TXEN0 in register MOSTATn to prevent this case. But what happens to the sender of the remote frame request if the response is suppressed? Will it automatically retry?
Best regards,
Ernie T. Show Less
I'd like to know how to safely update the data of a remote frame CANbus Message Object (MO). When writing to the two data register while a remote frame request reads those two registers, the remote frame could transfer partly old and new data.
The XMC4700/4800 manual in ch. 19.3.9.2 (Frame Transmission) says to use TXEN0 in register MOSTATn to prevent this case. But what happens to the sender of the remote frame request if the response is suppressed? Will it automatically retry?
Best regards,
Ernie T. Show Less
XMC™
I can seem to find any examples of how to use sleep and wake. I have tried to implement my own using what i have found on the forum and reference guid...
Show More
I can seem to find any examples of how to use sleep and wake. I have tried to implement my own using what i have found on the forum and reference guide but I can't seem to get it to wake back up without error. If anyone has any examples a working deep sleep and wake that would be super helpful. Thanks.
Show Less
XMC™
Hi everybody,I use the uC XMC4500, but I configure 200KHz in Dave at the oscilloscope I read only one fifth, ie 40 KHz. Someone will have an idea?
Show More
Hi everybody,
I use the uC XMC4500, but I configure 200KHz in Dave at the oscilloscope I read only one fifth, ie 40 KHz. Someone will have an idea? Show Less
I use the uC XMC4500, but I configure 200KHz in Dave at the oscilloscope I read only one fifth, ie 40 KHz. Someone will have an idea? Show Less