Commit Graph

209 Commits

Author SHA1 Message Date
Daniel Campora a0a3de60be cc3200: Translate simplelink's socket error numbers to POSIX values. 2015-07-07 16:13:54 +02:00
Daniel Campora fa655ce196 cc3200: Improve interrupt handling and fix bug in HAL_Delay(). 2015-07-07 16:11:05 +02:00
Daniel Campora c030e77861 cc3200: Enable base64 methods from modubinascii. 2015-07-04 16:33:54 +02:00
Daniel Campora 31b40eebe8 cc3200: Fix socket recv and recvfrom return value type. 2015-07-02 23:17:22 +02:00
Daniel Campora 5161239c9f cc3200: time.sleep() now receives seconds, like CPython. 2015-07-02 17:23:22 +02:00
Daniel Campora 9a65fa304c cc3200: Add modussl, ssl sockets subclassed from normal sockets.
Stream methods were added to normal sockets as in the unix port.
2015-07-02 16:30:00 +02:00
Daniel Campora 7c1c9af5d4 cc3200: Code clean-up on pybpin. 2015-07-02 16:29:51 +02:00
Daniel Campora 4f8eeaedef cc3200: Set WLAN date/time via the rtc.datetime method().
WLAN needs time info when validating certificates.
2015-07-02 16:29:43 +02:00
Daniel Campora d680e28a11 cc3200: Optimize check for WLAN AP mode. 2015-07-02 16:15:59 +02:00
Daniel Campora 7fd538c1b6 cc3200: Raise an exception if trying to scan for networks in AP mode. 2015-07-02 15:03:58 +02:00
Daniel Campora f522849a4d cc3200: Add socket.timeout and socket.error exceptions. 2015-07-02 11:53:15 +02:00
Daniel Campora 5ebf39784a cc3200: Correct socket settimeout time format. 2015-06-29 11:01:11 +02:00
Daniel Campora 813b581127 cc3200: Add `Pin.name()` method. 2015-06-28 14:14:22 +02:00
Daniel Campora ea2cc2b907 docs: Add more documentation for the CC3200 in the pyb module. 2015-06-16 15:45:24 +02:00
Daniel Campora cdfa11f550 cc3200: In Timer.callback() only use value param if in edge count mode. 2015-06-16 15:34:46 +02:00
Daniel Campora b630de1103 cc3200: Rename os.mkdisk() to os.mkfs(). 2015-06-10 23:35:45 +02:00
Daniel Campora 1811c6bccf cc3200: Remove Timer.AB constant.
Timer.A and Timer.B can be ORed for this purpose.
2015-06-10 23:35:43 +02:00
Daniel Campora e2dc7ac2a9 cc3200: Clarify notes about the extended functionality of uhashlib. 2015-06-10 23:35:41 +02:00
Daniel Campora 95cc1ff542 cc3200: Re-name pyb.hard_reset() to pyb.reset(). 2015-06-10 23:35:40 +02:00
Daniel Campora 330e21c986 cc3200: Use the pull up/down resistors on the antenna selection pins. 2015-06-10 23:35:38 +02:00
Daniel Campora 3319780e96 cc3200: Add sendbreak method to the UART. 2015-06-10 23:35:35 +02:00
Daniel Campora 8a6d93aeed cc3200: Make UART API more similar to stmhal. 2015-06-10 23:35:33 +02:00
Daniel Campora 640d00ea9d cc3200: Change MP_OBJ_NULL for mp_const_none in params default value. 2015-06-10 23:35:32 +02:00
Daniel Campora 071d47fa3b cc3200: Only kick the WDT if it's actually running. 2015-06-10 23:35:30 +02:00
Daniel Campora 6148f8b7d2 cc3200: Add contructor to the HeartBeat class. 2015-06-10 23:35:28 +02:00
Daniel Campora 371f4ba6b3 cc3200: Wrap antenna_init0() with #if MICROPY_HW_ANTENNA_DIVERSITY. 2015-06-08 10:38:19 +02:00
Daniel Campora 491c321720 cc3200: Re-config antenna selection when waking from suspended mode. 2015-06-07 13:28:47 +02:00
Daniel Campora a3acaa000c cc3200: Add antenna selection feature to WLAN. 2015-06-07 00:06:27 +02:00
Daniel Campora a3cf4ea2f6 cc3200: Do not kick the watchdog inside the idle task. 2015-06-04 10:13:55 +02:00
Daniel Campora cc20482aa9 cc3200: Add method to configure the servers timeout.
With network.server_timeout(secs) the timeout can be changed.
The default value is 300 secs. Minimmum accpeted is 5 secs.
Without params the function returns the current configured timeout.
2015-06-03 17:31:21 +02:00
Daniel Campora 2ffb6e1b15 cc3200: Fix 'MP_QSTR_sd' undeclared error when building for the LAUNCHXL. 2015-06-02 13:11:01 +02:00
Daniel Campora 84d11b5e53 cc3200: Add period set method to the Timer class. 2015-05-29 15:54:46 +02:00
Daniel Campora 417205623a cc3200: Fix incorrect type for the wake cause variable. 2015-05-29 15:54:16 +02:00
Daniel Campora 2f2c0a13fb cc3200: Clean up WLAN API. Make WLAN.info() an attrtuple. 2015-05-29 15:48:41 +02:00
Daniel Campora 622f241317 cc3200: Rename pyb.reset() to pyb.hard_reset() and add pyb.unique_id(). 2015-05-29 10:22:20 +02:00
Daniel Campora 2abb58d758 cc3200: Rename Pin.get_config() to Pin.info(). 2015-05-28 13:10:46 +02:00
Daniel Campora 1580e331ef cc3200: Make small changes in WLAN to improve the API. 2015-05-28 13:10:44 +02:00
Daniel Campora c754d8011d cc3200: Simplify SPI polarity and phase checks in constructor. 2015-05-27 09:45:32 +02:00
Daniel Campora 9414f92fa9 cc3200: Fix I2C and SPI module references. 2015-05-27 09:45:27 +02:00
Daniel Campora 8096be089e cc3200: Add make_new method to the WDT. 2015-05-27 09:45:25 +02:00
Daniel Campora fca3493442 cc3200: Add make_new method to the RTC, like in stmhal. 2015-05-27 09:45:24 +02:00
Daniel Campora 5a0c5f8fea cc3200: Use the WDT stall feature in debug mode only. 2015-05-27 09:45:22 +02:00
Daniel Campora ec1f0e7551 cc3200: Use MCU reset instead of SOC reset.
I have seen the CC3200 hanging a couple of times, and according to TI
itself the SOC reset is not reliable, which explains my observations.
2015-05-27 09:45:21 +02:00
Daniel Campora fabe79f7af cc3200: Clean up exception handling. 2015-05-26 12:29:20 +02:00
Daniel Campora 124aa000af cc3200: Use polarity and phase instead of submode in the SPI construct. 2015-05-26 11:30:48 +02:00
Daniel Campora 2dd47239de cc3200: Make API more similar to stmhal.
In general the changes are:

1. Peripheral (UART, SPI, ADC, I2C, Timer) IDs start from 1, not zero.
2. Make I2C and SPI require the ID even when there's only one bus.
3. Make I2C and SPI accept 'mode' parameter even though only MASTER
   is supported.
2015-05-25 21:47:19 +02:00
Daniel Campora 6545336206 cc3200: Make the WDT aware of the servers sleep/wake state. 2015-05-25 21:14:54 +02:00
Daniel Campora 5cd34aca27 cc3200: Use the correct ADC channel index when creating the object. 2015-05-25 21:14:46 +02:00
Daniel Campora 3cb804de26 cc3200: Remove NIC abstraction layer.
That layer is nice, but the CC3200 doesn't need it and getting rid of
it saves ~200 bytes, which are more than welcome.
2015-05-24 11:44:08 +02:00
Daniel Campora 9f8c5456be cc3200: Reset the servers and close user sockets on WLAN disconection.
This is needed to avoid half-open connections.
2015-05-24 11:44:06 +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 18030bd85d cc3200: Add own ubinascii module.
The reason to have our owm ubinascii module is so that later we
can add crc32 support using the hardware engine.
2015-05-22 09:56:11 +02:00
Daniel Campora 7506db4ccb cc3200: Remove uhashlib.hexdigest(). 2015-05-21 18:51:57 +02:00
Daniel Campora e800db562f cc3200: Add uhashlib. Supports SHA1 and SHA256. 2015-05-20 11:44:24 +02:00
Daniel Campora 5e38b48dd6 cc3200: Fix time.localtime() so that it returns the correct fields. 2015-05-20 11:44:22 +02:00
Daniel Campora 56053c37cf cc3200: Rewrite WLAN.ifconfig(). Add WLAN.info() and WLAN.connections(). 2015-05-20 11:44:21 +02:00
Daniel Campora 6f848b6dba cc3200: Set the timer edge count interrupt value in the calbback const. 2015-05-17 16:11:12 +02:00
Daniel Campora 95a4f61499 cc3200: Make sure RTC wake value is >= 1ms. 2015-05-17 16:09:27 +02:00
Daniel Campora c27dc38e85 cc3200: Re-name 'intmode' to 'mode' in the callback API. 2015-05-17 14:49:17 +02:00
Daniel Campora cd3f2523f1 cc3200: Disable WLAN.urn() by default.
Can be enabled by defining MICROPY_PORT_WLAN_URN=1 in mpconfigport.h.
2015-05-17 14:20:24 +02:00
Daniel Campora a379b6ed11 cc3200: Add optional timeout param to WLAN.connect(). 2015-05-17 14:05:44 +02:00
Daniel Campora fb9e4cf463 cc3200: Make sure to handle all pending pin interrupts.
When entering the interrupt handler of a given GPIO port, more than
one pin could have pending interrupts, therefore care must be taken
to service each interrupt one by one before leaving.
2015-05-17 13:42:15 +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 9466e154b4 cc3200: Fix power mode param check in the UART callback constructor. 2015-05-17 12:26:40 +02:00
Daniel Campora 2b62707051 cc3200: Add os.rename() 2015-05-17 12:22:17 +02:00
Josef Gajdusek 1db4253886 lib: Move time utility functions to common library. 2015-05-13 00:12:54 +01:00
Damien George c50772d19f py: Add mp_obj_get_int_truncated and use it where appropriate.
mp_obj_get_int_truncated will raise a TypeError if the argument is not
an integral type.  Use mp_obj_int_get_truncated only when you know the
argument is a small or big int.
2015-05-12 23:05:53 +01:00
Josef Gajdusek 04ee5983fe lib: Move some common mod_network_* functions to lib/netutils. 2015-05-04 11:48:40 +01:00
Daniel Campora 8c8d7f3c60 cc3200: Clean up pyb.Pin
Remove unused and unneeded functions, also create Pin.get_config() that
returns the whole configuration of the pin.

This reduces code size by ~500 bytes.
2015-05-03 11:26:56 +02:00
Daniel Campora e4c899a08c cc3200: WLAN.ifconfig returns an attrtuple instead of a dictionary. 2015-05-03 11:26:25 +02:00
Daniel Campora f54bdecff2 cc3200: Implement Sleep.wake_reason() 2015-05-03 11:21:14 +02:00
Daniel Campora 71d482df47 cc3200: Clear the pending interrupt flag when disabling RTC callbacks. 2015-05-03 11:21:12 +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
Daniel Campora d8713d78f5 cc3200: Correct Sleep module name. Must be 'Sleep', not 'sleep'. 2015-04-29 15:27:28 +02:00
Daniel Campora dbb4aef5e3 cc3200: Make WLAN.isconnected() also work in AP mode.
While in STA mode isconnected() returns True when connected to an AP
and the IP has been acquired. In AP mode, WLAN.isconnected() returns
True if at least one connected station is present.
2015-04-29 15:26:21 +02:00
Damien George 95f53461c2 py: Replace py-version.sh with makeversionhdr.py, written in Python.
Also rename py-version.h to mpversion.h for consistency with mpconfig.h.
2015-04-28 23:52:36 +01:00
Daniel Campora d11317bcab cc3200: Make WLAN scan results a list of attrtupple.
Each result is displayed like this:

ssid='MySSID', bssid=b'\xc0J\x00z.\xcc', security=2, channel=None, rssi=-74

The CC3200 doesn't provide channel info, that why is 'None'.
2015-04-29 00:04:01 +02:00
Daniel Campora f81684141e cc3200: Implement os.uname() to get details of the OS and hardware. 2015-04-29 00:03:56 +02:00
Daniel Campora d34c4784a5 cc3200: Select NIC when the socket is created.
This makes sense since only WLAN is supported here.
2015-04-28 15:14:36 +02:00
Daniel Campora 7c8b4c1a8b cc3200: Correct MAKE_SOCKADDR and UNPACK_SOCKADDR byte order. 2015-04-25 23:36:45 +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 c1a77a0c9f cc3200: Use new %q format to print qstr's where appropiate. 2015-04-17 10:15:55 +02:00
Damien George 7f9d1d6ab9 py: Overhaul and simplify printf/pfenv mechanism.
Previous to this patch the printing mechanism was a bit of a tangled
mess.  This patch attempts to consolidate printing into one interface.

All (non-debug) printing now uses the mp_print* family of functions,
mainly mp_printf.  All these functions take an mp_print_t structure as
their first argument, and this structure defines the printing backend
through the "print_strn" function of said structure.

Printing from the uPy core can reach the platform-defined print code via
two paths: either through mp_sys_stdout_obj (defined pert port) in
conjunction with mp_stream_write; or through the mp_plat_print structure
which uses the MP_PLAT_PRINT_STRN macro to define how string are printed
on the platform.  The former is only used when MICROPY_PY_IO is defined.

With this new scheme printing is generally more efficient (less layers
to go through, less arguments to pass), and, given an mp_print_t*
structure, one can call mp_print_str for efficiency instead of
mp_printf("%s", ...).  Code size is also reduced by around 200 bytes on
Thumb2 archs.
2015-04-16 14:30:16 +00:00
Daniel Campora f7a26472af cc3200: Add IPPROTO_SEC to be able to create secure sockets. 2015-04-14 01:57:27 +02:00
Daniel Campora c69b4310c8 cc3200: Add WLAN.config_ip().
This new method allows to assign an static IP to the device.
2015-04-13 00:02:56 +02: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 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 3f42f32648 cc3200: Remove duplicated code from moduos.
Error reporting is also changed from detailed to terse, as with the
rest of the CC3200's modules. All this combined saves ~200 bytes.
2015-03-31 14:34:07 +02:00
Daniel Campora 760a6eca9b cc3200: Minor refactorings on modwlan and pybsleep. 2015-03-26 14:27:21 +01:00
Daniel Campora 4be44014ab cc3200: Reenable active interrupts when waking from suspended mode. 2015-03-26 13:58:58 +01:00
Daniel Campora 2d717ad97a cc3200: Add callback support to the UART for RX interrupts. 2015-03-26 10:28:43 +01:00
Daniel Campora e909e38871 cc3200: Remove superflous parameters from the SPI API. 2015-03-26 10:28:41 +01:00
Daniel Campora 7f41f650de cc3200: Remove superflous params from the I2C API. 2015-03-25 16:56:14 +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 684dba40f0 cc3200: Roll back to the previous telnet and ftp timeouts.
Unfortunately, these timeouts are the only realiable way (for now), to
be able to detect broken connections due to half-open sockets. Such a
thing occurs when getting out of the WiFi coverage area or when
disconnecting from the AP (sometimes the client doesn't send the
disconnect packet).
2015-03-25 15:22:21 +01:00
Daniel Campora e15f8198bc cc3200: Keep WLAN enabled during the soft reset. 2015-03-25 15:22:16 +01:00
danicampora 104a867447 cc3200: Fix bug in telnet that caused the rx buffer to overflow. 2015-03-22 11:32:12 +01:00
danicampora 59f6831336 cc3200: Reduce soft reset time. WLAN is not reinit, just reenabled. 2015-03-21 11:31:29 +01:00
danicampora 77791b5633 cc3200: Improve usability and robustness of the servers. 2015-03-21 11:31:17 +01:00
danicampora c1c23e2f6a cc3200: Remove superfluous code in pybsleep. 2015-03-21 11:27:26 +01:00