Commit Graph

156 Commits

Author SHA1 Message Date
Scott Shawcroft c4ee6d5716 atmel-samd: Remove pin reference from AnalogOut error. Fixes #83 2017-02-19 14:38:24 +01:00
Scott Shawcroft c81052a256 atmel-samd: Stop calibrating the crystal for Gemma and Trinket. We need the space for other code. 2017-02-19 14:11:24 +01:00
Scott Shawcroft 9ed3e11aec atmel-samd: Clean up I2C correctly when an initialization error occurs. Fixes #95. 2017-02-13 16:46:57 +01:00
Scott Shawcroft ae715a827b atmel-samd: Rework the clock configs to only be crystalless when needed by the hardware. 2017-02-10 05:09:17 -08:00
Scott Shawcroft 370d1dec88 SPI tweaks for SD Cards:
* Always init SPI to 250k to start for SD cards.
* Add ability to configure byte written during read.
* Add ability to read and write to portions of buffers like existing I2C API.
2017-02-10 05:09:17 -08:00
Scott Shawcroft 597777e80b atmel-samd: Update internal pins for Feather M0 Express Rev B 2017-02-02 12:12:05 -08:00
Scott Shawcroft 1da14b0eec atmel-samd: Switch Metro back to including bootloader space. 2017-02-01 13:16:48 -08:00
Scott Shawcroft 8569395b5d atmel-samd: Turn down the brightness of the status colors. 2017-02-01 13:15:46 -08:00
Scott Shawcroft e3f9ee839a Add frequency changing support to PWMOut.
You can either set it once up front, or set variable_frequency on custruction to
indicate that the frequency must be able to change. This informs whether a timer
can be shared amongst pins.

This also adds persistent clock calibration on atmel-samd. Once the device has
synced its clock frequency over USB it will remember that config value until USB
is used again. This helps ensure the clock frequency is similar on and off USB.

Lastly, this also corrects time.sleep() when on USB by correcting the tick counter.
2017-01-30 15:02:01 -08:00
Scott Shawcroft 749d22b5e6 atmel-samd: stop overwriting the flash FS. 2017-01-19 14:26:57 -08:00
Scott Shawcroft 79024f3fb9 atmel-samd: Change new flash FS name to CIRCUITPY
Fixes #79
2017-01-19 11:47:06 -08:00
Scott Shawcroft dad33e6ad0 atmel-samd: Reset the DAC on soft reset. Fixes #80. 2017-01-19 11:42:33 -08:00
Scott Shawcroft f74e477966 atmel-samd: Fully reset the ADC state on reset to prevent a crash. 2017-01-19 11:26:41 -08:00
Scott Shawcroft d29915ca3d atmel-samd: Fix two more SERCOM configs, PA07 and PA06. 2017-01-18 15:04:35 -08:00
Scott Shawcroft 76a2178bd7 atmel-samd: Fix PA00 and PA01 sercoms. New CircuitPlayground prototype pinout. 2017-01-18 14:51:36 -08:00
Scott Shawcroft 1a86968912 atmel-samd: Fix neopixel timing by forcing the NVM cache to be deterministicly timed. Otherwise, bit order changes code timing. Fixes #74 2017-01-17 19:27:48 -08:00
Scott Shawcroft 42926c6159 atmel-samd: Fix whitespace. 2017-01-17 19:26:28 -08:00
Scott Shawcroft 179413aec2 atmel-samd: Support multiple ADC channels at once.
Fixes #61
2017-01-17 14:40:43 -08:00
Scott Shawcroft d239dbdc28 More fixes to pin pull thanks to jerryn:
* Correct atmel-samd pin pull state.
* Correct conversion from python pull objects to C enum.
2017-01-16 15:32:23 -08:00
Scott Shawcroft 35a5d44399 atmel-samd: Ensure pin state for first script run because we don't
know the post-bootloader state.

Also, color the status LED purple for ValueErrors which are used to
indicate a pin in use.
2017-01-13 15:39:50 -08:00
Scott Shawcroft f6cf8ae208 atmel-samd: Split UART pin names into two so that all names start
with a letter and are therefore valid Python.

Fixes #73.
2017-01-12 13:53:47 -08:00
Scott Shawcroft 9ece7c907d Add persistent VFS shares so that the devices can be used with USB
that is present across soft-reset.
2017-01-12 12:46:44 -08:00
Scott Shawcroft 0d408488c5 atmel-samd: Turn off FRAMEBUF because it takes a lot of space. 2017-01-12 12:46:43 -08:00
Scott Shawcroft cea5503ca0 Fixup warnings from merge about undefined macro values, switch to
VM keyboard exception and switch to FATFS reader.
2017-01-12 12:46:18 -08:00
Scott Shawcroft 24765929ea atmel-samd: Update pinouts for prototypes. 2017-01-08 22:11:27 -08:00
Scott Shawcroft 7c302c395e Improve docs and update to CircuitPython. 2017-01-05 16:20:46 -08:00
Scott Shawcroft 89f4a5597b atmel-samd: New revs which isolate the SPI for the external flash. 2017-01-05 14:36:33 -08:00
Scott Shawcroft a9087fbaa2 atmel-samd: Change cplay pins to rev B. 2016-12-21 15:29:25 -08:00
Scott Shawcroft 7ce69959f9 atmel-samd: Tweaks for rev B of the prototype circuit playground. 2016-12-21 14:07:50 -08:00
Scott Shawcroft f48d2df634 atmel-samd: Improve TouchIn to allow for multiple simultaneous touch pads. 2016-12-20 16:39:32 -08:00
Scott Shawcroft 427d33c706 atmel-samd: Add help() and remove mem_info functions from smallest builds to make room. 2016-12-19 16:38:35 -08:00
Scott Shawcroft 576373552a atmel-samd: Run the VM hook while waiting for the UART read to timeout in case nothing is received. 2016-12-19 16:36:32 -08:00
Scott Shawcroft f2bfbab6a0 atmel-samd: Save space by not creating default files on the FS and by only keeping LED flashing code when LEDs are present. 2016-12-19 13:03:50 -08:00
Sebastian Plamauer 1598e44231 atmel-samd: Add preliminary support for UART 2016-12-19 13:03:50 -08:00
Scott Shawcroft af17b64a58 atmel-samd: Add samd module for atmel-samd specific configuration.
Fixes #49
2016-12-13 18:04:50 -08:00
Scott Shawcroft 78a807cc26 atmel-samd: Commit QTouch library. Missed because .a files are usually ignored. 2016-12-13 16:11:19 -08:00
Scott Shawcroft 18c1210e87 atmel-samd: Remove debug output. 2016-12-13 16:10:42 -08:00
Scott Shawcroft 781633c716 Fix up Analog classes: unify them at 16 bits and adds reference_voltage member
to make for easy conversion. Fixes #14.
2016-12-13 16:09:00 -08:00
Scott Shawcroft 52f8e1cbf3 atmel-samd: Use bootloader again on the Metro M0 2016-12-12 17:09:42 -08:00
Scott Shawcroft 3972bc19c7 atmel-samd: Basic capacitive touch button support.
Currently only works on a single channel and is only enabled for boards with
SPI flash. Only really designed for hardware testing at this point.
2016-12-12 15:11:25 -08:00
Scott Shawcroft b6f1eebab3 atmel-samd: Add APA102 support and flash more advanced status.
The new sequence is as follows:
* Solid blue during the boot/settings script.
* Solid green during the main/code script.
* After main while waiting to enter repl or reset:
  * Fading green once main is done successfully.
  * On error produce a series of flashes:
    * Long flash color of script.
    * Long flash color of error:
      * Green = IndentationError
      * Cyan = SyntaxError
      * White = NameError
      * Orange = OSError
      * Yellow = Other error
    * Line number of the exception by digit. Number of flashes represents value.
      * Thousands = White
      * Hundreds = Blue
      * Tens = Yellow
      * Ones = Cyan
    * Off for a period and then repeats.

At any point a write to the flash storage will flicker red.

Fixes #63
2016-12-09 19:35:56 -08:00
Scott Shawcroft 6225b89c76 atmel-samd: Stop dumping gc info on collect.
Fixes #27.
2016-12-07 17:51:10 -08:00
Scott Shawcroft 1b819c6816 atmel-samd: Enable enumerate() adds 184 bytes.
Fixes #32.
2016-12-07 17:18:12 -08:00
Scott Shawcroft 0ae344841f atmel-samd & esp8266: Make sure pins are not already in use.
This prevents corrupting previous functional objects by stealing their pins
out from under them. It prevents this by ensuring that pins are in default
state before claiming them. It also verifies pins are released correctly and
reset on soft reset.

Fixes #4, instantiating a second class will fail.
Fixes #29, pins are now reset too.
2016-12-07 15:21:14 -08:00
Scott Shawcroft bb9c751b50 atmel-samd: Correct fake date for FAT. Hopefully it'll be in 2016 now. 2016-12-05 11:15:46 -08:00
Scott Shawcroft 0ba9aee428 atmel-samd: Update Trinket and Gemma boards for rev B. 2016-12-05 11:14:36 -08:00
Scott Shawcroft 26229efe78 Add try_lock and unlock to I2C and SPI classes to make sure things
are shared well between threads and underlying MicroPython (SPI Flash
for example.)

It is recommended to use the bus device classes to manage the locks
and other transaction state.

https://github.com/adafruit/Adafruit_MicroPython_BusDevice

Fixed #58
Fixed #59
Fixed #60
2016-12-02 15:46:12 -08:00
Scott Shawcroft 03f49f8209 atmel-samd: Slim down the pin struct to save ~1200 bytes. 2016-12-01 13:47:18 -08:00
Scott Shawcroft f4a1da4be9 atmel-samd: Only include bitbangio on boards with flash. 2016-12-01 13:46:44 -08:00
Scott Shawcroft 915e1e5603 atmel-samd: Move the README text out of ROM to save space. We can still ship with it on flash. 2016-11-30 09:50:19 -08:00