Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
TASTE
uPython-mirror
Commits
71bed1a9
Commit
71bed1a9
authored
Aug 02, 2014
by
Damien George
Browse files
stmhal: Add preliminary driver for ST32F4DISC accelerometer.
Written in Python, not currently working. See issue #725.
parent
8464be15
Changes
1
Hide whitespace changes
Inline
Side-by-side
stmhal/boards/STM32F4DISC/staccel.py
0 → 100644
View file @
71bed1a9
"""
Driver for accelerometer on STM32F4 Discover board.
Assumes it's a LIS302DL MEMS device.
Not currently working.
See:
STM32Cube_FW_F4_V1.1.0/Drivers/BSP/Components/lis302dl/lis302dl.h
STM32Cube_FW_F4_V1.1.0/Drivers/BSP/Components/lis302dl/lis302dl.c
STM32Cube_FW_F4_V1.1.0/Drivers/BSP/STM32F4-Discovery/stm32f4_discovery.c
STM32Cube_FW_F4_V1.1.0/Drivers/BSP/STM32F4-Discovery/stm32f4_discovery.h
STM32Cube_FW_F4_V1.1.0/Drivers/BSP/STM32F4-Discovery/stm32f4_discovery_accelerometer.c
STM32Cube_FW_F4_V1.1.0/Drivers/BSP/STM32F4-Discovery/stm32f4_discovery_accelerometer.h
STM32Cube_FW_F4_V1.1.0/Projects/STM32F4-Discovery/Demonstrations/Src/main.c
"""
from
pyb
import
Pin
from
pyb
import
SPI
READWRITE_CMD
=
const
(
0x80
)
MULTIPLEBYTE_CMD
=
const
(
0x40
)
LIS302DL_WHO_AM_I_ADDR
=
const
(
0x0f
)
LIS302DL_CTRL_REG1_ADDR
=
const
(
0x20
)
class
STAccel
:
def
__init__
(
self
):
self
.
cs_pin
=
Pin
(
'PE3'
,
Pin
.
OUT_PP
,
Pin
.
PULL_NONE
)
self
.
cs_pin
.
high
()
self
.
spi
=
SPI
(
1
,
SPI
.
MASTER
,
baudrate
=
328125
,
polarity
=
0
,
phase
=
1
,
bits
=
8
)
def
rd
(
self
,
addr
,
nbytes
):
if
nbytes
>
1
:
addr
|=
READWRITE_CMD
|
MULTIPLEBYTE_CMD
else
:
addr
|=
READWRITE_CMD
self
.
cs_pin
.
low
()
self
.
spi
.
send
(
addr
)
buf
=
self
.
spi
.
send_recv
(
bytearray
(
nbytes
*
[
0
]))
# read data, MSB first
self
.
cs_pin
.
high
()
return
buf
def
wr
(
self
,
addr
,
buf
):
if
len
(
buf
)
>
1
:
addr
|=
MULTIPLEBYTE_CMD
self
.
cs_pin
.
low
()
self
.
spi
.
send
(
addr
)
for
b
in
buf
:
self
.
spi
.
send
(
b
)
self
.
cs_pin
.
high
()
def
read_id
(
self
):
return
self
.
rd
(
LIS302DL_WHO_AM_I_ADDR
,
1
)
def
init
(
self
,
init_param
):
self
.
wr
(
LIS302DL_CTRL_REG1_ADDR
,
bytearray
([
init_param
]))
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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