Commit Graph

10157 Commits

Author SHA1 Message Date
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
Nicolas Tsiftes
540838be94 Merge pull request #1067 from simonduq/fix-rpl-dag-printf
rpl_print_neighbor_list(): cast clock_time_t to unsigned for portable printout
2015-05-13 16:07:54 +02:00
George Oikonomou
a32598f658 Merge pull request #1059 from g-oikonomou/cc26xx/contrib/xxware-instructions
Update CC26xxware download instructions
2015-05-13 12:21:48 +01:00
Fredrik Österlind
9261ff5d13 Merge pull request #979 from TheGeorge/drifting-motes
Time Drifting Motes
2015-05-13 11:21:34 +02:00
Simon Duquennoy
fc178dab87 rpl_print_neighbor_list(): cast clock_time_t to unsigned for portable printout 2015-05-13 09:03:40 +02:00
George Oikonomou
f7baf5aba2 Change CC2538 USB and UART handlers to weak 2015-05-13 01:31:26 +01:00