Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
Nodemcu Firmware
Commits
2c5303d5
Commit
2c5303d5
authored
Feb 10, 2016
by
Marcel Stör
Browse files
Merge pull request #1029 from devsaurus/spi_buffer
Extend data type for spi miso/mosi buffer offset to 16 bit.
parents
6623b9e3
dc2e1efe
Changes
5
Hide whitespace changes
Inline
Side-by-side
app/driver/spi.c
View file @
2c5303d5
...
@@ -128,12 +128,12 @@ void spi_master_init(uint8 spi_no, unsigned cpol, unsigned cpha, uint32_t clock_
...
@@ -128,12 +128,12 @@ void spi_master_init(uint8 spi_no, unsigned cpol, unsigned cpha, uint32_t clock_
* Description : Enter provided data into MOSI buffer.
* Description : Enter provided data into MOSI buffer.
* The data is regarded as a sequence of bits with length 'bitlen'.
* The data is regarded as a sequence of bits with length 'bitlen'.
* It will be written left-aligned starting from position 'offset'.
* It will be written left-aligned starting from position 'offset'.
* Parameters : uint8 spi_no - SPI module number, Only "SPI" and "HSPI" are valid
* Parameters : uint8
spi_no - SPI module number, Only "SPI" and "HSPI" are valid
* uint
8
offset - offset into MOSI buffer (number of bits)
* uint
16
offset - offset into MOSI buffer (number of bits)
* uint8 bitlen - valid number of bits in data
* uint8
bitlen - valid number of bits in data
* uint32 data - data to be written into buffer
* uint32 data - data to be written into buffer
*******************************************************************************/
*******************************************************************************/
void
spi_mast_set_mosi
(
uint8
spi_no
,
uint
8
offset
,
uint8
bitlen
,
uint32
data
)
void
spi_mast_set_mosi
(
uint8
spi_no
,
uint
16
offset
,
uint8
bitlen
,
uint32
data
)
{
{
uint8
wn
,
wn_offset
,
wn_bitlen
;
uint8
wn
,
wn_offset
,
wn_bitlen
;
uint32
wn_data
;
uint32
wn_data
;
...
@@ -186,11 +186,11 @@ void spi_mast_set_mosi(uint8 spi_no, uint8 offset, uint8 bitlen, uint32 data)
...
@@ -186,11 +186,11 @@ void spi_mast_set_mosi(uint8 spi_no, uint8 offset, uint8 bitlen, uint32 data)
* Description : Retrieve data from MISO buffer.
* Description : Retrieve data from MISO buffer.
* The data is regarded as a sequence of bits with length 'bitlen'.
* The data is regarded as a sequence of bits with length 'bitlen'.
* It will be read starting left-aligned from position 'offset'.
* It will be read starting left-aligned from position 'offset'.
* Parameters : uint8 spi_no - SPI module number, Only "SPI" and "HSPI" are valid
* Parameters : uint8
spi_no - SPI module number, Only "SPI" and "HSPI" are valid
* uint
8
offset - offset into MISO buffer (number of bits)
* uint
16
offset - offset into MISO buffer (number of bits)
* uint8 bitlen - requested number of bits in data
* uint8
bitlen - requested number of bits in data
*******************************************************************************/
*******************************************************************************/
uint32
spi_mast_get_miso
(
uint8
spi_no
,
uint
8
offset
,
uint8
bitlen
)
uint32
spi_mast_get_miso
(
uint8
spi_no
,
uint
16
offset
,
uint8
bitlen
)
{
{
uint8
wn
,
wn_offset
,
wn_bitlen
;
uint8
wn
,
wn_offset
,
wn_bitlen
;
uint32
wn_data
=
0
;
uint32
wn_data
=
0
;
...
...
app/include/driver/spi.h
View file @
2c5303d5
...
@@ -20,9 +20,9 @@ void spi_lcd_9bit_write(uint8 spi_no,uint8 high_bit,uint8 low_8bit);
...
@@ -20,9 +20,9 @@ void spi_lcd_9bit_write(uint8 spi_no,uint8 high_bit,uint8 low_8bit);
//spi master init funtion
//spi master init funtion
void
spi_master_init
(
uint8
spi_no
,
unsigned
cpol
,
unsigned
cpha
,
uint32_t
clock_div
);
void
spi_master_init
(
uint8
spi_no
,
unsigned
cpol
,
unsigned
cpha
,
uint32_t
clock_div
);
// fill MOSI buffer
// fill MOSI buffer
void
spi_mast_set_mosi
(
uint8
spi_no
,
uint
8
offset
,
uint8
bitlen
,
uint32
data
);
void
spi_mast_set_mosi
(
uint8
spi_no
,
uint
16
offset
,
uint8
bitlen
,
uint32
data
);
// retrieve data from MISO buffer
// retrieve data from MISO buffer
uint32
spi_mast_get_miso
(
uint8
spi_no
,
uint
8
offset
,
uint8
bitlen
);
uint32
spi_mast_get_miso
(
uint8
spi_no
,
uint
16
offset
,
uint8
bitlen
);
// initiate SPI transaction
// initiate SPI transaction
void
spi_mast_transaction
(
uint8
spi_no
,
uint8
cmd_bitlen
,
uint16
cmd_data
,
uint8
addr_bitlen
,
uint32
addr_data
,
void
spi_mast_transaction
(
uint8
spi_no
,
uint8
cmd_bitlen
,
uint16
cmd_data
,
uint8
addr_bitlen
,
uint32
addr_data
,
uint16
mosi_bitlen
,
uint8
dummy_bitlen
,
sint16
miso_bitlen
);
uint16
mosi_bitlen
,
uint8
dummy_bitlen
,
sint16
miso_bitlen
);
...
...
app/modules/spi.c
View file @
2c5303d5
...
@@ -292,7 +292,7 @@ static int spi_transaction( lua_State *L )
...
@@ -292,7 +292,7 @@ static int spi_transaction( lua_State *L )
return
luaL_error
(
L
,
"dummy_bitlen out of range"
);
return
luaL_error
(
L
,
"dummy_bitlen out of range"
);
}
}
if
(
miso_bitlen
<
-
512
||
miso_bitlen
>
51
1
)
{
if
(
miso_bitlen
<
-
512
||
miso_bitlen
>
51
2
)
{
return
luaL_error
(
L
,
"miso_bitlen out of range"
);
return
luaL_error
(
L
,
"miso_bitlen out of range"
);
}
}
...
...
app/platform/platform.c
View file @
2c5303d5
...
@@ -478,7 +478,7 @@ spi_data_type platform_spi_send_recv( uint8_t id, uint8_t bitlen, spi_data_type
...
@@ -478,7 +478,7 @@ spi_data_type platform_spi_send_recv( uint8_t id, uint8_t bitlen, spi_data_type
return
spi_mast_get_miso
(
id
,
0
,
bitlen
);
return
spi_mast_get_miso
(
id
,
0
,
bitlen
);
}
}
int
platform_spi_set_mosi
(
uint8_t
id
,
uint
8
_t
offset
,
uint8_t
bitlen
,
spi_data_type
data
)
int
platform_spi_set_mosi
(
uint8_t
id
,
uint
16
_t
offset
,
uint8_t
bitlen
,
spi_data_type
data
)
{
{
if
(
offset
+
bitlen
>
512
)
if
(
offset
+
bitlen
>
512
)
return
PLATFORM_ERR
;
return
PLATFORM_ERR
;
...
@@ -488,7 +488,7 @@ int platform_spi_set_mosi( uint8_t id, uint8_t offset, uint8_t bitlen, spi_data_
...
@@ -488,7 +488,7 @@ int platform_spi_set_mosi( uint8_t id, uint8_t offset, uint8_t bitlen, spi_data_
return
PLATFORM_OK
;
return
PLATFORM_OK
;
}
}
spi_data_type
platform_spi_get_miso
(
uint8_t
id
,
uint
8
_t
offset
,
uint8_t
bitlen
)
spi_data_type
platform_spi_get_miso
(
uint8_t
id
,
uint
16
_t
offset
,
uint8_t
bitlen
)
{
{
if
(
offset
+
bitlen
>
512
)
if
(
offset
+
bitlen
>
512
)
return
0
;
return
0
;
...
...
app/platform/platform.h
View file @
2c5303d5
...
@@ -101,8 +101,8 @@ int platform_spi_send( uint8_t id, uint8_t bitlen, spi_data_type data );
...
@@ -101,8 +101,8 @@ int platform_spi_send( uint8_t id, uint8_t bitlen, spi_data_type data );
spi_data_type
platform_spi_send_recv
(
uint8_t
id
,
uint8_t
bitlen
,
spi_data_type
data
);
spi_data_type
platform_spi_send_recv
(
uint8_t
id
,
uint8_t
bitlen
,
spi_data_type
data
);
void
platform_spi_select
(
unsigned
id
,
int
is_select
);
void
platform_spi_select
(
unsigned
id
,
int
is_select
);
int
platform_spi_set_mosi
(
uint8_t
id
,
uint
8
_t
offset
,
uint8_t
bitlen
,
spi_data_type
data
);
int
platform_spi_set_mosi
(
uint8_t
id
,
uint
16
_t
offset
,
uint8_t
bitlen
,
spi_data_type
data
);
spi_data_type
platform_spi_get_miso
(
uint8_t
id
,
uint
8
_t
offset
,
uint8_t
bitlen
);
spi_data_type
platform_spi_get_miso
(
uint8_t
id
,
uint
16
_t
offset
,
uint8_t
bitlen
);
int
platform_spi_transaction
(
uint8_t
id
,
uint8_t
cmd_bitlen
,
spi_data_type
cmd_data
,
int
platform_spi_transaction
(
uint8_t
id
,
uint8_t
cmd_bitlen
,
spi_data_type
cmd_data
,
uint8_t
addr_bitlen
,
spi_data_type
addr_data
,
uint8_t
addr_bitlen
,
spi_data_type
addr_data
,
uint16_t
mosi_bitlen
,
uint8_t
dummy_bitlen
,
int16_t
miso_bitlen
);
uint16_t
mosi_bitlen
,
uint8_t
dummy_bitlen
,
int16_t
miso_bitlen
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment