|
AM243x Motor Control SDK
09.01.00
|
|
Go to the documentation of this file.
33 #ifndef TAMAGAWA_DRV_H_
34 #define TAMAGAWA_DRV_H_
57 #include <drivers/pruicss.h>
66 #define TAMAGAWA_MULTI_CH0 (1 << 0)
71 #define TAMAGAWA_MULTI_CH1 (1 << 1)
76 #define TAMAGAWA_MULTI_CH2 (1 << 2)
81 #define MAX_CHANNELS (3)
86 #define MAX_EEPROM_ADDRESS (127)
91 #define MAX_EEPROM_WRITE_DATA (255)
uint16_t tx_div
Definition: tamagawa_drv.h:249
struct tamagawa_priv * tamagawa_init(struct tamagawa_xchg *tamagawa_xchg, void *pruss_cfg, void *pruss_iep, uint32_t slice_value)
Initialize tamagawa firmware interface address and get the pointer to struct tamagawa_priv instance.
uint64_t cmp3
Definition: tamagawa_drv.h:285
@ DATA_ID_0
Definition: tamagawa_drv.h:99
uint16_t rx_en_cnt
Definition: tamagawa_drv.h:279
volatile uint32_t edf
Definition: tamagawa_drv.h:215
void tamagawa_command_send(struct tamagawa_priv *priv)
trigger sending the tamagawa command in PRU
void tamagawa_config_clock(struct tamagawa_priv *priv, struct tamagawa_clk_cfg *clk_cfg)
configure tamagawa clock
void * pruss_iep
Definition: tamagawa_drv.h:284
Structure defining Tamagawa interface.
Definition: tamagawa_drv.h:233
int32_t tamagawa_command_build(struct tamagawa_priv *priv, int32_t cmd, uint8_t gTamagawa_multi_ch_mask)
setup the tamagawa command in the PRU interface buffer
uint8_t edf
Definition: tamagawa_drv.h:179
data_id
Data ID codes.
Definition: tamagawa_drv.h:98
Definition: tamagawa_drv.h:202
uint8_t enid
Definition: tamagawa_drv.h:176
uint8_t tamagawa_multi_channel_detected(struct tamagawa_priv *priv)
select channels detected in multi channel configuration by tamagawa master. required to be invoked ...
void tamagawa_update_data_id(struct tamagawa_priv *priv, int32_t cmd)
update the current requested command id in tamagawa interface.
int32_t tamagawa_crc_verify(struct tamagawa_priv *priv)
verify the CRC computed with the encoder crc.
uint32_t version
Definition: tamagawa_drv.h:194
volatile uint32_t oversample_rate
Definition: tamagawa_drv.h:192
volatile uint32_t pos_word0
Definition: tamagawa_drv.h:123
Tamagawa Interface.
Definition: tamagawa_drv.h:186
int32_t ICSS_CFG_PRUx_ED_RXCFG
Definition: tamagawa_drv.h:268
Used to structures defining the Tamagawa interface, PRU slice and register offsets.
Definition: tamagawa_drv.h:277
volatile uint32_t crc
Definition: tamagawa_drv.h:216
uint32_t abm
Definition: tamagawa_drv.h:173
volatile uint8_t trigger
Definition: tamagawa_drv.h:162
uint8_t ch_mask
Definition: tamagawa_drv.h:187
uint8_t cf
Definition: tamagawa_drv.h:174
volatile uint32_t word0
Definition: tamagawa_drv.h:140
void tamagawa_config_channel(struct tamagawa_priv *priv, uint32_t ch)
select channel to be used by tamagawa master
struct tamagawa_xchg * tamagawa_xchg
Definition: tamagawa_drv.h:280
struct tamagawa_ch_info ch[3]
Definition: tamagawa_drv.h:236
@ DATA_ID_8
Definition: tamagawa_drv.h:105
volatile uint32_t word1
Definition: tamagawa_drv.h:219
Structure defining Tamagawa command interface.
Definition: tamagawa_drv.h:139
volatile uint32_t rx_div_factor
Definition: tamagawa_drv.h:188
uint8_t rx_frames
Definition: tamagawa_drv.h:198
Structure defining Tamagawa configuration interface.
Definition: tamagawa_drv.h:156
int32_t tamagawa_command_process(struct tamagawa_priv *priv, int32_t cmd, uint8_t gTamagawa_multi_ch_mask)
send the tamagawa command and wait till firmware acknowledges
volatile uint32_t cmd
Definition: tamagawa_drv.h:213
uint8_t ch2
Definition: tamagawa_drv.h:205
void tamagawa_set_baudrate(struct tamagawa_priv *priv, double baudrate)
Update the values for oversample rate and division factor for Tx and Rx.
@ DATA_ID_2
Definition: tamagawa_drv.h:101
int32_t tamagawa_parse(int32_t cmd, struct tamagawa_priv *priv)
Parse the data in tamagawa interface.
void tamagawa_update_adf(struct tamagawa_priv *priv, uint32_t val, uint32_t ch)
update the adf(address of EEPROM) field entered by user for EEPROM command in tamagawa interface.
uint8_t tx_frames
Definition: tamagawa_drv.h:197
@ DATA_ID_1
Definition: tamagawa_drv.h:100
volatile uint8_t opmode
Definition: tamagawa_drv.h:157
Tamagawa EEPROM Interface.
Definition: tamagawa_drv.h:212
void tamagawa_update_edf(struct tamagawa_priv *priv, uint32_t val, uint32_t ch)
update the edf(data for EEPROM) field entered by user for EEPROM command in tamagawa interface.
uint16_t rx_div_attr
Definition: tamagawa_drv.h:251
uint8_t sf
Definition: tamagawa_drv.h:175
@ DATA_ID_C
Definition: tamagawa_drv.h:106
@ DATA_ID_7
Definition: tamagawa_drv.h:104
uint8_t data_id
Definition: tamagawa_drv.h:195
int32_t ICSS_CFG_PRUx_ED_CH1_CFG1
Definition: tamagawa_drv.h:265
volatile uint32_t word2
Definition: tamagawa_drv.h:220
struct tamagawa_cmd cmd
Definition: tamagawa_drv.h:235
volatile uint32_t pos_word2
Definition: tamagawa_drv.h:127
@ PERIODIC_TRIGGER_CMD
Definition: tamagawa_drv.h:108
int32_t slice_value
Definition: tamagawa_drv.h:282
uint8_t ch1
Definition: tamagawa_drv.h:204
void tamagawa_config_multi_channel_mask(struct tamagawa_priv *priv, uint8_t mask)
select mask of channels to be used in multi channel configuration by tamagawa master
Tamagawa Interface Received data.
Definition: tamagawa_drv.h:171
int32_t ICSS_CFG_PRUx_ED_CH1_CFG0
Definition: tamagawa_drv.h:262
volatile uint32_t pos_word1
Definition: tamagawa_drv.h:125
@ DATA_ID_D
Definition: tamagawa_drv.h:107
uint8_t ch0
Definition: tamagawa_drv.h:203
void tamagawa_eeprom_crc_reinit(struct tamagawa_priv *priv)
Reset the values of the variables used in CRC calculation to 0.
int32_t ICSS_CFG_PRUx_ED_CH0_CFG1
Definition: tamagawa_drv.h:264
void * pruss_cfg
Definition: tamagawa_drv.h:281
volatile uint32_t word1
Definition: tamagawa_drv.h:142
uint8_t adf
Definition: tamagawa_drv.h:178
@ DATA_ID_3
Definition: tamagawa_drv.h:102
void tamagawa_command_wait(struct tamagawa_priv *priv)
wait till PRU finishes tamagawa transaction
int32_t ICSS_CFG_PRUx_ED_TXCFG
Definition: tamagawa_drv.h:269
volatile uint32_t adf
Definition: tamagawa_drv.h:214
volatile uint32_t cal_crc
Definition: tamagawa_drv.h:129
void tamagawa_config_host_trigger(struct tamagawa_priv *priv)
configure tamagawa master for host trigger mode
volatile uint8_t status
Definition: tamagawa_drv.h:164
volatile uint8_t channel
Definition: tamagawa_drv.h:158
int32_t ICSS_CFG_PRUx_ED_CH2_CFG0
Definition: tamagawa_drv.h:263
Used to configure the Tamagawa Clock.
Definition: tamagawa_drv.h:247
uint16_t rx_div
Definition: tamagawa_drv.h:248
void tamagawa_update_crc(struct tamagawa_priv *priv, int32_t cmd, uint32_t ch)
Pass the values of CF(Control Field), ADF(address of EEPROM) and EDF(data for EEPROM) to the CRC calc...
void tamagawa_multi_channel_set_cur(struct tamagawa_priv *priv, uint32_t ch)
In multi channel configuration, select channel before receive processing in multi channel configura...
int32_t channel
Definition: tamagawa_drv.h:278
uint64_t eeprom_tx_data
Definition: tamagawa_drv.h:222
@ DATA_ID_NUM
Definition: tamagawa_drv.h:109
uint64_t tamagawa_prepare_eeprom_tx_data(uint64_t eeprom_tx_data, volatile uint32_t data)
Add the start and the stop bit to the reversed data.
struct register_offsets register_offset_val
Definition: tamagawa_drv.h:283
Used to store the register offsets depending on different PRU slices.
Definition: tamagawa_drv.h:260
int32_t ICSS_CFG_PRUx_ED_CH0_CFG0
Definition: tamagawa_drv.h:261
uint8_t crc
Definition: tamagawa_drv.h:180
uint16_t rx_en_cnt
Definition: tamagawa_drv.h:250
uint8_t almc
Definition: tamagawa_drv.h:177
Structure defining tamagawa per channel interface.
Definition: tamagawa_drv.h:122
volatile uint32_t word0
Definition: tamagawa_drv.h:218
volatile uint32_t tx_div_factor
Definition: tamagawa_drv.h:190
uint32_t abs
Definition: tamagawa_drv.h:172
int32_t ICSS_CFG_GPCFGx
Definition: tamagawa_drv.h:267
uint32_t tamagawa_reverse_bits(int8_t data)
Reverse the bits of a number.
void tamagawa_config_periodic_trigger(struct tamagawa_priv *priv)
configure tamagawa master in periodic trigger mode
@ DATA_ID_6
Definition: tamagawa_drv.h:103
void tamagawa_prepare_eeprom_command(struct tamagawa_priv *priv, int32_t cmd, uint32_t ch)
Prepare the required EEPROM command from the CF(Control Field), ADF(address of EEPROM) and EDF(data f...
int32_t ICSS_CFG_PRUx_ED_CH2_CFG1
Definition: tamagawa_drv.h:266