Commit Graph

228 Commits

Author SHA1 Message Date
Scott Shawcroft a715bf6bac atmel-samd: Introduce board reset mechanic used on CircuitPlayground
Express to ensure the Neopixels are off after reloads.
2017-06-16 15:40:15 -07:00
Scott Shawcroft 3e23464b1e atmel-samd: Add user initiated safe mode and rework board.c for
board specific functionality.

Fixes #155
2017-06-16 14:55:53 -07:00
Scott Shawcroft c7efd2cae9 shared-bindings: Move enum-like classes out of DigitalInOut into digitalio.
Also, rename Direction.IN to Direction.INPUT and Direction.OUT to Direction.OUTPUT.

This simplifies using them. Prior to the nativeio split this would have led to
clutter in the top-level namespace but having digitalio prevents this.

Fixes #152
2017-06-16 13:47:01 -07:00
Scott Shawcroft 58ab5844cb atmel-samd: Fix sharing TCCs by statically storing the current period.
A previous fix improved the duty_cycle channel value computation by
removing the reliance on the PER register which gave old values. It
saved the period on the object but failed to set anything for reused
timers. So, this breaks it out into a separate array that can be
shared across all object regardless of whether it used a new or
existing timer.
2017-06-12 15:37:09 -07:00
Scott Shawcroft c61e1b89aa atmel-samd: Fix TCC1, its two channels and four wave outputs.
Previously it was configured as four and four which configured
the incorrect channels.
2017-06-12 15:36:09 -07:00
Scott Shawcroft 736a63e85a atmel-samd: Set up the tcc_instance when using an already active TCC.
This fixes a hard lock that happens when using a second channel on an
in use TCC. The lock occurred when setting the duty cycle on the channel
because the hw address was not available to ASF.

Thanks to @ladyada for finding the bug.
2017-06-09 17:16:33 -07:00
Scott Shawcroft 3658c92270 atmel-samd: Reset TCC channel in use array on reset.
This fixes spurious "All timers in use" exceptions. Thanks to
@ladyada for finding this issue.
2017-06-09 17:15:31 -07:00
Scott Shawcroft 9434db07b2 atmel-samd: Handle TCC2 correctly. Unlike the other TCCs its 16bit
rather than 24bit. Setting the period for more than a 16bit number
caused the TCC to be in a weird state where resetting it would hard
crash.

Fixes #153
2017-06-09 15:29:02 -07:00
Scott Shawcroft a884acc7f6 atmel-samd: Fix PWMOut duty_cycle when used with TCC peripherals.
Fixes #148. Fixes #151
2017-06-08 18:56:13 -07:00
Scott Shawcroft b5f50fadf9 atmel-samd: Change Metro PID to 0x8014 so it doesn't conflict with Arduino's PID. 2017-06-06 16:18:34 -07:00
Scott Shawcroft 66c421f401 atmel-samd: Correct the USB PID of the CircuitPlayground Express. 2017-05-29 14:35:38 -07:00
Scott Shawcroft aaf01481aa Change the approach for input so that its not included in every single build. Put it next to readline instead. 2017-05-25 12:14:42 -07:00
Scott Shawcroft 32a4eb2c53 atmel-samd: Add input support. Fixes #143 2017-05-25 11:55:38 -07:00
Scott Shawcroft 3cad7b7b03 atmel-samd: correctly reset the REPL history on reload. Fixes #141 2017-05-24 10:53:52 -07:00
Scott Shawcroft b444788451 Merge pull request #135 from robomike/pins
Renamed spi flash to ext flash not to confuse with the actual spi flash
2017-05-23 11:43:20 -07:00
robomike 517590a58a atmel-samd:renamed spi flash to confuse with the actual spi flash 2017-05-23 14:09:28 -04:00
Dan Halbert 5c7071e92a Merge branch 'master' into add-ure-et-al 2017-05-21 23:20:47 -04:00
Dan Halbert 253bdf7739 Enable ure, center, partition, frozenset, splitlines, reversed for Express builds. 2017-05-20 14:02:37 -04:00
Scott Shawcroft 0a6bed491f atmel-samd: Enable autoreload by default again. 2017-05-20 08:11:06 -07:00
Scott Shawcroft b1925b1bd8 atmel-samd: Fixup autoreset after switching boot to running once. 2017-05-15 20:21:26 -07:00
Scott Shawcroft 3f5028c666 atmel-samd: Support wav file playback. Tested up to 16bit 22.1khz. Must be mono file!
SD card support may work but likely needs buffer tuning. Its untested.

Fixes #105
2017-05-15 19:52:38 -07:00
Scott Shawcroft 974847ac8d atmel-samd: Add a safe mode which detects hard faults and reboots without running user code again. 2017-05-15 15:29:04 -07:00
Scott Shawcroft 790c38e18c atmel-samd: Rework boot, main and REPL order.
Boot will only run once now before USB is started. Its output goes to
boot_out.txt. After main and REPL will run with VM and hardware resets
between each.
2017-05-12 18:26:14 -07:00
Scott Shawcroft 7672bf7736 atmel-samd: Rename auto-reset to auto-reload to reduce confusion with physical reset buttons. 2017-05-12 16:45:38 -07:00
Scott Shawcroft e0f931afd3 atmel-samd: Fix pin reset to ensure USB and SWD are not reset. 2017-05-12 16:09:13 -07:00
Scott Shawcroft e1a6f6d584 atmel-samd: Rework SPI flash defines for clarity.
Also add sector protection support for the SAMD Xplained board.
2017-05-12 14:47:39 -07:00
Scott Shawcroft 7ea76e0889 atmel-samd: Pin reset improvements.
* Reset SWD lines to SWD rather than GPIO. This makes OpenOCD happier.
* Default speaker enable lines to False for CircuitPlayground to prevent
  the speaker from buzzing when no sound is playing. Fixes #126
2017-05-12 13:14:01 -07:00
Scott Shawcroft 6984425f5d atmel-samd: Correctly wait for the SPI DMA transaction to finish. 2017-05-12 13:13:50 -07:00
Nicholas H.Tollervey f3152571c6
Rename LEFT_BUTTON -> BUTTON_A, RIGHT_BUTTON -> BUTTON_B. 2017-05-11 14:48:17 +01:00
Scott Shawcroft c6d539ace3 atmel-samd: Fix sporadic "syntax errors"
The GC was deleting memory that was in use because its scan of the
stack missed the very top. Switching to _estack fixes this by relying
on the location from the linker.

Fixes #124
2017-05-05 12:04:20 -07:00
Scott Shawcroft 5ad426124b atmel-samd: Move heap objects into MICROPY_PORT_ROOT_POINTERS so they don't get garbage collected while we are using them. 2017-05-04 11:57:51 -07:00
Scott Shawcroft 6512ccf32e atmel-samd: Use DMA for user SPI.
Also replace use of PINMUX_DEFAULT with PINMUX_UNUSED to prevent any
accidental pin changes. This caused user SPI to break internal SPI
flash on the Feather M0 Express.

Fixes #100
2017-05-03 10:50:29 -07:00
Scott Shawcroft 24a5752f94 atmel-samd: Use DMA for SPI flash block transfers.
Fixes #99
2017-05-02 15:25:06 -07:00
Limor "Ladyada" Fried a2c463deb0 Update AudioOut.c
fiiiiiiiiiiiiiiiiiiiiiiiiix
2017-05-01 23:32:37 -04:00
Scott Shawcroft 58b9789d0c atmel-samd: Introduce audio sample playback via audioio.AudioOut. 2017-05-01 13:10:03 -07:00
Scott Shawcroft 30b8091df0 atmel-samd: Clean up leftovers from QTouch. 2017-05-01 11:32:15 -07:00
Scott Shawcroft 4ad22144b0 atmel-samd: Rename metro M0 Express and add NEOPIXEL pin. 2017-05-01 11:29:51 -07:00
Scott Shawcroft bc152da3a6 atmel-samd: Remove debug prints from TouchIn 2017-04-20 16:48:04 -07:00
Scott Shawcroft a9d25bfae4 atmel-samd: Update CircuitPlayground Express pins for Rev G. 2017-04-20 11:25:57 -07:00
Scott Shawcroft 939c0045db Switch to a shared piece of code to compute start and length of a
buffer from start, end and length. The old code miscomputed length
leading to writing and reading from memory past the end of the buffer.
Consolidating the code should make it easier to get right everywhere.
2017-04-20 11:24:05 -07:00
Scott Shawcroft b97edd4465 atmel-samd: Turn on framebuf for Express boards because they have space. 2017-04-18 09:44:04 -07:00
Scott Shawcroft 8d0d5defc7 atmel-samd: Use LTO for all builds to get 5000 bytes back on express boards. 2017-04-18 09:44:04 -07:00
Scott Shawcroft 67ec52d7a9 atmel-samd: Swap out pulseio for touchio based on FreeTouch. 2017-04-18 09:44:04 -07:00
Dan Halbert 2fe6b74e90 atmel-samd: HID report descriptor for mouse had to be COMPILER_WORD_ALIGNED. 2017-04-15 10:18:56 -04:00
Scott Shawcroft f37ce1c595 atmel-samd: Turn off PulseIn interrupts on reset. Can hardfault otherwise. 2017-04-13 17:50:06 -07:00
Scott Shawcroft f0e24bd812 atmel-samd: Account for pending ticks in PulseIn. Fixes #116. 2017-04-13 14:47:34 -07:00
Scott Shawcroft 4a4f29b8f9 atmel-samd: Rework status LED implementation
* Track status pin use by user code separately so it can take over the pins and then give them back.
* Switch to hardware SPI for APA102 on Gemma and Trinket.
* Merge microcontroller/types.h into microcontroller/Pin.h to better match approach going forwards.
2017-04-12 15:24:50 -07:00
Scott Shawcroft 8505de1ced atmel-samd: rename cplay_m0_flash to circuitplayground_express and update for new rev (F). 2017-04-11 17:59:02 -07:00
Scott Shawcroft 45dfaa835f atmel-samd: Reset PulseIn correctly on soft reset. 2017-04-11 16:56:06 -07:00
Scott Shawcroft 1e8fc15a41 atmel-samd: Fix PulseIn duration math to handle case when current us time is after the last one but more than a ms has passed. 2017-04-11 16:55:42 -07:00