jepler
0b00787b4d
samd: AudioOut: ensure stopped before deinit
...
.. otherwise, a sequence like
>>> a = audioio.AudioOut(board.A0)
>>> a.play(sample, loop=True)
>>> a.deinit()
would potentially leave related DMA channel(s) active.
2019-08-28 16:43:55 -05:00
Scott Shawcroft
0876d5c4ad
Disable bitbangio on Itsy M0
...
Also, switch CIRCUITPY_BITBANG_APA102 to makefile setting so it can alter included files
2019-08-27 15:21:47 -07:00
Scott Shawcroft
7324b70a7c
Rework based on Dan's review
2019-08-23 15:27:21 -07:00
Scott Shawcroft
3a98de1236
Add reset() to display busses to detect whether it works
2019-08-22 14:23:33 -07:00
Scott Shawcroft
70680d5b22
EPaper displays work mostly.
2019-08-22 14:08:33 -07:00
Dan Halbert
7cc15e56c8
make translate
2019-08-22 15:20:23 -04:00
Dan Halbert
6e3a6d0ac5
typo in IncrementalEncoder.c
2019-08-20 16:23:17 -04:00
Dan Halbert
e00696de7f
merge from upstream and make translate
2019-08-20 13:06:23 -04:00
Dan Halbert
e3dc5e3a66
Merge remote-tracking branch 'adafruit/master' into run-background-tasks
...
Restore dependencies indicated by indentation in circuitpy_mpconfig.h.
2019-08-19 12:41:20 -04:00
Dan Halbert
e2a4c76a37
make nrf touchio be generic: now available for SAMD51 too
2019-08-18 08:44:10 -04:00
Jeff Epler
d9ee2d28a0
atmel-samd: Use RUN_BACKGROUND_TASKS
2019-08-11 08:53:02 -05:00
Jeff Epler
8b717955ba
samd: audio_dma: wrap dma_{en,dis}able_channel and add error checking
...
It turns out the "disable" error will fire in practice, we'll fix that
next.
2019-08-06 22:00:31 -05:00
Jeff Epler
6b44e40ee8
audiocore: Factor from audioio
...
When nrf pwm audio is introduced, it will be called `audiopwmio`. To
enable code sharing with the existing (dac-based) `audioio`, factor
the sample and mixer types to `audiocore`.
INCOMPATIBLE CHANGE: Now, `Mixer`, `RawSample` and `WaveFile` must
be imported from `audiocore`, not `audioio`.
2019-07-25 06:44:26 -05:00
Scott Shawcroft
6797ec6ed3
Add support for grayscale displays that are < 8 bit depth.
...
This also improves Palette so it stores the original RGB888 colors.
Lastly, it adds I2CDisplay as a display bus to talk over I2C. Particularly
useful for the SSD1306.
Fixes #1828 . Fixes #1956
2019-07-19 16:06:11 -07:00
Scott Shawcroft
f4a64a2e80
Merge pull request #1989 from rce1086/master
...
Added conditional compilation around selection of TX pad candidates
2019-07-08 14:07:04 -07:00
Carl Elkins
64507207da
Added conditional compilation around selection of TX pad candidates
...
Original code was correct for SAMD21
New code for SAMD51 only permits pad-0 for TX
2019-07-08 02:08:39 +01:00
iot49
4c72a3991e
updated samd and esp8266 ports
2019-07-05 10:01:51 -07:00
Elvis Pfützenreuter
1da8d4b4da
Add PS/2 support -- ps2io module
2019-06-04 18:05:46 -03:00
Scott Shawcroft
b87565138e
Rework safe mode so we can trigger on all resets
2019-05-09 10:15:28 -07:00
Scott Shawcroft
837d3f57ee
Update on_next_reset
for new safe mode.
...
Fixes #1831
2019-05-08 15:23:40 -07:00
Dan Halbert
f59dadbb4f
avoid double float arithmetic in FrequencyIn
2019-05-07 00:25:22 -04:00
Scott Shawcroft
f7c7904e2b
Correct call structure for throwing errors
2019-04-17 13:54:29 -07:00
Carlos
71c4f100de
Update translations and use same error for PDM too
2019-04-17 11:28:43 -07:00
Carlos
5865b28592
[audiobusio-I2SOut] Fix translation error
2019-04-17 11:12:38 -07:00
Carlos
65cc366280
[audiobusio-I2SOut] Fix compilation error by using mp_raise_ValueError_varg
2019-04-17 11:12:38 -07:00
Carlos
9f63125345
Fix I2SOut message, fix #1765
2019-04-17 11:12:38 -07:00
Scott Shawcroft
de48e4b262
Merge remote-tracking branch 'adafruit/master' into fix_cpx_display
2019-04-08 17:15:08 -07:00
Radomir Dopieralski
8323721232
Stop hard-coding SPI frequency in FourWire
...
Instead remember and use the frequency, polarity and phase that was
set when the bus was first created.
2019-04-06 15:15:29 +02:00
Scott Shawcroft
7686f93ef4
Fix crash when getting board.SPI outside the VM
...
If one of the default pins was already in use it would crash.
The internal API has been refined to allow us to get the value
without causing an init of the singleton.
Fixes #1753
2019-04-05 19:06:37 -07:00
Dan Halbert
cdd77b5972
remove CPy-specific EIC handlers from samd-peripherals
2019-04-04 16:04:11 -04:00
Scott Shawcroft
ff7e729032
Fix custom pin in use logic for SWD
...
This should allow you to use SWD pins unless a debugger is attached.
You may have trouble connecting to SWD when CircuitPython has already
begun using them.
Fixes #1633
2019-03-14 11:11:35 -07:00
Dan Halbert
97140e6a62
wrong arg type for PWMOut variable_frequency
2019-03-12 21:28:30 -04:00
Scott Shawcroft
37e10d4a81
Be more careful when initing the board outside the VM.
2019-03-12 11:18:29 -07:00
sommersoft
b7b74d1f78
update translations
2019-03-02 18:17:58 -06:00
sommersoft
a44bfc2730
Merge branch 'master' of https://github.com/adafruit/circuitpython into new_freq_in
2019-03-01 21:24:30 -06:00
Dan Halbert
3c24e893e9
Fix SYNCBUSY loop typo.
2019-02-28 23:38:26 -05:00
Dan Halbert
808304e827
Use TCC LUPD lock when updating CCB
2019-02-28 19:53:35 -05:00
sommersoft
4d47ce5c60
fixes set_timer_handler call
2019-02-27 19:28:59 -06:00
sommersoft
4a9f05a44f
final re-glue; compiles now.
2019-02-25 21:22:52 -06:00
sommersoft
f602fa3d9f
fix init deps
2019-02-24 18:07:26 -06:00
sommersoft
2437ab9605
update frequencyin interrupt handler
2019-02-22 17:19:09 -06:00
sommersoft
a1060747f8
Merge branch 'new_master' into new_freq_in
2019-02-22 23:12:11 +00:00
Scott Shawcroft
af863a3780
Merge pull request #1586 from sommersoft/shared_timer_handler
...
Move shared_timer_handler
2019-02-22 11:04:27 -08:00
sommersoft
55e7c5a41b
handle 'set_timer_handler' on this side, vs samd-periphs.
2019-02-19 20:18:21 -06:00
Dan Halbert
9c24c804fb
Fix #ifdefs in port.c to call xxx_reset() rroutines properly. Remove most uses of EXPRESS_BOARD.
2019-02-18 22:44:31 -05:00
sommersoft
dafc370d22
moves 'shared_timer_handler' back to atmel-samd from samd-peripherals
2019-02-16 19:54:16 -06:00
sommersoft
ea9200a042
starting again; initial addition of 'frequencyio.FrequencyIn'
2019-02-16 19:26:24 -06:00
Dan Halbert
cf545cd477
WIP: fix issues with remaining atmel-samd builds
2019-02-15 09:52:45 -05:00
Dan Halbert
da5008f4d8
Fix atmel UART after ASF4 pruning.
2019-02-13 11:42:09 -05:00
Scott Shawcroft
1a6ad20943
Get space back by using less ASF4 and combining register writes
2019-02-11 17:36:34 -08:00
Scott Shawcroft
69bc5e189b
Rudamentary backlight support
2019-01-31 11:42:14 -08:00
Scott Shawcroft
edc8383e22
Improvements thanks to danh's review
2019-01-18 16:37:06 -08:00
Scott Shawcroft
760bd8d8a4
share fourwire and make nrf compile
2019-01-17 15:15:59 -08:00
Scott Shawcroft
2d136d58bf
Fix other builds and hallowing
2019-01-17 14:45:29 -08:00
Scott Shawcroft
84292ad890
External fourwire works and blinka splash after
2019-01-17 00:20:16 -08:00
Scott Shawcroft
05d8885a1a
Rework displays in prep for dynamic support and 8bit parallel.
2019-01-16 12:05:20 -08:00
Scott Shawcroft
a14762a16c
Add support for rendering a shape.
...
Fixes #1171
2019-01-14 17:29:15 -08:00
Scott Shawcroft
19db886645
Support the display on the pyportal.
...
Also fix #1390 , reload during sleep broken.
2019-01-10 17:29:34 -08:00
Scott Shawcroft
7ad2e6ace3
Add stack validity check and raise an error when it happens.
...
The backtrace cannot be given because it relies on the validity
of the qstr data structures on the heap which may have been
corrupted.
In fact, it still can crash hard when the bytecode itself is
overwritten. To fix, we'd need a way to skip gathering the
backtrace completely.
This also increases the default stack size on M4s so it can
accomodate the stack needed by ASF4s nvm API.
2018-12-04 23:26:04 -08:00
Dan Halbert
63cd9209f1
allow KeyboardInterrupt on UART read; fix nrf UART pin claiming; rename feather 52840 UART pins
2018-12-04 15:05:39 -05:00
Dan Halbert
80db2cec99
UART changes: timeout in secs, write bytes, etc.
2018-12-03 12:04:32 -05:00
Dan Halbert
11de8fdca7
merge 3.x swap of /lib and .frozen; update frozen libs
2018-11-15 15:00:23 -05:00
Scott Shawcroft
a3a690dc01
Add pragma to ensure neopixel_write is always -Os
2018-11-13 10:56:00 -08:00
Scott Shawcroft
43f7ca7985
Incorporate feedback:
...
* Clean up board defines.
* Add flush on eject and stay ejected.
* Swith back to NONE protocol for CDC.
2018-11-09 11:33:56 -08:00
Scott Shawcroft
9d91111b1b
Move atmel-samd to tinyusb and support nRF flash.
...
This started while adding USB MIDI support (and descriptor support is
in this change.) When seeing that I'd have to implement the MIDI class
logic twice, once for atmel-samd and once for nrf, I decided to refactor
the USB stack so its shared across ports. This has led to a number of
changes that remove items from the ports folder and move them into
supervisor.
Furthermore, we had external SPI flash support for nrf pending so I
factored out the connection between the usb stack and the flash API as
well. This PR also includes the QSPI support for nRF.
2018-11-08 17:25:30 -08:00
ATMakersBill
4f2f571536
Adding the serial_bytes_available() method to the 3.x branch
2018-11-03 14:01:30 -04:00
Scott Shawcroft
4eb1fe18e5
Tweaks from feedback:
...
* default_value is now quiescent_value
* Use step = -step format for sign switch
* Add note about analogout_reset being empty
2018-10-17 11:31:08 -07:00
Scott Shawcroft
c209165d43
Ramp values to and from a default value while active.
...
This reduces the popping sound on initial playback of an audio
sample.
The M4 DAC has a pop on startup that cannot be prevented. It also
does not allow readback so current values of the DAC are ignored.
Fixes #1090
2018-10-16 16:23:29 -07:00
Scott Shawcroft
df80ad8e6e
Merge pull request #1193 from ATMakersBill/master
...
Add supervisor.runtime.serial_bytes_available so that input() can be used without blocking.
2018-10-09 23:58:43 -07:00
ATMakersBill
9f94712ad1
replacing change to input() with separate method to check for USB Serial input
2018-10-09 18:37:52 -04:00
Scott Shawcroft
a9d094ab74
Fix translations
2018-09-21 12:24:04 -04:00
Scott Shawcroft
e5274959f2
Merge remote-tracking branch 'adafruit/3.x' into merge_3x
2018-09-21 12:22:26 -04:00
Scott Shawcroft
655f223916
Clock the SAMD21 much faster so it can actually convert at its max
...
sample rate of 350ksps.
Also added an error check of sample rate.
Fixes #1196
2018-09-18 15:29:46 -07:00
Dan Halbert
bc510e714f
merge 3.0.2 to master
2018-09-18 15:38:12 -04:00
Dan Halbert
6a046f55c4
UART fixes and enhancements; default board object fix
2018-09-12 17:19:43 -04:00
Paul Kierstead
02b3f62460
When UART timeout of zero is given, make read() return data already available
2018-09-12 13:25:49 -04:00
Dan Halbert
c3918bae57
PWMOut was not claming channels on shared TCCs
2018-09-11 19:46:47 -04:00
Scott Shawcroft
c2e49dc87f
Merge remote-tracking branch 'adafruit/master' into hallowing
2018-09-06 14:54:55 -07:00
Scott Shawcroft
1683eb913d
Minor tweaks based on feedback
2018-09-06 14:49:49 -07:00
Dan Halbert
4c3b4cacfa
Merge remote-tracking branch 'adafruit/master' into nrf-pin-claiming
2018-09-05 13:15:22 -04:00
Paul Kierstead
2d3f1a10bf
When UART timeout of zero is given, make read() return data already available
2018-09-01 17:07:30 +00:00
Dan Halbert
9ea809bef7
add pin claiming to devices
2018-08-31 18:38:05 -04:00
Scott Shawcroft
121903b6ee
Tweaks based on feedback
2018-08-31 14:21:48 -07:00
Scott Shawcroft
6697544cdf
Introduce displayio to render graphics to displays.
...
It's designed to minimize RAM footprint by using Sprites to
represent objects on the screen. The object model also facilitates
partial screen updating which reduces the bandwidth needed to display.
This is all handled in C. Python simply manipulates the objects with
the ability to synchronize to frame timing.
2018-08-31 12:31:52 -07:00
Jerry Needell
e8b94d0024
adjust SAMD51 neopixel_write timing
2018-08-24 07:01:50 -04:00
Scott Shawcroft
44de3d49a8
Speed up zero neopixel pulses.
...
SK6812 on 5v is pickier than WS2812 on 5v.
Hopefully fixes #1083 .
2018-08-20 17:04:46 -07:00
Noralf Trønnes
eefb6842a0
i2cslave: Fix missing translate() when raising exceptions
...
The translate() changes where applied after travis had checked the
i2cslave PR so this wasn't caught.
2018-08-18 16:00:06 +02:00
Scott Shawcroft
4a4d84ba42
Merge pull request #1064 from notro/i2cslave
...
Add busio.I2CSlave
2018-08-17 16:51:45 -07:00
Scott Shawcroft
2cd166b573
Fix esp and samd
2018-08-16 17:41:35 -07:00
Scott Shawcroft
de5a9d72dc
Compress all translated strings with Huffman coding.
...
This saves code space in builds which use link-time optimization.
The optimization drops the untranslated strings and replaces them
with a compressed_string_t struct. It can then be decompressed to
a c string.
Builds without LTO work as well but include both untranslated
strings and compressed strings.
This work could be expanded to include QSTRs and loaded strings if
a compress method is added to C. Its tracked in #531 .
2018-08-16 17:40:57 -07:00
Noralf Trønnes
11cbeb87ad
ports/atmel-samd: Implement i2cslave.I2CSlave
...
This adds support for SAMD acting as a I2C slave in polled mode.
2018-08-16 17:20:49 +02:00
Noralf Trønnes
b6822b86ac
busio/I2C: Split out samd_i2c_get_sercom()
...
It will be shared with I2CSlave.
2018-08-16 17:06:40 +02:00
Scott Shawcroft
86d2154d71
Change file mode back.
2018-08-09 09:14:14 -07:00
Scott Shawcroft
94c5ceab36
Initial SAMR board revision.
2018-08-09 05:36:46 -07:00
Jeff Epler
b0e33f6a11
atmel-samd: UART: allocate rx buffer in long-lived region
...
This is not strictly needed in order for #1056 to be resolved,
because the "make long-lived" machinery is unaware of this pointer.
However, as UARTs are assumed to be long-lived, this change is
beneficial because it moves the long-lived buffer into the upper
memory area with other long-lived objects, instead of remaining in
the low heap.
2018-08-08 19:21:57 -05:00
Dan Halbert
2e80f37709
Merge pull request #1096 from tannewt/tune_neopixel
...
Retune neopixel timings on SAMD51. They were too slow.
2018-08-07 21:33:12 -04:00
Scott Shawcroft
b0dd645e27
Retune neopixel timings on SAMD51. They were too slow.
...
Fixes #1083
2018-08-07 16:58:37 -07:00
Scott Shawcroft
933add6cd8
Support internationalisation.
2018-08-07 14:58:57 -07:00
Scott Shawcroft
168aa394db
Move pin struct to the peripherals library.
...
Its slimmed down by removing the qstr and bit packing TCC info.
The trinket m0 build actually grows by 20 bytes. The arduino zero
build shrinks by 188 bytes.
2018-08-02 13:59:05 -07:00
hathach
533d8dda96
fix samd usb hid typo
2018-08-01 08:40:04 +07:00
Dan Halbert
2809b4f9dd
Merge branch 'master' into micropython-25ae98f-merge
2018-07-16 19:36:40 -04:00
Dan Halbert
a20ab40ed2
Merge 3.0.0 final bugfixes and changes to master
2018-07-16 09:01:46 -04:00
Dan Halbert
e2e01efa84
compiles and runs; hangs on import storage;storage.VfsFat.<tab>
2018-07-13 22:51:10 -04:00
Dan Halbert
8bb363f7c4
must set pull after setting direction with gpio_set_pin routines
2018-07-09 17:18:06 -04:00
Dan Halbert
52a11547cb
fix OneWire timing and DigitalInOut.switch_to_input()
2018-06-28 23:32:20 -04:00
Scott Shawcroft
a5e03b76a6
Split out the peripherals library in preparation of sharing with MakeCode.
2018-06-15 16:16:21 -07:00
Scott Shawcroft
ee817a2fa8
Correct UART reads to return error on timeout.
...
This causes read to correctly return None instead of b''.
Fixes #874
2018-06-12 14:03:27 -07:00
Dan Halbert
4691b30c02
PDMIn: turn serializer on when starting DMA
2018-06-12 12:35:51 -04:00
Dan Halbert
b2d98edb4e
Merge pull request #901 from tannewt/pulseio_too_fast
...
Prevent freezing USB during high frequency PulseIn.
2018-06-08 17:59:06 -04:00
Scott Shawcroft
8fb34a5846
Use bool not int.
2018-06-08 14:57:20 -07:00
Scott Shawcroft
2fbab8067a
Prevent freezing USB during high frequency PulseIn.
...
We now track the last time the background task ran and bail on the
PulseIn if it starves the background work. In practice, this
happens after the numbers from pulsein are no longer accurate.
This also adjusts interrupt priorities so most are the lowest level
except for the tick and USB interrupts.
Fixes #516 and #876
2018-06-08 12:56:32 -07:00
Dan Halbert
218930d18b
Check for PDMIn DMA getting stuck.
2018-06-08 08:23:52 -04:00
Scott Shawcroft
717199018b
Adapt for feedback and hack around pIRkey size constraint.
2018-06-01 15:08:52 -07:00
Dan Halbert
f386144428
redo state algorithm
2018-06-01 15:08:52 -07:00
Scott Shawcroft
9920f0a5de
atmel-samd: Make ticks more atomic.
...
Always use current_tick when sub millisecond precision is required.
Otherwise getting the ms/us to correspond is tricky.
2018-06-01 15:08:52 -07:00
Scott Shawcroft
d0fb6e7a2f
atmel-samd: Add rotary encoder support.
...
Fixes #283
2018-06-01 15:08:48 -07:00
Scott Shawcroft
fd71e56891
atmel-samd: Re-org helper peripheral files into their own subdirectory.
...
Ideally in the future they won't depend on ASF4 or MicroPython.
2018-06-01 15:07:31 -07:00
Scott Shawcroft
bf1f0b3d11
Turn off timer on AudioOut deinit.
...
Thanks to @sommersoft for spotting the error.
Fixes #850
2018-06-01 13:32:45 -07:00
Scott Shawcroft
3607d3ba2c
Correctly reset the PTC
2018-05-22 14:20:35 -07:00
Scott Shawcroft
31bcd1c45c
Fixup gclk init
2018-05-22 13:56:12 -07:00
Scott Shawcroft
99123a8621
Turn on touchio for M0 boards. M4 will come later once its supported
...
by FreeTouch.
Fixes #670
2018-05-22 13:49:08 -07:00
Scott Shawcroft
6a8db03ade
Merge pull request #838 from rhooper/master
...
add supervisor.reload() to soft reboot from code
2018-05-16 17:52:16 -04:00
Scott Shawcroft
99e34e38eb
Merge pull request #829 from jerryneedell/jerryn_i2c
...
add keyword timeout to I2C -- only used for bitbangioi
2018-05-16 14:52:11 -04:00
Roy Hooper
3fd9900ea7
disable pins on trinket_m0 so that we can free a fair bit of flash - Issue #840
2018-05-15 13:13:59 -04:00
Roy Hooper
a0954b9e11
Fix for Issue #770 - Provide a better error message when timers are still available.
2018-05-14 13:52:32 -04:00
Jerry Needell
d6c26942a5
add timeout keyword to I2C - for bitbangio - ignored for busio
2018-05-13 21:54:44 -04:00
Dan Halbert
240659da0e
PBxx pins were not setting DRVSTR or reporting PULL properly
2018-05-10 23:09:51 -04:00
Scott Shawcroft
50fc90bc5f
Add pause/resume control to AudioOut and I2SOut
...
Fixes #808
2018-05-08 11:53:13 -07:00
Dan Halbert
9d484c4935
Merge pull request #789 from tannewt/pdmin3
...
Re-enable PDMIn without ASF
2018-05-02 19:59:20 -04:00
Scott Shawcroft
04f75b8903
Reduce the buffer size back to what 2.x has. Increase was leftover
...
from debugging.
2018-05-02 15:21:43 -07:00
Scott Shawcroft
22b7cd3d51
Fix 8 bit recordings on CPX.
...
The DMA trigger source was incorrect when using serializer 1 on
the SAMD21.
Playback register was incorrect for 8 bit as well. Now fixed.
2018-05-02 15:15:25 -07:00
Dan Halbert
3a2b4af830
Implement microcontroller.cpu.temperature on '21 and '51.
2018-05-01 21:35:55 -04:00
Noralf Trønnes
681399f8db
atmel-samd: RTC: Improve precision when setting datetime
...
The prescaler is not reset when setting the counter so we can be off by
as much as 1023/1024 seconds. Fix this by resetting the RTC module.
2018-05-01 21:35:24 -04:00
Scott Shawcroft
cfea51ec68
Re-enable PDMIn without ASF and using the helpers added with
...
I2SOut.
The API is almost the same except the frequency attribute has been
renamed to sample_rate so that its less likely to be confused with
frequencies within the audio itself.
Fixes #263 .
2018-05-01 14:35:43 -07:00
Noralf Trønnes
62d7a800d7
atmel-samd: RTC: Improve precision when setting datetime
...
The prescaler is not reset when setting the counter so we can be off by
as much as 1023/1024 seconds. Fix this by resetting the RTC module.
2018-04-29 20:43:07 +02:00
Dan Halbert
9daa1a68d8
HID gamepad support
2018-04-23 23:51:23 -04:00
Jerry Needell
fe738598da
modify tick.c to simplify - remove interupt disable from common_hal_pulseio_pulsein_resume
2018-04-20 11:59:33 -04:00
Jerry Needell
3399d541c3
Merge remote-tracking branch 'origin/master' into jerryn_tick
2018-04-19 20:54:47 -04:00
Jerry Needell
e09d95067c
update tick.c (fix LOAD value) update PulseIn.c (do not enable interrupts for trigger_duration > 1000
2018-04-17 21:46:15 -04:00
Scott Shawcroft
81d395d825
Merge pull request #745 from notro/time_rtc
...
RFC: Add rtc module
2018-04-16 15:26:54 -07:00
Jerry Needell
e55e06d501
modify tick.c to work when interrupts disabled - modify PulseIn.c to cast argument to common_hal_delay_us
2018-04-16 08:11:14 -04:00
Noralf Trønnes
8e2080411f
atmel-samd: Add rtc module support
...
Support the rtc module by using hal_calendar.
2018-04-16 13:15:08 +02:00
Scott Shawcroft
812fe0c93f
Turn on nvm in 3.0.
...
Its 256b on M0 and 8k on M4 to match flash erase sizes.
Fixes #758
2018-04-13 16:22:28 -07:00
Scott Shawcroft
22194d5977
Tweaks based on dhalbert's feedback.
2018-04-13 10:51:01 -07:00
Scott Shawcroft
28642ab10d
Add audio output support!
...
This evolves the API from 2.x (and breaks it). Playback devices are now
separate from the samples themselves. This allows for greater playback
flexibility. Two sample sources are audioio.RawSample and audioio.WaveFile.
They can both be mono or stereo. They can be output to audioio.AudioOut or
audiobusio.I2SOut.
Internally, the dma tracking has changed from a TC counting block transfers
to an interrupt generated by the block event sent to the EVSYS. This reduces
the overhead of each DMA transfer so multiple can occure without using up TCs.
Fixes #652 . Fixes #522 . Huge progress on #263
2018-04-12 16:35:13 -07:00
Dan Halbert
5f98953ed8
esp8266 and nrf: raise NotImplementedError
2018-04-10 12:08:41 -04:00
Scott Shawcroft
4e053cea0d
Merge pull request #628 from sommersoft/super_status
...
Added Function To Check the Serial Connection From CircuitPython Layer
2018-04-08 22:06:09 -07:00
Dan Halbert
726d5e52a3
Merge branch 'master' into 3.0_hid
2018-04-08 09:52:29 -04:00
Dan Halbert
a159b85340
Reorder composite device interfaces; fix report length bug
2018-04-08 09:33:02 -04:00
Jeff Epler
fe6f5aaa70
atmel-samd: reset: reset() was always entering bootloader mode
...
.. set the dbl_tap word to a different special value unless
RUNMODE_BOOTLOADER was selected
2018-04-05 08:16:53 -05:00
Dan Halbert
435e894fa0
Merge branch 'master' into 3.0_hid
2018-04-02 19:19:43 -04:00
Dan Halbert
df91878d2e
WIP: works with just keyboard but not complex report descriptor
2018-03-30 23:24:00 -04:00
sommersoft
6ee573c7c9
Merge branch 'master' into super_status
2018-03-30 14:27:39 -05:00
Scott Shawcroft
cebcec5e63
Check for floating pins by pulling them low briefly before testing their values.
2018-03-26 16:32:16 -07:00
Scott Shawcroft
25ba8ee489
Add an s because grammar.
2018-03-26 15:21:08 -07:00
Scott Shawcroft
37538fc0e7
Fix I2C init hang when the SCL pin is pulled low.
...
We added a check to make sure the pins are in a high state before
initing the bus. This leads to a friendly error message when someone
forgets to add the pull up resistors to their circuit.
2018-03-26 15:13:52 -07:00
Jeff Epler
c0029e1d97
Don't lose half of the processor's serial number
...
Before this change, `microcontroller.cpu.uid` returned values
where the top 4 bits of each byte were zero, because of
an incorrect bitmask used in this function.
2018-03-25 13:01:04 -05:00
Dan Halbert
31f5b6a238
WIP: simple working HID
2018-03-24 18:29:12 -04:00
Jeff Epler
dddfad6594
UART: Fix maybe-uninitialized diagnostic
...
The following error occurs when building with gcc 5.4.1 (debian stretch):
common-hal/busio/UART.c:104:83: error: 'sercom_index' may be used uninitialized in this function [-Werror=maybe-uninitialized]
sercom_insts[rx->sercom[j].index]->USART.CTRLA.bit.ENABLE == 0) ||
It may be related to the addition of rx-only UARTs; gcc is unable
to infer the intended relationship between have_tx and sercom_index
being set (I am still not entirely confident of it myself)
2018-03-19 20:40:04 -05:00
Scott Shawcroft
88aa0e2660
Remove SERCOM pointers from pin data structure because index is
...
enough.
This saves 380 bytes on the Arduino Zero build. (More pins ==
more savings.)
2018-03-14 11:14:32 -07:00
Scott Shawcroft
e7fc0b6aa7
Use DMA for long SPI transactions including those to the SPI Flash.
...
QSPI is not currently working so its commented out.
This is progress on #652 .
2018-03-09 12:45:46 -08:00
Bryan Siepert
942b7ffbe0
fixes hardware dotstar support for 3.0 and addresses issue #514
2018-03-08 20:39:47 -08:00
sommersoft
c1c3a79ec4
atmel-samd: changed Status to Runtime; instituted runtime singleton
2018-03-09 02:19:51 +00:00
Dan Halbert
5c24023240
use CONF_GCLK_DAC_SRC and refactor a bit
2018-02-27 17:21:03 -05:00
Dan Halbert
4895a9d1d8
Use safe clock freqs for AnalogOut; use DAC REFRESH on SAMD51.
2018-02-27 15:44:27 -05:00
Dan Halbert
9b4477e1dc
Implement UART for 3.0 + related fixes.
...
1. UART: ported to ASF4. Allow rx-only and tx-only. Add .baudrate r/w property.
2. Make NeoPixel timing deterministic by turning off caches during NeoPixel writes.
3. Incorporate asf4 updates:
a. async USART driver
b. bringing Atmel START configuration closer to what we use
c. Clock initialization order now specified by CIRCUITPY_GCLK_INIT_1ST and _LAST.
4. supervisor/port.c: Move commented-out clock-test pin setting to correct location.
2018-02-21 17:18:49 -05:00
sommersoft
9ee4d13756
added Status submodule to ports/atmel-samd/common-hal/supervisor; issue #544
2018-02-19 20:49:18 +00:00
Scott Shawcroft
a2b18b75d4
Fix loops and comma style.
2018-02-16 10:05:28 -08:00
Scott Shawcroft
538081528d
pulsein works on m0
2018-02-15 16:04:39 -08:00
Scott Shawcroft
fcde138ea3
pulsein works on m4
2018-02-15 15:12:58 -08:00
Scott Shawcroft
07230f2637
pulsein compiles but doesn't work
2018-02-14 16:59:04 -08:00
Scott Shawcroft
c7af17525b
m4 pulseout works
2018-02-14 11:38:52 -08:00
Scott Shawcroft
6a7d889dd4
m0 pulseout works. Factored out shared timer code.
2018-02-13 18:17:20 -08:00
Scott Shawcroft
8479eef578
m0 tc and tcc work
2018-02-13 16:44:04 -08:00
Scott Shawcroft
6c3075bec6
m4 tc and tcc works. multi-tcc channels ok too.
2018-02-13 14:22:55 -08:00
Scott Shawcroft
cc616aea4e
m4 tc output works. Watch out for the PAC!
2018-02-12 23:41:26 -08:00
Scott Shawcroft
0397202288
m4 compiles, pwmout implemented but TC0 (A1) doesn't run
2018-02-09 17:21:06 -08:00
Scott Shawcroft
0398f308fa
m4 compiles, pwmout implemented
2018-02-09 16:37:27 -08:00
Scott Shawcroft
190e7d629e
WIP
2018-02-09 16:37:27 -08:00
Scott Shawcroft
3e63f59867
Use write instead of set because it clears the bits before setting them.
2018-02-08 16:12:33 -08:00
Scott Shawcroft
82bc11585e
ports/atmel-samd: Re-enable analogio
...
This introduces SAMD51 support and re-enables SAMD21 support.
Fixes #263
2018-02-08 14:48:08 -08:00
Dan Halbert
e550b024c5
atmel-samd: Correct computation of SPI baud rate.
...
all: Add .frequency read-only property for busio.SPI to return actual frequency.
Fix esp8266/posix_helpers.c, which was not up to date for the new
long-lived/short-lived heap allocation scheme.
2018-01-30 12:08:41 -05:00
sommersoft
44bc1711aa
Added Unique ID Functions/Updated Support Matrix ( #527 )
...
shared_bindings/index.rst: updated Support Matrix format as discussed in PR #503 & Issue #448 .
shared-bindings/microcontroller/Processor.c & .h: added UID lookup functionality for use with all ports. Fixes #462 .
2018-01-18 11:39:11 -08:00
Dan Halbert
065e82015f
merge from 2.2.0 + fix up board defs
2018-01-02 21:25:41 -05:00
Dan Halbert
72c911be97
Support SPI flash chips for CIRCUITPY, using non-DMA SPI for now.
2017-11-27 21:00:24 -05:00
Dan Halbert
312444bbd2
non-DMA SPI working; adding this now for testing; will continue with DMA
...
Also, fixed pin mappings for rev B Metro M4:
swap PA12 and PA13 on SPI 2x3 header
swap A3 and A5
Comment out all frozen modules in CPX again to make room while waiting
for SPI flash.
2017-11-16 19:09:35 -05:00
Dan Halbert
9060df5af6
DigitalInOut: Use pin value % 32 to accomodate PORTB and up.
...
Fixes #407 .
2017-11-07 10:08:34 -08:00
Dan Halbert
7292984204
Implement busio.I2c.
...
* Added asf4_conf/samd*/hpl_sercom_config.h
* Adjusted clocks in peripheral_clk_config.h.
* Put some frozen libs back in CPX for testing.
* Implement common-hal I2C
* Add samd*_peripherals.h in parallel with samd*_pins.h for common
functions and data.
* Store SERCOM index in pins table for convenience.
* Canonicalize some #include guard names in various .h files.
simpler reset of SERCOMs; remove unused routine
2017-11-07 09:59:54 -08:00
Scott Shawcroft
a8ee0012d7
atmel-samd: Enable -Os for SAMD51 and update neopixel accordingly.
2017-11-06 16:30:11 -08:00
Scott Shawcroft
c90a2d9b42
atmel-samd: Fix SAMD51 SWCLK reset so we can connect the JLink
...
while CircuitPython is running.
2017-11-02 14:00:38 -07:00
Scott Shawcroft
a8dae22ae9
atmel-samd: Fix the neopixel delay method so it handles overflow better.
2017-11-01 11:56:54 -07:00
Scott Shawcroft
3177e10e9e
atmel-samd: Add samd21 neopixel support.
...
Also, fix and enable the status neopixel.
Fixes #264
2017-10-31 22:38:09 -07:00
Tony DiCola
d023879bea
atmel-samd: Update and enable neopixel_write for ASF4, tested on SAMD21 only.
2017-10-31 16:06:36 -07:00
Scott Shawcroft
4aeef100f6
atmel-samd: More USB polish
...
* Introduce a python script to generate the USB descriptor instead of
a bunch of C macros. In the future, we can use this dynamically in
CircuitPython.
* Add support for detecting read-only mass storage mounts.
Fixes #377
2017-10-30 18:29:20 -07:00
Scott Shawcroft
73c15dcf8b
Merge commit 'f869d6b2e339c04469c6c9ea3fb2fabd7bbb2d8c' into nrf2_merge
...
This is prep for merging in the NRF5 pull request.
2017-10-24 22:31:16 -07:00