This commit creates a `common` directory, aimed to host drivers supported by multiple boards of the CC13xx/CC26xx family.
We move the Sensortag SPI and External Flash drivers to this location and we change the Sensortag build system to pull the respective files from therein.
The driver currently supports two Winbond external flash parts with identical instruction sets. The instruction set of the Macronix MX25R8035F appears to be a superset. We therefore change the driver to add the MID/DID of the Macronix to the list of supported parts.
This will subsequently allow us to share the same driver for both the SensorTag and the CC2650 LauchPad.
This is to prevent a compile error caused by function prototype conflict between a function called `select()` (present in a number of sensortag peripheral drivers) and the one in `sys/select.h`. The error manifests itself with gcc-arm-embedded version 5.2.1 20151202 (2015-q4).
To fix the error we simply rename our function.
Fixes#1434
This commit fixes nearly all of the reported doxygen warnings.
I tried to not clutter the log with removed trailing spaces.
Removed whitespace and converted tab/spaces for all files affected by this commit
are in a separate branch.
For the SPI
* We improve the return semantics of _read() and _write()
* We set speed based on the value returned from ti_lib_sys_ctrl_clock_get() instead of using a hard-coded value
External flash changes:
* Rename macros to match instruction names
* verify_part(): Return a different value when the device is powered down and when communication fails
* Change return value semantics of static functions
* Adjust checks of board_spi_ return values
* Wait for BUSY to clear before attempting to send PD
* Accept two possible flash parts: W25X40CL (4MBit) as well as the W25X20CL (2MBit)
This commit updates the srf06-cc26xx platform by adding support for the CC1310EM.
We generalise the way this platform selects CPU/board so that we can easily add more combinations in the future. These changes have implication on how to build for different devices, so make sure to have a look at the updated README
* Keep MPU_PWR low when the sensor is not in use
* Deselect the sensor when not in use, in order to restore the I2C ping state
* Explicitly control the MPU_INT pin
* Don't shutdown the sensor when it's shut down
* Remove explicit shutdown-related API extension. It is no longer required
Instead of using a separate data structure to request that a PD remain powered during deep sleep,
we do the same within the main LPM data structure through an additional field.
This allows us to maintain only one linked list of LPM modules and overall improves code clarity
We only power, clock and enable the peripepheral when / if we need it
* We no longer automatically turn on the SERIAL PD when the CM3 is running
* Make sure the I2C peripheral is accessible (powered and clocked) before any operation
* If the peripheral is not accessible, automatically power it up and run the clock
* Put SDA, SCL, SDA HP and SCL HP in a low-leakage state when shutting down
* Don't automatically fire up the I2C controller when we wake up
* Explicitly put in deep sleep on device startup
* Verify that the flash has actually dropped to deep sleep
* Update CLK pin to match the one used on the v1.2 sensortag
Obsoletes and Closes#988
* Query the sensor about its state, rather than using variables in the driver
* Correctly put the sensor to deep sleep
* Fix doxygen comments
* Don't turn off the sensor in examples since it is no longer needed