foxBMS-UnitTests
1.0.0
The foxBMS Unit Tests API Documentation
dma_cfg.h
Go to the documentation of this file.
1
/**
2
*
3
* @copyright © 2010 - 2021, Fraunhofer-Gesellschaft zur Foerderung der
4
* angewandten Forschung e.V. All rights reserved.
5
*
6
* BSD 3-Clause License
7
* Redistribution and use in source and binary forms, with or without
8
* modification, are permitted provided that the following conditions are met:
9
* 1. Redistributions of source code must retain the above copyright notice,
10
* this list of conditions and the following disclaimer.
11
* 2. Redistributions in binary form must reproduce the above copyright
12
* notice, this list of conditions and the following disclaimer in the
13
* documentation and/or other materials provided with the distribution.
14
* 3. Neither the name of the copyright holder nor the names of its
15
* contributors may be used to endorse or promote products derived from
16
* this software without specific prior written permission.
17
*
18
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
22
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28
* POSSIBILITY OF SUCH DAMAGE.
29
*
30
* We kindly request you to use one or more of the following phrases to refer
31
* to foxBMS in your hardware, software, documentation or advertising
32
* materials:
33
*
34
* ″This product uses parts of foxBMS®″
35
*
36
* ″This product includes parts of foxBMS®″
37
*
38
* ″This product is derived from foxBMS®″
39
*
40
*/
41
42
/**
43
* @file dma_cfg.h
44
* @author foxBMS Team
45
* @date 2020-03-05 (date of creation)
46
* @updated 2020-03-05 (date of last update)
47
* @ingroup DRIVERS_CONFIGURATION
48
* @prefix DMA
49
*
50
* @brief Headers for the configuration for the DMA module
51
*
52
*
53
*/
54
55
#ifndef FOXBMS__DMA_CFG_H_
56
#define FOXBMS__DMA_CFG_H_
57
58
/*========== Includes =======================================================*/
59
#include "
general.h
"
60
61
#include "
battery_system_cfg.h
"
62
63
#include "HL_spi.h"
64
#include "HL_sys_dma.h"
65
66
/*========== Macros and Definitions =========================================*/
67
68
/** number of spi interfaces for DMA */
69
#define DMA_NUMBER_SPI_INTERFACES 5U
70
71
/** defines for the DMA request lines (and to which SPI they belong) */
72
/**@{*/
73
#define DMA_REQ_LINE_SPI1_TX (DMA_REQ1)
74
#define DMA_REQ_LINE_SPI1_RX (DMA_REQ0)
75
#define DMA_REQ_LINE_SPI2_TX (DMA_REQ3)
76
#define DMA_REQ_LINE_SPI2_RX (DMA_REQ2)
77
#define DMA_REQ_LINE_SPI3_TX (DMA_REQ15)
78
#define DMA_REQ_LINE_SPI3_RX (DMA_REQ14)
79
#define DMA_REQ_LINE_SPI4_TX (DMA_REQ25)
80
#define DMA_REQ_LINE_SPI4_RX (DMA_REQ24)
81
#define DMA_REQ_LINE_SPI5_TX (DMA_REQ31)
82
#define DMA_REQ_LINE_SPI5_RX (DMA_REQ30)
83
/**@}*/
84
85
/** define for the shift of an address for big endian 8bit */
86
#define DMA_BIG_ENDIAN_ADDRESS_8BIT (3U)
87
/** define for the shift of an address for big endian 16bit */
88
#define DMA_BIG_ENDIAN_ADDRESS_16BIT (2U)
89
/** DMA Request enable bit */
90
#define DMAREQEN_BIT (0x10000U)
91
/** SPI enable bit */
92
#define SPIEN_BIT (0x1000000U)
93
94
/** DMA request line for LTC */
95
/**@{*/
96
#define DMA_REQ_LINE_LTC_TX (DMA_REQ_LINE_SPI1_TX)
97
#define DMA_REQ_LINE_LTC_RX (DMA_REQ_LINE_SPI1_RX)
98
/**@}*/
99
100
/** DMA request line for N775 */
101
/**@{**/
102
#define DMA_REQ_LINE_N775_TX (DMA_REQ_LINE_SPI1_TX)
103
#define DMA_REQ_LINE_N775_RX (DMA_REQ_LINE_SPI5_RX)
104
/**@}*/
105
106
/** describes the RX and TX DMA channels used for an SPI interface */
107
typedef
struct
DMA_CHANNEL_CONFIG
{
108
dmaChannel_t
txChannel
;
109
dmaChannel_t
rxChannel
;
110
}
DMA_CHANNEL_CONFIG_s
;
111
112
/** describes the DMA requests corresponding to the DMA channel used for an SPI interface */
113
typedef
struct
DMA_REQUEST_CONFIG
{
114
dmaRequest_t
txRequest
;
115
dmaRequest_t
rxRequest
;
116
}
DMA_REQUEST_CONFIG_s
;
117
118
/*========== Extern Constant and Variable Declarations ======================*/
119
120
extern
DMA_CHANNEL_CONFIG_s
dma_spiDmaChannels
[
DMA_NUMBER_SPI_INTERFACES
];
121
extern
DMA_REQUEST_CONFIG_s
dma_spiDmaRequests
[
DMA_NUMBER_SPI_INTERFACES
];
122
extern
spiBASE_t *
dma_spiInterfaces
[
DMA_NUMBER_SPI_INTERFACES
];
123
124
/*========== Extern Function Prototypes =====================================*/
125
126
/*========== Externalized Static Functions Prototypes (Unit Test) ===========*/
127
128
#endif
/* FOXBMS__DMA_CFG_H_ */
DMA_REQUEST_CONFIG_s
struct DMA_REQUEST_CONFIG DMA_REQUEST_CONFIG_s
DMA_CHANNEL_CONFIG::rxChannel
dmaChannel_t rxChannel
Definition:
dma_cfg.h:109
general.h
TODO.
dma_spiDmaChannels
DMA_CHANNEL_CONFIG_s dma_spiDmaChannels[DMA_NUMBER_SPI_INTERFACES]
Definition:
dma_cfg.c:68
battery_system_cfg.h
Configuration of the battery system (e.g., number of battery modules, battery cells,...
dma_spiDmaRequests
DMA_REQUEST_CONFIG_s dma_spiDmaRequests[DMA_NUMBER_SPI_INTERFACES]
Definition:
dma_cfg.c:77
DMA_NUMBER_SPI_INTERFACES
#define DMA_NUMBER_SPI_INTERFACES
Definition:
dma_cfg.h:69
DMA_CHANNEL_CONFIG
Definition:
dma_cfg.h:107
DMA_REQUEST_CONFIG::txRequest
dmaRequest_t txRequest
Definition:
dma_cfg.h:114
dma_spiInterfaces
spiBASE_t * dma_spiInterfaces[DMA_NUMBER_SPI_INTERFACES]
Definition:
dma_cfg.c:86
DMA_CHANNEL_CONFIG_s
struct DMA_CHANNEL_CONFIG DMA_CHANNEL_CONFIG_s
DMA_REQUEST_CONFIG
Definition:
dma_cfg.h:113
DMA_REQUEST_CONFIG::rxRequest
dmaRequest_t rxRequest
Definition:
dma_cfg.h:115
DMA_CHANNEL_CONFIG::txChannel
dmaChannel_t txChannel
Definition:
dma_cfg.h:108
src
app
driver
config
dma_cfg.h
Generated by
1.8.20