CANFD fixes.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@13466 27425a3e-05d8-49a3-a47f-9c15f0e5edd8
This commit is contained in:
parent
eea9a7a9d7
commit
85ad133346
|
@ -279,6 +279,7 @@ bool can_lld_start(CANDriver *canp) {
|
||||||
canp->fdcan->CCCR |= FDCAN_CCCR_CCE;
|
canp->fdcan->CCCR |= FDCAN_CCCR_CCE;
|
||||||
|
|
||||||
/* Setting up operation mode except driver-controlled bits.*/
|
/* Setting up operation mode except driver-controlled bits.*/
|
||||||
|
canp->fdcan->NBTP = canp->config->NBTP;
|
||||||
canp->fdcan->DBTP = canp->config->DBTP;
|
canp->fdcan->DBTP = canp->config->DBTP;
|
||||||
canp->fdcan->CCCR = canp->config->CCCR & ~(FDCAN_CCCR_CSR | FDCAN_CCCR_CSA |
|
canp->fdcan->CCCR = canp->config->CCCR & ~(FDCAN_CCCR_CSR | FDCAN_CCCR_CSA |
|
||||||
FDCAN_CCCR_CCE | FDCAN_CCCR_INIT);
|
FDCAN_CCCR_CCE | FDCAN_CCCR_INIT);
|
||||||
|
@ -387,6 +388,9 @@ void can_lld_transmit(CANDriver *canp,
|
||||||
for (unsigned i = 0U; i < dlc_to_bytes[ctfp->DLC]; i += 4U) {
|
for (unsigned i = 0U; i < dlc_to_bytes[ctfp->DLC]; i += 4U) {
|
||||||
*tx_address++ = ctfp->data32[i / 4U];
|
*tx_address++ = ctfp->data32[i / 4U];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Starting transmission.*/
|
||||||
|
canp->fdcan->TXBAR = (uint32_t)1 << (uint32_t)mailbox;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -304,6 +304,10 @@ typedef struct {
|
||||||
* @brief Driver configuration structure.
|
* @brief Driver configuration structure.
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
/**
|
||||||
|
* @brief Nominal bit timing and prescaler register.
|
||||||
|
*/
|
||||||
|
uint32_t NBTP;
|
||||||
/**
|
/**
|
||||||
* @brief Data bit timing and prescaler register.
|
* @brief Data bit timing and prescaler register.
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue