aboutsummaryrefslogtreecommitdiff
path: root/cc3200/mods/pybi2c.c
AgeCommit message (Collapse)Author
2017-09-06ports: Make new ports/ sub-directory and move all ports there.Damien George
This is to keep the top-level directory clean, to make it clear what is core and what is a port, and to allow the repository to grow with new ports in a sustainable way.
2017-08-30all: Convert remaining "mp_uint_t n_args" to "size_t n_args".Damien George
This is to have consistency across the whole repository.
2017-08-21all: Make static dicts use mp_rom_map_elem_t type and MP_ROM_xxx macros.Damien George
2017-07-31all: Use the name MicroPython consistently in commentsAlexander Steffen
There were several different spellings of MicroPython present in comments, when there should be only one.
2017-04-18cc3200/mods/pybi2c: Make readfnom_mem_into/writeto_mem return None.Damien George
This aligns the I2C class to match the standard machine.I2C API. Note that this is a (small) breaking change to the existing cc3200 API. The original API just returned the size of the input buffer so there's no information lost by this change. To update scripts users should just use the size of the buffer passed to these functions to get the number of bytes that are read/written.
2017-04-18cc3200/mods/pybi2c: Make machine.I2C constructor/init conform to HW API.Damien George
This is a user-facing change to the cc3200's API, to make it conform to the new machine hardware API. The changes are: - change I2C constructor to: I2C(id=0, *, freq=100000, scl=None, sda=None) - change I2C init to: init(*, freq, scl, sda) - removal of machine.I2C.MASTER constant - I2C str/repr no longer prints I2C.MASTER To update existing code it should be enough to just remove the I2C.MASTER constant from contructor/init for I2C.
2017-03-29cc3200/mods/pybi2c: Raise OSError if readfrom_mem fails to write addr.Damien George
2017-02-22cc3200: When raising OSError's use MP_Exxx as arg instead of a string.Damien George
2017-01-04all: Consistently update signatures of .make_new and .call methods.Paul Sokolovsky
Otherwise, they serve reoccurring source of copy-paste mistakes and breaking nanbox build.
2016-10-18cc3200: Use mp_raise_XXX helper functions to reduce code size.Damien George
Reduces code size by 632 bytes.
2016-05-02stmhal, cc3200: Change i2c.scan() method to scan addresses 0x08-0x77.Damien George
A standard I2C address is 7 bits but addresses 0b0000xxx and 0b1111xxx are reserved. The scan() method is changed to reflect this, along with the docs.
2016-02-21cc3200: Improve robustness of the I2C driver.danicampora
When scanning for devices, try reading then writing. Increase the timeout of the transactions from 10 to 20 ms.
2016-01-11py: Change first arg of type.make_new from mp_obj_t to mp_obj_type_t*.Damien George
The first argument to the type.make_new method is naturally a uPy type, and all uses of this argument cast it directly to a pointer to a type structure. So it makes sense to just have it a pointer to a type from the very beginning (and a const pointer at that). This patch makes such a change, and removes all unnecessary casting to/from mp_obj_t.
2015-10-31all: Add py/mphal.h and use it in all ports.Damien George
py/mphal.h contains declarations for generic mp_hal_XXX functions, such as stdio and delay/ticks, which ports should provide definitions for. A port will also provide mphalport.h with further HAL declarations.
2015-09-27cc3200: Rename pyb module to machine.Daniel Campora
2015-09-27cc3200/mods: Use mp_obj_get_array_fixed_n() where applicable.Daniel Campora
2015-09-27cc3200: New WLAN API including test.Daniel Campora
2015-09-21cc3200: New SD and RTC API plus os and time modules' extensions.Daniel Campora
2015-09-16tests/wipy: Improve I2C tests.Daniel Campora
2015-09-16docs/wipy: Add pins to the I2C constructor.Daniel Campora
2015-09-16cc3200: Default peripheral ID support on I2C.Daniel Campora
2015-09-10tests/wipy: Add I2C tests.Daniel Campora
2015-09-10cc3200: New I2C API.Daniel Campora
2015-09-10cc3200: Remove I2C inline documentation (sphinx is on the lead).Daniel Campora
2015-08-02cc3200: Make I2C and SPI API the same as in stmhal.Daniel Campora
2015-06-10cc3200: Change MP_OBJ_NULL for mp_const_none in params default value.Daniel Campora
2015-05-27cc3200: Fix I2C and SPI module references.Daniel Campora
2015-05-26cc3200: Clean up exception handling.Daniel Campora
2015-05-25cc3200: Make API more similar to stmhal.Daniel Campora
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-04-16py: Overhaul and simplify printf/pfenv mechanism.Damien George
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-03-26cc3200: Add callback support to the UART for RX interrupts.Daniel Campora
2015-03-25cc3200: Remove superflous params from the I2C API.Daniel Campora
2015-03-21cc3200: Add SPI module.danicampora
Only MASTER mode is supported. Transfer width is configurable to 8, 16 or 32 bits.
2015-03-18cc3200: Refactor I2C. Remove all references to SLAVE mode.danicampora
2015-03-18cc3200: Improve I2C timeout handling.danicampora
2015-03-17cc3200: Make peripheral objects static.danicampora
This prevents duplication of objects in the sleep list. Also helps with reducing the code size by ~100 bytes.
2015-03-17cc3200: Remove unneeded functions and add pybsleep_remove() calls.danicampora
2015-03-11cc3200: Register ADC and I2C with the sleep module.danicampora
2015-02-25cc3200: Add WDT functionality as part of the pyb module.danicampora
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-21cc3200: Add explicit py/ path-prefix for py includes.Damien George
This is how it should be, so one knows exactly where the includes are coming from.
2015-02-20cc3200: Refactor UART and I2C object creation.danicampora
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-13cc3200: Add I2C module. Only master mode is currently supported.danicampora