Commit Graph

51 Commits

Author SHA1 Message Date
Daniel Campora e3f8777ee8 cc3200: Implement new Pin API. 2015-09-10 07:59:03 +02:00
Daniel Campora 11d21081b4 cc3200: Rework SD API. Increase heap to avoid malloc failures. 2015-08-16 20:17:58 +02:00
Daniel Campora 7da2fdc3cd cc3200: On the first boot, always make AP ssid='wipy-wlan'.
On the first boot don't add the MAC address, this is to speed up
factory testing.
2015-08-09 22:16:45 +02:00
Daniel Campora 2673374d18 cc3200: Refactor PRCM special user bits implementation. 2015-08-09 22:15:18 +02:00
Daniel Campora aa58c7ec74 cc3200: Append last 2 bytes of the MAC address to the default SSID. 2015-07-30 00:43:16 +02:00
Daniel Campora f738424403 cc3200: Remove superflous assignment since the result is not used. 2015-07-15 14:45:24 +02:00
Daniel Campora 753a8e8bc4 cc3200: Create /flash/cert folder if it doesn't exist. 2015-07-15 14:25:35 +02:00
Daniel Campora e955089da0 cc3200: Implement new OTA mechanism with 2 firmware update slots. 2015-07-15 14:25:28 +02:00
Daniel Campora 5685b565c3 cc3200: Create /flash/sys and /flash/lib directories while booting. 2015-07-07 16:13:40 +02:00
Daniel Campora a3acaa000c cc3200: Add antenna selection feature to WLAN. 2015-06-07 00:06:27 +02:00
Daniel Campora d07de2d307 cc3200: Move the STDIO UART pin configuration to mpconfigboard.h. 2015-05-27 09:45:29 +02:00
Daniel Campora 95f19b4542 cc3200: Remove duplicated checks for boot.py and main.py existency. 2015-05-25 21:14:39 +02:00
Daniel Campora ed56b0baba cc3200: Finally unlock the full wake on WLAN feature set. 2015-05-22 19:53:33 +02:00
Daniel Campora e800db562f cc3200: Add uhashlib. Supports SHA1 and SHA256. 2015-05-20 11:44:24 +02:00
Daniel Campora 8e611e8414 cc3200: Add Timer module. Supports free running, PWM and capture modes. 2015-05-17 12:34:49 +02:00
Daniel Campora f54bdecff2 cc3200: Implement Sleep.wake_reason() 2015-05-03 11:21:14 +02:00
Daniel Campora 6f218d7472 cc3200: Move wlan_init0() to the boot section.
This one creates a semaphore, therefore it must be executed only
after a hard reset (or when coming out of hibernation).
2015-04-29 16:10:40 +02:00
Damien George 259eaab9a9 cc3200: Clean up and reduce use/include of std.h. 2015-04-18 14:29:28 +01:00
Daniel Campora 6e25d955f4 cc3200: Enable long filename support in FatFS.
This has implications all over the place. I have to admit that
you can instantly see that usability improves, but it costs 3K.
At the same time I took the oportunity to rename the '/SFLASH'
drive to '/flash' which improves compatibility with the pyboard.
2015-04-11 13:35:05 +02:00
Daniel Campora 18bd51707c cc3200: Enable the stdio UART for the LaunchXL only. 2015-04-07 12:12:16 +02:00
Daniel Campora c7acfc90b9 cc3200: Enable pull-ups for the STDIO UART pins. 2015-04-07 10:50:20 +02:00
Daniel Campora b9d850227d cc3200: Add WLAN AP specific settings for each board. 2015-04-04 22:09:55 +02:00
Daniel Campora d460a30711 cc3200: Add specific version file for the CC3200 port.
Current version has been numbered as 0.9.0 since Timers/PWM support
is still missing.
2015-03-31 14:34:09 +02:00
Daniel Campora 2d717ad97a cc3200: Add callback support to the UART for RX interrupts. 2015-03-26 10:28:43 +01:00
Daniel Campora 26d230419c cc3200: Add GPIO25 to the pins list of the WiPy and the WiPy-SD.
This allows to properly initialize the system led and add it
to the sleep module so that it can be restored when resuming
from suspended mode.
2015-03-25 15:22:32 +01:00
Daniel Campora e15f8198bc cc3200: Keep WLAN enabled during the soft reset. 2015-03-25 15:22:16 +01:00
danicampora 59f6831336 cc3200: Reduce soft reset time. WLAN is not reinit, just reenabled. 2015-03-21 11:31:29 +01:00
danicampora cd9bc14c8f cc3200: Add SPI module.
Only MASTER mode is supported. Transfer width is configurable to
8, 16 or 32 bits.
2015-03-21 11:26:47 +01:00
danicampora f8ee88bbe0 cc3200: Move server methods from WLAN to the network module. 2015-03-19 17:08:25 +01:00
danicampora 0e96d1b3f1 cc3200: Add parameter to wlan_stop() for custom timeout values. 2015-03-18 21:55:08 +01:00
danicampora 6de1b39368 cc3200: Make peripheral objects static.
This prevents duplication of objects in the sleep list. Also helps
with reducing the code size by ~100 bytes.
2015-03-17 13:26:07 +01:00
danicampora 2c103d5200 cc3200: Rewrite the PRCM RTC functionality methods.
This allows to use the On-Chip retention registers for both the
RTC and to share notification flags between the bootloader and the
application. The two flags being shared right now are the "safe boot"
request and the WDT reset cause. we still have 2 more bits free for
future use.
2015-03-14 10:08:47 +01:00
danicampora c7fabe1f3e cc3200: Remove unneeded code from modwlan and optimize startup time.
These changes also help reduce the hibernate wake-up time to 1s.
2015-03-14 10:08:43 +01:00
danicampora 9e44383e3f cc3200: Add power management framework. Add mpcallback class.
Supports suspend and hibernate modes. Waking is possible throug GPIO
and WLAN.
The mpcallback class is generic and can be reused by other classes.
2015-03-11 17:00:33 +01:00
danicampora 73aee8da54 cc3200: Merge ExtInt class into Pin class.
Also add another method to change the pin's interrupt mode
on the fly.
2015-03-11 17:00:28 +01:00
danicampora 26cbc91373 cc3200: Place functions only used while booting in a special section.
Such functions are never used after MicroPython has started, and they
remain in RAM wasting space. Now they are placed in a special section
named "boot" which sits just before the heap, allowing us to extend
the effective heap area up to the new boot section. Right now, this
gives us back ~1K, but in the future, more functions might end up in
there as well.
2015-03-11 16:59:29 +01:00
danicampora d226dd2f59 cc3200: Add preliminary low power deep sleep support. 2015-03-11 16:54:09 +01:00
danicampora d01060241a cc3200: Add heartbeat signal on system led. 2015-02-28 19:03:21 +01:00
danicampora 74589cbeeb cc3200: Move code that disables/enables servers to wlan_sl_enable(). 2015-02-26 11:19:15 +01:00
danicampora 7a074a14ce cc3200: Implement safe boot pin and system led behaviour.
The safe boot pin, when pulled high during reset rolls back the
firmware to the "factory" image and skips execution of 'boot.py'
and 'main.py'. This is useful to recover from a crash condition.
The system led is used mostly to signal errors.
2015-02-25 23:17:17 +01:00
danicampora 11aa6ba456 cc3200: Add WDT functionality as part of the pyb module.
Also improve pybsd, and make it save it's pin configuration.
This is a necessary step towards supporting the CC3200 low
power deep sleep (LPDS) mode.
2015-02-25 11:37:29 +01:00
danicampora 88b7f52ebb cc3200: Replace WLAN.get_ip() with WLAN.ifconfig().
Also change other methods' names to make them consistent.
2015-02-23 15:02:55 +01:00
danicampora 33ddb566a7 cc3200: Remove dependencies from FreeRTOS.
Use the simplelink wrappers instead. This is one step further
towards having a single module for the cc3200 and the cc3100.
2015-02-22 17:50:50 +01:00
Damien George 4a23a01945 cc3200: Add explicit py/ path-prefix for py includes.
This is how it should be, so one knows exactly where the includes are
coming from.
2015-02-21 18:58:43 +00:00
danicampora c020109cfa cc3200: Add SD module and disable SD card support for the LAUNCHXL. 2015-02-21 14:19:40 +01:00
danicampora 6b21c3fdd6 cc3200: Refactor UART and I2C object creation.
I2C objects can be freed by the GC and a __del__ method is provided
in order to de-init the peripheral prior to being garbage collected.
UART objects are now added to a local list and this list is now part
of the VM_STATE.
2015-02-20 16:41:55 +01:00
danicampora 99f3f6b5de cc3200: Add I2C module. Only master mode is currently supported. 2015-02-13 17:54:04 +01:00
Damien George 0b32e50365 stmhal: Make pybstdio usable by other ports, and use it.
Now all ports can use pybstdio.c to provide sys.stdin/stdout/stderr, so
long as they implement mp_hal_stdin_* and mp_hal_stdout_* functions.
2015-02-13 15:04:53 +00:00
danicampora 53716fcc3e cc3200: Rename GPIO module to Pin.
This change helps making the cc3200 port API a bit closer to stmhal.
The ramaining differences are due to the specific hardware details
of each chip. One feature that has been deliberately disabled is the
possibility to add custom names and custom pin mappings. Those
features are nice and convenient, but in this port, code size is a
major concern.
2015-02-09 20:01:54 +01:00
Damien George 0bfc7638ba py: Protect mp_parse and mp_compile with nlr push/pop block.
To enable parsing constants more efficiently, mp_parse should be allowed
to raise an exception, and mp_compile can already raise a MemoryError.
So these functions need to be protected by an nlr push/pop block.

This patch adds that feature in all places.  This allows to simplify how
mp_parse and mp_compile are called: they now raise an exception if they
have an error and so explicit checking is not needed anymore.
2015-02-07 18:33:58 +00:00