Commit Graph

8703 Commits

Author SHA1 Message Date
Damien George 5ddd1488bd stm32/spi: Allow SPI peripheral state to persist across a soft reset.
The SPI sub-system is independent from the uPy state (eg the heap) and so
can safely persist across a soft reset.  And this is actually necessary for
drivers that rely on SPI and that also need to persist across soft reset
(eg external SPI flash memory).
2018-02-02 19:01:11 +11:00
Damien George 57d2ac1300 stm32/rng: Simplify RNG implementation by accessing raw peripheral regs.
It saves code size and RAM, and is more efficient to execute.
2018-02-02 18:22:57 +11:00
Damien George 762db9ad2f stm32/spi: Add support for a board naming SPI peripherals 4, 5 and 6. 2018-02-02 17:44:05 +11:00
liamkinne 618aaa4a53 stm32/i2c: Use macros instead of magic numbers for I2C speed grades. 2018-02-02 12:15:05 +11:00
Damien George db702ba722 stm32/usbdev: Add support for high-speed USB device mode.
This patch adds support in the USBD configuration and CDC-MSC-HID class for
high-speed USB mode.  To enable it the board configuration must define
USE_USB_HS, and either not define USE_USB_HS_IN_FS, or be an STM32F723 or
STM32F733 MCU which have a built-in HS PHY.  High-speed mode is then
selected dynamically by passing "high_speed=True" to the pyb.usb_mode()
function, otherwise it defaults to full-speed mode.

This patch has been tested on an STM32F733.
2018-02-01 17:57:44 +11:00
Damien George 71312d0bd1 stm32/usb: Allow board to select which USBD is used as the main one.
By defining MICROPY_HW_USB_MAIN_DEV a given board can select to use either
USB_PHY_FS_ID or USB_PHY_HS_ID as the main USBD peripheral, on which the
REPL will appear.  If not defined this will be automatically configured.
2018-02-01 17:47:28 +11:00
Damien George e708e87139 docs/library/pyb.rst: Add note about availability of USB MSC-only mode. 2018-02-01 15:52:49 +11:00
Damien George 3130424b54 stm32/usbdev: Add support for MSC-only USB device class.
Select this mode in boot.py via: pyb.usb_mode('MSC')
2018-02-01 15:47:16 +11:00
Damien George 72ca049de7 stm32/sdcard: Use maximum speed SDMMC clock on F7 MCUs.
This will get the SDMMC clock up to 48MHz.
2018-02-01 15:17:18 +11:00
Damien George 467a5926bc stm32/sdcard: Only define IRQ handler if using SDMMC1 peripheral.
So that the IRQ can be used by other peripheral drivers if needed.
2018-02-01 15:02:04 +11:00
Damien George 9e7d2c7abb stm32/modmachine: In freq(), select flash latency value based on freq. 2018-02-01 14:06:18 +11:00
Damien George e8a8fa77ca stm32: Improve support for STM32F722, F723, F732, F733 MCUs. 2018-02-01 13:11:32 +11:00
Damien George 4e35d10829 stm32/can: Support MCUs without a CAN2 peripheral. 2018-02-01 13:11:02 +11:00
Damien George 583472e068 stm32/usbdev: Combine all str descriptor accessor funcs into one func.
There's no need to have these as separate functions, they just take up
unnecessary code space and combining them allows to factor common code, and
also allows to support arbitrary string descriptor indices.
2018-02-01 12:46:37 +11:00
Damien George 1d4246a2e8 stm32/usbdev: Reduce dependency on py header files. 2018-02-01 12:44:16 +11:00
Damien George fed1b4fb56 stm32/sdcard: Make SD wait routine more power efficient by using WFI.
Using WFI allows the CPU to sleep while it is waiting, reducing power
consumption.
2018-02-01 12:20:45 +11:00
Damien George c0496fd44d stm32/spi: Make SPI DMA wait routine more power efficient by using WFI.
The routine waits for the DMA to finish, which is signalled from a DMA IRQ
handler.  Using WFI makes the CPU sleep while waiting for the IRQ to arrive
which decreases power consumption.  To make it work correctly the check for
the change in state must be atomic and so IRQs must be disabled during the
check.  The key feature of the Cortex MCU that makes this possible is that
WFI will exit when an IRQ arrives even if IRQs are disabled.
2018-02-01 11:45:29 +11:00
Hemanth kumar a44892dd0d drivers/sdcard: Update doc for ESP8266 to use correct SPI number.
machine.SPI(0) results in ValueError on ESP8266.  SPI(1) is the user
hardware SPI port (or use SPI(-1) for software SPI).
2018-01-31 21:25:58 +11:00
Damien George 524ff30275 minimal/README: Update text to better describe what "make run" does. 2018-01-31 21:05:21 +11:00
Damien George 23f9f9495f esp32/machine_uart: Fix check of UART id so it only allows valid UARTs. 2018-01-31 19:38:32 +11:00
Damien George bd257a838f .gitmodules: Use https URL for lwIP submodule.
HTTPS is supported by Savannah and better to be secure than not.
2018-01-31 18:55:35 +11:00
Damien George 925c5b1da2 lib/utils/pyexec.h: Include py/obj.h because its decls are needed. 2018-01-31 18:21:07 +11:00
Damien George efdda2c62d stm32: Add support for DHT11/DHT22 sensors. 2018-01-31 18:12:53 +11:00
Damien George a40ce1d829 esp8266/modules: Move dht.py driver to drivers/dht directory. 2018-01-31 18:11:06 +11:00
Ayke van Laethem 7642785881 extmod/vfs_fat_file: Implement SEEK_CUR for non-zero offset.
CPython doesn't allow SEEK_CUR with non-zero offset for files in text mode,
and uPy inherited this behaviour for both text and binary files.  It makes
sense to provide full support for SEEK_CUR of binary-mode files in uPy, and
to do this in a minimal way means also allowing to use SEEK_CUR with
non-zero offsets on text-mode files.  That seems to be a fair compromise.
2018-01-31 17:33:07 +11:00