Commit Graph

209 Commits

Author SHA1 Message Date
Scott Shawcroft
32c616b5dd
Initial Grand Central definition
It has a ton of pins in a Mega form-factor

This also includes a change to init the stack earlier. It fixes
a crash that occurs if the flash doesn't start correctly and the
original spot isn't reached.
2018-09-06 16:54:13 -07: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
9ea809bef7 add pin claiming to devices 2018-08-31 18:38:05 -04:00
Dan Halbert
585597a252 pin files rework; implement pin claiming; add more boards 2018-08-31 18:05:55 -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
Scott Shawcroft
2b6b0ffcd2
Remove HID from hallowing so we have more room for other stuff. 2018-08-20 18:04:35 -07:00
ladyada
aeeb40e02c
Change hallowing to shipping flash type W25Q64JV-IQ. tested! 2018-08-20 10:52:33 -07:00
Dan Halbert
1768057e87
add HalloWing 2018-08-20 10:52:24 -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
ladyada
d8f2a61c39 Change hallowing to shipping flash type W25Q64JV-IQ. tested! 2018-08-14 13:04:33 -04:00
Scott Shawcroft
94c5ceab36
Initial SAMR board revision. 2018-08-09 05:36:46 -07:00
Dan Halbert
680597547c add HalloWing 2018-07-29 19:22:16 -04:00
Dan Halbert
bf9981e8db bring all frozen libraries up to date 2018-07-03 14:39:21 -04:00
Dan Halbert
1f3de5174e Freeze Adafruit_CircuitPython_Crickit into crickit builds 2018-06-26 19:49:55 -04:00
jerryneedell
de4cd1ee73 add pins D3/D4 to pins.c
fixes  #948
2018-06-20 22:26:59 -04:00
Scott Shawcroft
769788d3c7 Turn off USB pin objects since they are always used for USB. 2018-06-08 12:56:32 -07:00
Kattni Rembor
ba7e0e2f86 Add Adafruit to other M4 board name strings 2018-06-07 13:39:04 -04:00
Kattni Rembor
7b2875d54a Add Adafruit to board name string 2018-06-07 13:33:13 -04:00
Kattni Rembor
0ab2a60dcd Update ItsyBitsy board name to one word 2018-06-07 13:12:44 -04:00
Dan Halbert
9ba6990228 Feather M0 Express build with Crickit libraries 2018-06-05 18:21:47 -04:00
Dan Halbert
7e7e33e460 add PA14 as D4 to Feather M4 Exprses 2018-06-05 08:15:34 -04: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
Noralf Trønnes
e158702a68 atmel-samd/samd51: Use crystal for RTC
This uses the crystal to clock the RTC on boards which have a crystal.

Disable clock generator 2 which was enabled in commit
8e2080411f ("atmel-samd: Add rtc module support").
samd51 differs from samd21 when it comes to the RTC clock. samd51 doesn't
have an explicit clock peripheral so no need for a clock generator.

The same commit didn't even setup XOSC32K correctly, it missed EN1K and XTALEN.

The RTC uses the 1k clock output, so enable it on the OSCULP32K even if it works without it.
2018-06-01 18:03:23 +02:00
Dan Halbert
eab8e43188 rev E feather M4 express; remove named AREF pins 2018-05-29 20:25:28 -04:00
Dan Halbert
b9f36184f5 refine pirkey build 2018-05-24 13:28:03 -04:00
Dan Halbert
083f91363a pirkey APA102 defs were commented out in mpconfigboard.h 2018-05-23 18:21:07 -04:00
Dan Halbert
22405d6bdb
Merge pull request #860 from dhalbert/3.0-cpx-crickit
turn off longint on cpx crickit; update frozen libs
2018-05-22 16:28:42 -04:00
Scott Shawcroft
165b28438a
Merge pull request #854 from python-ugame/extra-override
Allow overriding EXTRA_BUILTIN_MODULES in mpconfigboard.h
2018-05-22 10:22:35 -07:00
Dan Halbert
0d7db29630 turn off longint on cpx crickit; update frozen libs 2018-05-22 13:03:13 -04:00
Dan Halbert
45db48bbaa make longint choice mechanism more readable 2018-05-22 08:04:14 -04:00
Dan Halbert
5680933483 refactor longint settings; make crickit cpx build 2018-05-21 23:58:03 -04:00
Radomir Dopieralski
6a6ab2b0ec Allow overriding EXTRA_BUILTIN_MODULES in mpconfigboard.h
Some boards (like the uGame10) may want to have their own set of extra
modules. This change lets them override EXTRA_BUILTIN_MODULES in their
mpconfigboard.h and makes the ugame10 board do that.
2018-05-21 09:23:58 +02:00
Noralf Trønnes
cf33ad9a54 atmel-samd/samd21: Enable long int on Express boards
This is necessary for using 1970 epoch in the time module.
2018-05-18 12:35:26 +02:00
Matt Land
06b293af29 pirkey, trinket, ugame 2018-05-17 13:56:10 -04:00
Matt Land
a84845c0ae itsbitsy, metro 2018-05-17 13:48:33 -04:00
Matt Land
173a0a5faa arduino, circuitplayground, feather boards 2018-05-17 13:42:08 -04:00
Matt Land
e1cccd3dac rename to UART 2018-05-17 13:21:15 -04:00
Matt Land
2210fc60b1 Merge branch 'master' of https://github.com/adafruit/circuitpython into feature-default-serial 2018-05-17 13:08:43 -04:00
Matt Land
c846f4bdae remove newline 2018-05-17 12:17:06 -04:00
Matt Land
4fd4adf974 not working 2018-05-17 12:14:51 -04:00
Matt Land
30c625ff46 Merge branch 'feature-i2c-gemma' into feature-default-spi-circuit-playground 2018-05-16 17:58:03 -04:00
Matt Land
0511becd55 Merge branch 'master' of https://github.com/adafruit/circuitpython into feature-i2c-gemma 2018-05-16 17:55:43 -04:00
Matt Land
b9b742cc69 add spi def to all boards pins file 2018-05-16 17:43:14 -04:00
Matt Land
c2fa892a02 fix formatting 2018-05-16 17:38:44 -04:00
Matt Land
cc52f8efd9 Merge branch 'feature-i2c-gemma' into feature-default-spi-circuit-playground 2018-05-16 17:32:50 -04:00
Matt Land
e8e75c056a For the two boards without SCL and SDA can you still add the board global entry for I2C? That way they'll raise the NotImplementedError with the better message instead of a NameError. 2018-05-16 17:02:41 -04:00
Matt Land
de885e81b1 Merge branch 'feature-i2c-gemma' into feature-default-spi-circuit-playground 2018-05-16 16:07:55 -04:00
Matt Land
8a351595ef formatting, trailing newlines 2018-05-16 15:57:25 -04:00
Matt Land
2c067edf54 used pins.c instead of README.rst 2018-05-16 15:54:01 -04:00
Matt Land
3144654854 SPI for all boards 2018-05-16 15:36:36 -04:00
Matt Land
244866c2c3 spi on much 2018-05-16 15:25:24 -04:00
Matt Land
10888be8e8 fixed pins 2018-05-16 15:07:12 -04:00
Matt Land
8d1d821876 pin issue 2018-05-16 14:58:57 -04:00
Matt Land
ff6e6b5155 best effort 2018-05-15 15:33:27 -04:00
Matt Land
4e65752d6e feather m0 boards 2018-05-15 15:28:23 -04:00
Matt Land
cd1f6627e4 formatting 2018-05-15 14:09:00 -04:00
Matt Land
bd7f603748 zero + feather logger 2018-05-15 14:06:01 -04:00
Roy Hooper
7d443c87b3 Add gemma_m0 pin exclusions 2018-05-15 14:03:39 -04:00
Matt Land
a10f04ad6e support for 2 2018-05-15 13:53:53 -04:00
Matt Land
b0bacd9b0b review code 2018-05-15 13:15:24 -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
Scott Shawcroft
d3a5d40374
Merge pull request #785 from notro/rtc_calibration
atmel-samd/samd21: Rework clock setup + calibration
2018-05-08 10:55:51 -07:00
Noralf Trønnes
2893e795fc atmel-samd/samd21: Use XOSC32K on boards with a crystal
Use XOSC32K on boards that have BOARD_HAS_CRYSTAL defined and set to 1.
2018-05-05 18:45:15 +02:00
Dan Halbert
32363b801b 3.0: add CircuitPlayground and HID to CPX frozen modules 2018-05-04 08:44:33 -04:00
Scott Shawcroft
898a7d92e3 atmel-samd: Fix M4 RTC and ItsyBitsy M4 definition 2018-04-19 14:42:03 -04: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
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
Scott Shawcroft
2a26dac2bc Add initial ItsyBitsy M4 support 2018-04-12 11:16:52 -07:00
Jeff Epler
5eb9f9d060 atmel-samd: Fix rebooting to bootloader
Commit efbf08266b moved _estack in order to ensure 8-byte alignment
of the stack, but the address of _bootloader_dbl_tap must remain
right at the end of SRAM.

I verified by reading the source that the 4-byte-aligned address is
used for all samd21 / samd51 boards in
adafruit/circuitpython@efbf08266b.  However, I only tested on
trinket_m0.

Closes: #739
2018-04-03 21:40:10 -05:00
Scott Shawcroft
63d826a52a
Update USB PID 2018-03-23 09:34:02 -07:00
Scott Shawcroft
fd7dcff4e9 Add Feather M4 Express support.
* Also fixed detection of SPI flash chip to correct look in the 2+
spots.
* Added support for using QSPI in dual read mode.
2018-03-23 00:00:13 -07:00
Scott Shawcroft
3bf4d69f67 Update Metro M4 to rev F and make flash reset on start. 2018-03-22 16:42:47 -07:00
Kattni
05e2a7d1ac Added digital pin assignments 2018-03-15 20:28:09 -04:00
jerryneedell
04b4026666
fix dotstar for Gemma_M0 in CP3.0
Uncomment lines in mpconfigport.h for gemma_m0 to allow dotstar access.  same issue as #514 for trinket_m0
2018-03-14 21:28:56 -04: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
Scott Shawcroft
01aceaae50 Support all boards and remove erase and page sizes because they never change. 2018-03-01 12:45:12 -08:00
Scott Shawcroft
2ab923862b Structify flash device definitions. 2018-02-28 19:15:54 -08:00
Scott Shawcroft
bf05183158 Merge remote-tracking branch 'adafruit/2.x' into merge_2x 2018-02-27 15:24:16 -08:00
Dan Halbert
cc7acfd491 consistently brand Itsy Bitsy M0 as 'Express' 2018-02-26 17:37:03 -05:00
Dan Halbert
957a82b592 add board.RX and .TX pins to metro_m4_express_revb 2018-02-23 09:54:39 -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
Scott Shawcroft
d02251f8cd Add a new board for Metro M4 Express Rev B. This is the board
send to community members for testing.

Also tweaked and commented reset pin list for main Metro M4 Express
which is currently unreleased and is Rev D.
2018-02-20 12:34:07 -08:00
Scott Shawcroft
15f626be58 m4 qspi works. m0 compiles 2018-02-19 14:02:04 -08:00
Scott Shawcroft
f20d5723aa Reorganize things. Reading jdec works. 2018-02-19 14:02:04 -08:00
Scott Shawcroft
4710a2adba Compiles for m4. Untested on m0.
This introduces a new spi_flash_api.h that works for both SPI and
QSPI. The previous spi_flash functions are now called external_flash
to minimize confusion.
2018-02-19 14:02:04 -08:00
Scott Shawcroft
a2bd772d5c Begin rework to add qspi support. 2018-02-19 14:02:04 -08:00
Dan Halbert
b001c0711b Correct _etext location; clean up .ld files
1. Make _extext and _sidata coincide. Old _etext location did not include
.ARM.exidx sections, which were usually absent but not always. So flash
data was copied to RAM in wrong place.
2. Use decimal constants with "K" and "M" suffixes in .ld files instead
of hex constants, to make them easier to read and check for accuracy.
2018-02-09 11:31:18 -05:00
Dan Halbert
eb49359aec CPX: typo in mpconfigboard.h broke CIRCUITPY 2018-01-30 15:48:22 -05:00
Radomir Dopieralski
d595a03bbd Update ugame port for the final ugame10 version
There have been multiple uGame prototypes with differences in the pins
and other details. This updates the board definition to fit the final
uGame 10 design.
2018-01-29 22:19:09 +01:00
Dan Halbert
efbf08266b make _estack be double-word aligned 2018-01-24 19:24:36 -05:00
brentrubell
ab1f133667 issue #536 CPX change SPI pin designations to externally available pins (#540)
* issue #536 CPX

* switched pin assignment
2018-01-22 19:31:55 -08:00
Tony DiCola
4bd1d09d74 Add missing Feather M0 RadioFruit boards: RFM69, RFM9x (#539) 2018-01-19 11:53:47 -08:00
Dan Halbert
d0cc8abd31 revise boards/ files for 3.0. All now compiled (but I don't have all to test). 2018-01-04 14:16:53 -05:00
Dan Halbert
d8686cc002 use correct LD_FILE in mpconfigboard.mk for boards with external flash 2018-01-03 16:49:38 -05: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
Stewart Colborne
5eb7958425 ports/atmel-samd/boards/feather_m0_adalogger/pins: Added missing pins
- Added D4 and moved associated SD_CS so that they are paired within list
- Added D7 and SD_CD which is the SD Card Detect pin
- Added D8 and GREEN_LED
- Added RED_LED associated with D13
2017-11-25 22:00:32 -08:00
mrmcwethy
e0eae5cb2a Enable the Neopixel status light on Metro M0 Express and Feather M0 Express boards 2017-11-21 14:39:56 -08: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
Scott Shawcroft
3cb5e7ea58 atmel-samd: Update Feather M0 Express USB PID
This makes it different from the bootloaders and Arduino.
2017-11-07 14:26:37 -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
f4c8256345 atmel-samd: Add TX/RX led support for Metro M4. 2017-10-31 22:39:16 -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