hw_spi.h
2.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#ifndef _HW_SPI_H
#define _HW_SPI_H
/*********************************/
// for special spi interface
#define SPI_SPECIAL_INTERFACE
#define SPI_W_BUSY_PIN GPIO0_22_INDEX
#define SPI_R_IRQ_PIN GPIO0_24_INDEX
#define SPI_WRITE_BYSY app_gpio_input_level_read(SPI_W_BUSY_PIN)
#define SPI_READ_IRQ app_gpio_input_level_read(SPI_R_IRQ_PIN)
#define SPI_CS_AUTO 0
#define SPI_CS_MANUAL 1
#define SPI_MASTER 0
#define SPI_SLAVE 1
#define SPI_MODE_0 0
#define SPI_MODE_1 1
#define SPI_MODE_2 2
#define SPI_MODE_3 3
#define SPI_CS0 0
#define SPI_CS1 1
#define SPI_CS2 2
#define SPI_CS3 3
#define SPI_WORD_8BITS 7
#define SPI_WORD_9BITS 8
#define SPI_WORD_10BITS 9
#define SPI_WORD_11BITS 10
#define SPI_WORD_12BITS 11
#define SPI_WORD_13BITS 12
#define SPI_WORD_14BITS 13
#define SPI_WORD_15BITS 14
#define SPI_WORD_16BITS 15
#define SPI_CS_DELAY_HALF_CLK 0
#define SPI_CS_DELAY_1_CLK 1
#define SPI_CS_DELAY_2_CLK 2
#define SPI_CS_DELAY_3_CLK 3
#define SPI_CS_DELAY_4_CLK 4
#define SPI_CS_DELAY_5_CLK 5
#define SPI_CS_DELAY_6_CLK 6
#define SPI_CS_DELAY_7_CLK 7
#define set_spi_cs_delay(a) bSPI_DELAY = a
//BUS CLK
#define SPI_CLK_DIV_2 0
#define SPI_CLK_DIV_4 1
#define SPI_CLK_DIV_8 2
#define SPI_CLK_DIV_16 3
#define SPI_CLK_DIV_32 4
#define SPI_CLK_DIV_64 5
#define SPI_CLK_DIV_128 6
#define SPI_CLK_DIV_256 7
#define SPI_CLK_DIV_512 8
#define SPI_CLK_DIV_1024 9
#define SPI_CLK_DIV_2048 10
#define SPI_CLK_DIV_4096 11
#define SPI_CLK_DEFAULT SPI_CLK_DIV_256
void Spi_Init(void);
void Spi_Mode_Set(U8 mode);
void Spi_Cs_Active_Set(U8 con);
void Spi_Clk_Freq_Set(U8 div);
void Spi_Bits_Set(U8 bits);
void Spi_Test(void);
void Spi_Pin_Test(void);
void Spi_Write_Byte(U8 data);
void Spi_Write_2Bytes(U16 data);
void Spi_Write_3Bytes(U32 data);
void Spi_Write_4Bytes(U32 data);
void Spi_Bits_Set(U8 bits);
void Spi_Write_Bits(U16 data);
void Spi_Write_Byte_1(U8 data, U8 cs_con);
void Spi_Write(U8 *buf, U32 bytes_count);
void Spi_Read(U8 *buf, U32 bytes_count);
void Spi_Write_1(U8 *buf, U32 bytes_count, U8 cs_con);
void Spi_Read_1(U8 *buf, U32 bytes_count, U8 cs_con);
void Spi_Page_Write(U8 addr, U8 *buf, U32 bytes_count);
void Spi_Page_Read(U8 addr, U8 *buf, U32 bytes_count);
void Spi_Write_Byte_Continue(U8 data, U8 cs_con);
U8 Spi_Read_Byte_Contine(U8 cs_con);
#endif //_HW_SPI_H