Hi,
i'm actually trying to get a working FlexRay Bus with the 2 Node Starter Kit of EVB9S12XF512E.
The sample code coming with the Boards works fine but as soon as I change the Protocol settings in the Fr_UNIFIED_cfg.c the Nodes wont coldstart anymore.
The old (working) settings are:
const Fr_low_level_config_type Fr_low_level_cfg_set_00 =
{
10, // G_COLD_START_ATTEMPTS
3, // GD_ACTION_POINT_OFFSET
83, // GD_CAS_RX_LOW_MAX
0, // GD_DYNAMIC_SLOT_IDLE_PHASE
40, // GD_MINISLOT
3, // GD_MINI_SLOT_ACTION_POINT_OFFSET
50, // GD_STATIC_SLOT
13, // GD_SYMBOL_WINDOW
11, // GD_TSS_TRANSMITTER
59, // GD_WAKEUP_SYMBOL_RX_IDLE
50, // GD_WAKEUP_SYMBOL_RX_LOW
301, // GD_WAKEUP_SYMBOL_RX_WINDOW
180, // GD_WAKEUP_SYMBOL_TX_IDLE
60, // GD_WAKEUP_SYMBOL_TX_LOW
2, // G_LISTEN_NOISE
5000, // G_MACRO_PER_CYCLE
10, // G_MAX_WITHOUT_CLOCK_CORRECTION_PASSIVE
14, // G_MAX_WITHOUT_CLOCK_CORRECTION_FATAL
22, // G_NUMBER_OF_MINISLOTS
60, // G_NUMBER_OF_STATIC_SLOTS
4920, // G_OFFSET_CORRECTION_START
16, // G_PAYLOAD_LENGTH_STATIC
5, // G_SYNC_NODE_MAX
2, // G_NETWORK_MANAGEMENT_VECTOR_LENGTH
FALSE, // G_ALLOW_HALT_DUE_TO_CLOCK
20, // G_ALLOW_PASSIVE_TO_ACTIVE
FR_CHANNEL_AB, // P_CHANNELS
300, // PD_ACCEPTED_STARTUP_RANGE
1, // P_CLUSTER_DRIFT_DAMPING
56, // P_DECODING_CORRECTION
1, // P_DELAY_COMPENSATION_A
1, // P_DELAY_COMPENSATION_B
401202, // PD_LISTEN_TIMEOUT
601, // PD_MAX_DRIFT
0, // P_EXTERN_OFFSET_CORRECTION
0, // P_EXTERN_RATE_CORRECTION
1, // P_KEY_SLOT_ID
TRUE, // P_KEY_SLOT_USED_FOR_STARTUP
TRUE, // P_KEY_SLOT_USED_FOR_SYNC
242, // P_KEY_SLOT_HEADER_CRC
21, // P_LATEST_TX
5, // P_MACRO_INITIAL_OFFSET_A
5, // P_MACRO_INITIAL_OFFSET_B
23, // P_MICRO_INITIAL_OFFSET_A
23, // P_MICRO_INITIAL_OFFSET_B
200000, // P_MICRO_PER_CYCLE
1201, // P_OFFSET_CORRECTION_OUT
600, // P_RATE_CORRECTION_OUT
FALSE, // P_SINGLE_SLOT_ENABLED
FR_CHANNEL_A, // P_WAKEUP_CHANNEL
16, // P_WAKEUP_PATTERN
40, // P_MICRO_PER_MACRO_NOM
8 // P_PAYLOAD_LENGTH_DYN_MAX
};
And the ones I wan't the nodes to start with are:
const Fr_low_level_config_type Fr_low_level_cfg_set_00 =
{
8, // G_COLD_START_ATTEMPTS
2, // GD_ACTION_POINT_OFFSET
79, // GD_CAS_RX_LOW_MAX
1, // GD_DYNAMIC_SLOT_IDLE_PHASE
5, // GD_MINISLOT
2, // GD_MINI_SLOT_ACTION_POINT_OFFSET
24, // GD_STATIC_SLOT
13, // GD_SYMBOL_WINDOW
9, // GD_TSS_TRANSMITTER
59, // GD_WAKEUP_SYMBOL_RX_IDLE
50, // GD_WAKEUP_SYMBOL_RX_LOW
301, // GD_WAKEUP_SYMBOL_RX_WINDOW
180, // GD_WAKEUP_SYMBOL_TX_IDLE
60, // GD_WAKEUP_SYMBOL_TX_LOW
2, // G_LISTEN_NOISE
3636, // G_MACRO_PER_CYCLE
2, // G_MAX_WITHOUT_CLOCK_CORRECTION_PASSIVE
2, // G_MAX_WITHOUT_CLOCK_CORRECTION_FATAL
289, // G_NUMBER_OF_MINISLOTS
91, // G_NUMBER_OF_STATIC_SLOTS
3632, // G_OFFSET_CORRECTION_START
8, // G_PAYLOAD_LENGTH_STATIC
15, // G_SYNC_NODE_MAX
0, // G_NETWORK_MANAGEMENT_VECTOR_LENGTH
TRUE, // G_ALLOW_HALT_DUE_TO_CLOCK
0, // G_ALLOW_PASSIVE_TO_ACTIVE
FR_CHANNEL_AB, // P_CHANNELS
212, // PD_ACCEPTED_STARTUP_RANGE
2, // P_CLUSTER_DRIFT_DAMPING
48, // P_DECODING_CORRECTION
1, // P_DELAY_COMPENSATION_A
1, // P_DELAY_COMPENSATION_B
400242, // PD_LISTEN_TIMEOUT
121, // PD_MAX_DRIFT
0, // P_EXTERN_OFFSET_CORRECTION
0, // P_EXTERN_RATE_CORRECTION
1, // P_KEY_SLOT_ID
FALSE, // P_KEY_SLOT_USED_FOR_STARTUP
FALSE, // P_KEY_SLOT_USED_FOR_SYNC
242, // P_KEY_SLOT_HEADER_CRC
268, // P_LATEST_TX
3, // P_MACRO_INITIAL_OFFSET_A
3, // P_MACRO_INITIAL_OFFSET_B
6, // P_MICRO_INITIAL_OFFSET_A
6, // P_MICRO_INITIAL_OFFSET_B
200000, // P_MICRO_PER_CYCLE
126, // P_OFFSET_CORRECTION_OUT
121, // P_RATE_CORRECTION_OUT
FALSE, // P_SINGLE_SLOT_ENABLED
FR_CHANNEL_A, // P_WAKEUP_CHANNEL
33, // P_WAKEUP_PATTERN
40, // P_MICRO_PER_MACRO_NOM
8 // P_PAYLOAD_LENGTH_DYN_MAX
};
Do I need to take care of something else when changing the settings?
I would apreciate any help.
If you change G_PAYLOAD_LENGTH_STATIC from 16 to 8 you also need change payload lenght to 8 in Fr_transmit_buffer_config_type Fr_tx_buffer_slot_XX_cfg structure. Also you need generate new header CRC in this structures.
Hi Milan,
thank you for your answer but I have changed the CRC and it's still not working. I think it has something to do with these 4 settings:
G_MACRO_PER_CYCLE
GD_STATIC_SLOT
G_NUMBER_OF_STATIC_SLOTS
G_OFFSET_CORRECTION_START
If I change them I will get stuck in the FR_init function. The Fr_start_communication API is successfull but afterwards I am stuck in the next while loop waiting to get away from FR_POCSTATE_NORMAL_ACTIVE but this never happens.
this equations have not been met
correct parameters are
Hi Milan,
Can you help me, which program is seen on your screenshot?
Thanks
Steve
I think it has something to do with the different Payload lengths of the static segment.
But I haven't figured out yet which settings I need to change in the MB config.