Commit graph

10162 commits

Author SHA1 Message Date
George Oikonomou 1cf37e0c1a Tidy-up code style 2015-05-15 23:36:54 +01:00
George Oikonomou 7ae3cd49ba Make sure SSI0 is powered and clocked before accessing it
* Fail all SSI0 operations if the module is not powered and clocked
* Make sure SERIAL is powered before trying to enable run mode clock
2015-05-15 11:38:20 +01:00
George Oikonomou 78d04f812b Fix typo in macro 2015-05-15 09:21:05 +01:00
George Oikonomou 7e00eeb76a Achieve lowest consumption with the CC26xx demo:
This changes the CC26xx simple demo so that a devices running this firmware will achieve the lowest possible energy consumption without requiring any changes to the example
2015-05-15 09:21:05 +01:00
George Oikonomou 019143226b Adjust main:
* Re-order OSC, VIMS cache, I/O latch configuration instructions
* Don't automatically enable UART RX: Let the example decide this
2015-05-15 09:21:04 +01:00
George Oikonomou 07272b7cd6 Improve UART power-cycling logic:
* Only enable TX by default.
* Add some magic for RX handling. When an input handler is registered:
  * Automatically enable RX-related and interrupts
  * Automatically lock the SERIAL PD on under all power modes
  * Automatically enable the UART clock under sleep and deep sleep
  * Automatically undo all of the above when the input handler becomes NULL
  * As a result, modules / examples that need UART RX no longer need to clock the UART and manipulate the SERIAL PD. They simply have to specify an input handler
* Don't automatically power on the UART whenever the CM3 is active
* Before accessing the UART, make sure it is powered and clocked
* Avoid falling edge glitches
* Fix garbage characters / Explicitly wait for UART TX to complete
2015-05-15 09:21:04 +01:00
George Oikonomou 34f52ed08e Improve the LPM module:
* Implement new style of PD locks
* Use our own shutdown sequence rather than the one provided by cc26xxware
* Shutdown from within the interrupt that requested it. This allows shutdown to take place even if the code is stuck in a loop somewhere else
* Improve DCDC/GLDO/uLDO switching logic
* Explicitly handle oscillators and retentions
2015-05-15 09:21:04 +01:00
George Oikonomou 6e7d52b5df Improve MPU power-cycling logic:
* 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
2015-05-15 09:21:04 +01:00
George Oikonomou eb5b11a85a Re-order instructions in the RTC startup sequence 2015-05-15 09:21:03 +01:00
George Oikonomou dcf0d11050 Re-map tag UART-related IOID defines 2015-05-15 09:21:03 +01:00
George Oikonomou 2cc59c524a Configure pins for unused tag peripherals 2015-05-15 09:21:03 +01:00
George Oikonomou e893c914b6 Set SPI pins to a low leakage state 2015-05-15 09:21:03 +01:00
George Oikonomou 421fbfae25 Change the LPM locks API:
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
2015-05-15 09:21:02 +01:00
George Oikonomou b3ac3ac0c1 Add function to unregister a module from LPM 2015-05-15 09:21:02 +01:00
George Oikonomou 0e92b508b3 Don't clock GPT0 on device startup 2015-05-15 09:21:02 +01:00
George Oikonomou 6611acadc7 Don't fire-up SERIAL automatically 2015-05-15 09:21:02 +01:00
George Oikonomou 34be012661 Improve I2C power-cycling logic:
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
2015-05-15 09:21:02 +01:00
George Oikonomou 0ad4b5f323 Add the ability to put the I2C in a known/default state 2015-05-15 09:21:01 +01:00
George Oikonomou d1a1c16bd0 Define pins for more sensortag peripherals 2015-05-15 09:21:01 +01:00
George Oikonomou 4378217462 Improve sensortag external flash power management:
* 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
2015-05-15 09:21:01 +01:00
George Oikonomou cf99160706 Change lpm_shutdown() API call:
So that the caller can specify pin pull and wakeup state
2015-05-15 09:21:01 +01:00
George Oikonomou 5644e95fb6 Fix global interrupt manipulation 2015-05-15 09:21:00 +01:00
George Oikonomou bd79e18e1e Switch between oscillator's using the dedicated module's functions 2015-05-15 09:21:00 +01:00
George Oikonomou ad52d68a0c Add function to configure a pin to a default state 2015-05-15 09:21:00 +01:00
George Oikonomou 3877190196 Change function to static 2015-05-15 09:21:00 +01:00
George Oikonomou 3f310e462f Tidy-up clock configuration 2015-05-15 09:20:59 +01:00
George Oikonomou 450550a7d1 Explicitly configure Srf pins for unused peripherals 2015-05-15 09:20:59 +01:00
George Oikonomou 7a189d010b Don't power on SERIAL in the Srf's board_init 2015-05-15 09:20:59 +01:00
George Oikonomou 00a6c31158 Improve OPT sensor driver and usage
* 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
2015-05-15 09:20:59 +01:00
George Oikonomou 3ab1b836c4 Configure button pins with hysterisis 2015-05-15 09:20:58 +01:00
George Oikonomou 7641aa89f2 Tidy-up macro semicol usage 2015-05-15 09:20:58 +01:00
George Oikonomou 0b6813513c Undefine CTS/RTS pins for the SmartRF 2015-05-15 09:20:58 +01:00
George Oikonomou 883c30b4ac Handle the configuration of the TMP_RDY pin 2015-05-15 09:20:58 +01:00
George Oikonomou cee6c190c5 Use the BMP in 'forced' mode and reduce startup delay
In forced mode, the BMP will turn itself off after a reading
2015-05-15 09:20:57 +01:00
George Oikonomou 3bbf3cc435 Add SysCtrl glue macros 2015-05-15 09:20:57 +01:00
George Oikonomou 8a42af682d Make sure PERIPH is on before accessing GPT registers 2015-05-15 09:20:57 +01:00
George Oikonomou 9d97dee00b Clock the GPT module only when we need it 2015-05-15 09:20:57 +01:00
George Oikonomou b7e7d48f0b Add oscillator control wrappers 2015-05-15 09:20:56 +01:00
Antonio Lignan b50ae639b3 Merge pull request #986 from g-oikonomou/cc26xx-hdc-sensor
Replace STH21 with HDC1000 for the CC2650 SensorTag
2015-05-15 10:12:08 +02:00
Benoît Thébaudeau c9324d133f Merge pull request #1060 from g-oikonomou/cc26xx/contrib/ihex
Produce ihex files usable with TI's Flash Programmer
2015-05-14 19:24:36 +02:00
Benoît Thébaudeau d64927397f Merge pull request #968 from g-oikonomou/cc2538-contrib-on-chip-sensors
Move CC2538 VDD/3 and On-Chip Temp sensors to the CPU dir
2015-05-14 19:21:56 +02:00
Benoît Thébaudeau 71f22b1775 Merge pull request #966 from g-oikonomou/cc2538-startup-to-cpu-dir
Move cc2538 startup-gcc.c to the CPU dir
2015-05-14 18:43:39 +02:00
George Oikonomou e8c43d27d4 Download srecord for arm aapcs tests 2015-05-14 16:52:49 +01:00
George Oikonomou 69c4f19336 Produce ihex files usable with TI's Flash Programmer 2015-05-14 13:22:11 +01:00
George Oikonomou 6507112b33 Remove SHT21 sources 2015-05-14 13:20:40 +01:00
George Oikonomou e4722bb0ea Replace SHT21 with HDC1000 in the web demo 2015-05-14 13:20:39 +01:00
George Oikonomou 62f978b993 Replace SHT21 with HDC1000 in the simple demo 2015-05-14 13:20:39 +01:00
George Oikonomou d5f458509d Adjust the CC26xx README to reflect new sensors 2015-05-14 13:20:39 +01:00
George Oikonomou 1384030d6e Replace SHT21 with HDC1000 driver in the tag build 2015-05-14 13:20:39 +01:00
George Oikonomou 7e3b8d6fcc Add a driver for the HDC1000 sensor 2015-05-14 13:20:39 +01:00