Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
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