hathach
96075f637e
update tinyusb to support bi-directional HID
2019-05-02 21:01:36 +07:00
hathach
ab16f9899d
add menu dropdown list for usb stack selection
2019-05-01 01:01:59 +07:00
hathach
617cc6c596
rename usb core folder
2019-04-30 00:21:13 +07:00
hathach
9c07070580
get msc & hid example work with metro m0 express
2019-04-30 00:12:17 +07:00
ladyada
e40e387213
Fix for https://github.com/cstawarz
2019-04-24 12:47:02 -04:00
ladyada
da400c7283
Merge branch 'pb-overclock'
2019-04-22 16:36:57 -04:00
Phillip Burgess
2b2b8f0610
Add max SPI speed select menu for M4
2019-04-21 22:30:57 -07:00
ladyada
e35b44b997
Merge branch 'master' of github.com:adafruit/ArduinoCore-samd
2019-04-21 01:55:18 -04:00
ladyada
a89a0dfe23
tweaks to make gamebuino meta compile
2019-04-21 01:54:21 -04:00
Limor "Ladyada" Fried
bc8d8b861f
Overclocking and optimizer settings for M4 boards ( #100 )
2019-04-21 01:47:47 -04:00
Phillip Burgess
2061fe33c7
Overclocking and optimizer settings for M4 boards
2019-04-19 21:08:44 -07:00
jesserod
bd082fa1f6
Do not initialize all pins to INPUT ( #98 )
...
Comment out the initialization of all SAMD21 pins to INPUT to allow them to remain tri-stated by default.
See https://github.com/adafruit/Adafruit_SleepyDog/issues/17#issuecomment-481798215
2019-04-17 11:40:56 -04:00
ladyada
4f8619b918
re-add erase, change Tone TC to TC3
2019-04-10 08:31:22 -04:00
ladyada
79fc15cdc5
fix merge
2019-03-08 17:12:10 -05:00
ladyada
4d8adc9be4
Merge branch 'master' of https://github.com/arduino/ArduinoCore-samd into arduino-master
2019-03-08 14:03:54 -05:00
aryelevin
98e2a3e429
Some fixes to the startup code - clocks configs ( #89 )
...
* Reverted 1MHz clock generator to GCLK5 instead GCLK7
Fixed the clock divider of 1MHz clock generator to be 48 (its source is DFLL which clocking at 48MHz, so 48 / 48 = 1, it was 48 / 24 = 2).
Updated the PLLs to the proper Ratio afetr the change of the 1MHz clock source.
Disabled GCLK_GENCTRL_DIVSEL reg on the 12MHz clock generator, since this caused the clock to be 1.5MHz.
* Fixed a description comment.
2019-02-13 15:27:27 -05:00
ademuri
d2620a72d2
Fix analog ref enums. ( #83 )
...
AR_INTERNAL was removed in #74 . Because of this, non-SAMD51 boards fail because AR_INTERNAL isn't defined.
This also define AR_INTERNAL_2V23, which is also used for non-SAMD51
boards.
2019-01-26 15:26:05 -05:00
Florian Heilmann
458b5d9dd7
Fix 'Unused Parameter' warnings in HardwareSerial.h ( #78 )
...
This small change removes many of the warnings that are generated when compiling this core with warnings switched on.
2019-01-11 12:21:49 -05:00
Bill Westfield
2ca67fc36b
Fix delayMicroseconds() on SAMD51 ( #77 )
...
* Fix pulseIn() on SAMD51 by writing it in plain C, so that
the CM0+-specific pulse_asm won't need to be linked.
The SAMD51 is fast enough that we can time pulses with micros()
Tested with a bunch of pulse lengths from <1us to >1s
* Implement a new delayMicroseconds() function for SAMD51
This version enables the "Debug Watchpoint and Trace" module (DWT)
in startup.c and then uses the 32bit cycle counter that is part
of DWT to count cycles indepenent of instruction timing.
Tested for good accuracy with various values between 1 and 2000us.
2019-01-09 19:57:43 -05:00
Bill Westfield
f4b1ecfcea
Fix pulseIn() on SAMD51 by writing it in plain C, so that ( #76 )
...
the CM0+-specific pulse_asm won't need to be linked.
The SAMD51 is fast enough that we can time pulses with micros()
Tested with a bunch of pulse lengths from <1us to >1s
2019-01-09 12:05:51 -05:00
John Baker
166b43b8dc
Update wiring_analog.c and wiring_analog.h ( #74 )
...
* Update wiring_analog.c and wiring_analog.h
* Correct typos in comments so voltages are correctly identified
2019-01-05 18:42:09 -05:00
Riccardo Rizzo
3b6466b5e6
More accurate delay() function from BenF.
...
porting of 67c0a1995a (diff-ab397febf179e1982f4ee0758df4c982)
2018-12-13 10:33:06 -05:00
dean
0c9bb3488b
DM: fix pwm initialization bug
2018-11-29 15:40:31 -05:00
dean
c7fa463c0d
DM: fix pwm?
2018-11-29 13:54:35 -05:00
Sandeep Mistry
9d83af3e05
Fix USB warnings
2018-11-27 09:39:36 -05:00
Sandeep Mistry
da9bfe8cf9
Increase the default serial buffer size to 256 (variant can override via define)
2018-11-27 09:25:54 +01:00
deanm1278
9828191030
add grand central m4 ( #67 )
...
* DM: grandcentral variant
* DM: updates for m4 mega
* DM: metro mega updates
* DM: fixes for mega m4 pcc
* DM: fix grandcentral boards.txt naming
* DM: remove openocd for samd51, fix include guards
* DM: remove unnecessary debug scripts for m4 boards
2018-11-20 08:26:01 -08:00
Riccardo Rizzo
4a6d6ee5ee
fix freeze due to tone()
...
In file Tone.cpp added suffix -1LL to the costant in line 117 in order to avoid freeze for instance of tone(pin, 35000);
2018-11-16 09:15:45 -05:00
dean
4429b05805
DM: fix samd21 dac resolution
2018-11-12 12:19:29 -05:00
dean
0a24711890
DM: update PWM for trellis m4 and m0 boards
2018-11-08 14:34:51 -05:00
dean
ddba3e4e6e
DM: pwm fixes for feather
2018-11-07 18:03:57 -05:00
dean
83c5e15af2
DM: PWM fixes
2018-11-07 17:09:22 -05:00
dean
902d525d3c
DM: add ADC1 support for SAMD51
2018-11-05 13:58:32 -05:00
dean
bcfd9a0faa
Merge branch 'master' of github.com:adafruit/ArduinoCore-samd
2018-11-05 13:18:13 -05:00
dean
0654cd01b3
DM: fix interrupt handling
2018-11-05 13:18:00 -05:00
ladyada
074fe0fa9b
re-set to 100mA default for iOS support
2018-11-02 13:48:39 -04:00
Gabriel Notman
253e40e736
Removes the requirement that the DAC is on A0 (which requires that A0 uses PA02)
2018-10-23 13:51:49 +02:00
gdsports
9ac80d9a3a
Fix memory overwrite in USBHost
...
Fix issue #271 .
2018-10-23 11:31:34 +02:00
Martino Facchin
3b38a41278
Inplement USBDevice.end()
2018-10-23 11:19:08 +02:00
Martino Facchin
d5557ec4b4
Clear _usbLineInfo structure on SerialUSB.end()
2018-10-23 11:19:08 +02:00
dean
d2ef319833
DM: set all samd boards to 250k sps ADC
2018-10-01 13:17:34 -04:00
dean
00dd128b04
DM: update SAMD51 ADC sampling rate
2018-10-01 13:02:27 -04:00
dean
1de5f31752
DM: samd51 pwm fix for rebase
2018-09-04 12:02:26 -04:00
dean
bcc44cc6a1
DM: samd51 USB fix for rebase
2018-09-04 11:50:37 -04:00
dean
0c05d94c8a
DM: fix analog write for rebase
2018-09-04 10:50:50 -04:00
dean
b661033db6
DM: tc fix from rebase
2018-08-30 15:43:05 -04:00
dean
b7e942d924
DM: fix stuff from rebase
2018-08-30 15:40:15 -04:00
dean
87eae6f55c
DM: add copyrights
2018-08-30 15:12:51 -04:00
ladyada
19e4a449f4
re-fix xtalless, add cache & freq fix
2018-08-30 15:12:33 -04:00
dean
d6372a3b1e
DM: don't use normal delay in analogWrite
2018-08-30 15:12:32 -04:00
dean
a110eb10db
DM: update pwms, timer definitions
2018-08-30 15:12:32 -04:00
dean
a3493e3625
update clocks to match arduino samd
2018-08-30 15:12:32 -04:00
ladyada
49775dd780
see https://github.com/adafruit/ArduinoCore-samd/issues/37
2018-08-30 15:11:47 -04:00
dean
d3421947f9
DM: fix some pwms
2018-08-30 15:11:21 -04:00
dean
540780d3d1
DM: fix dac clock and first write bug
2018-08-30 15:11:21 -04:00
dean
87492c3a0d
DM: fix dac not holding value bug
2018-08-30 15:11:21 -04:00
dean
8106e6bfa4
DM: fix interrupts, pcc pins
2018-08-30 15:09:31 -04:00
dean
c22cb29d06
DM: delete mistake file
2018-08-30 15:08:17 -04:00
dean
9b30cd8a59
DM: fix delay microseconds
2018-08-30 15:08:17 -04:00
dean
e9857aec00
DM: update pwms for samd51
2018-08-30 15:08:17 -04:00
dean
f618756fde
DM: update feather m4 pinout for new rev
2018-08-30 15:08:16 -04:00
dean
0d70c98518
update pinout and stuff for new revision
2018-08-30 15:08:16 -04:00
dean
7f74c2126e
update usb stuff
2018-08-30 15:08:16 -04:00
dean
2c2eb81a42
DM: fixed m0 boards compilation error with math additions
2018-08-30 15:03:49 -04:00
dean
bbff6c115d
DM: some I2S stuff
2018-08-30 15:03:29 -04:00
dean
f286f9e8d4
DM: added math libraries
2018-08-30 15:03:03 -04:00
dean
f86a7b6af7
DM: updated magic number to match circuitpython stuff
2018-08-30 14:59:48 -04:00
dean
b8b35ee319
DM: fix worst bug in entire world
2018-08-30 14:59:48 -04:00
dean
fb011ea2a8
DM: we have a 12 bit dac lets use
2018-08-30 14:59:48 -04:00
dean
0908d0aee4
DM: fix tone 0 frequency
2018-08-30 14:59:17 -04:00
dean
2b0f87a73d
DM: some usb host fixes (still not working)
2018-08-30 14:59:17 -04:00
dean
498e819a51
DM: fix upload bug
2018-08-30 14:59:16 -04:00
dean
9eecac827b
DM: updates for rev B
2018-08-30 14:59:16 -04:00
dean
a7277e6547
DM: adding feather m4
2018-08-30 14:58:44 -04:00
dean
6820318d33
DM: EIC and VARIANT_MCK fix
2018-08-30 14:58:20 -04:00
dean
dc93e828f0
DM: fixed USB enumeration bug in bootloader and core
2018-08-30 14:56:11 -04:00
dean
4c1bca832e
DM: update sercom IRQs for M4
2018-08-30 14:56:11 -04:00
dean
850c490a53
DM: fixed dpll1 freq
2018-08-30 14:56:11 -04:00
dean
33e58f40c4
DM: fixed SERCOM baud rates
2018-08-30 14:55:41 -04:00
dean
9ace80d803
DM: not crystalless
2018-08-30 14:54:36 -04:00
dean
01de36ef16
DM: oops committed wrong stuff, actually fixed DPLL problems
2018-08-30 14:54:36 -04:00
dean
1cc5f0cde4
DM: lets not feed PLLs from xosc
2018-08-30 14:54:36 -04:00
dean
8a32178667
DM: bugfixes
2018-08-30 14:53:34 -04:00
dean
059b15f5dd
DM: added FPU support
2018-08-30 14:53:34 -04:00
dean
785aea4f65
DM: fixed DAC, SPI
2018-08-30 14:53:33 -04:00
dean
2ce0635ebc
DM: added metro m4 variant
2018-08-30 14:51:09 -04:00
ladyada
bc2a5fc4be
trinket m0 start
2018-08-30 14:46:42 -04:00
dean
c1827b289d
DM: added support for samd51J20A
2018-08-30 14:46:42 -04:00
dean
4810822d26
DM: mostly fixed usb enumeration delay
2018-08-30 14:44:35 -04:00
dean
b5c2b6483b
DM: clocked to 120MHZ, peripherals to 100, USB to 48
2018-08-30 14:44:35 -04:00
dean
77a2f2e9ea
DM: fixed tone
2018-08-30 14:44:35 -04:00
dean
0a2393f4ce
DM: fix switching between dac output and analogread
2018-08-30 14:44:35 -04:00
Phillip Burgess
158ed33b1c
Allow attachInterrupt() on NMI pin (PA08 on ATSAMD21E)
2018-08-30 14:44:35 -04:00
dean
df5669a403
DM: fixed pwm and dac (almost)
2018-08-30 14:34:14 -04:00
ladyada
03eae9b5c5
Add Gemma m0 - tested just about everything
2018-08-30 14:34:13 -04:00
dean
358b11addd
DM: added samd51 support
2018-08-30 14:32:21 -04:00
ladyada
3615cb1b47
bigger buffer for Wire
2018-08-30 14:27:14 -04:00
ladyada
8d5ac4304a
another A6/A7 fix
2018-08-30 14:24:09 -04:00
ladyada
b34deb4e81
align back to mainline (and put in missing Serial5) - not sure if USB serial LEDs were causing hangups on 1200baud bumps? :/
2018-08-30 14:23:07 -04:00
ladyada
d19c8e35a9
cleaned up slight difference in USB union bitflags with a new USBDevice.h - compiles blink
2018-08-30 14:21:26 -04:00
ladyada
605017712a
fixed up DAC refs
2018-08-30 14:20:50 -04:00
ladyada
ae249718d4
add USB CDC RX & TX LEDs with 10ms minimum on time, tested
2018-08-30 14:18:05 -04:00
ladyada
012d86c1d3
make it so native USB is Serial
2018-08-30 14:12:25 -04:00
Todd Treece
9eda56e7db
adds new boards.txt
2018-08-30 14:09:49 -04:00
ladyada
4e41949c96
add support for A6 (D8) and A7 (D9)
2018-08-30 14:03:04 -04:00
Martino Facchin
f4dfac890f
Always call new DoubleBufferedEPOutHandler on reconnect
...
Avoid memory leak by deleting the buffers; DoubleBufferedEPOutHandler should be refactored (in beta branch) to allow separate "new" and "setup" procedures
Fixes #350
2018-08-24 12:24:49 +02:00
Sandeep Mistry
a62ef2633b
UART frame error handling
2018-08-17 16:37:47 -04:00
gdsports
95bcb7cf3a
Fix CDC_ENABLED
...
Undefining CDC_ENABLED triggered a compiler error. With this fix, the
CDC ACM configuration can be disabled.
2018-02-20 16:49:11 -05:00
Sandeep Mistry
69fcf8db46
Make ring buffer head and tail indexes volatile
2018-02-14 12:39:57 -05:00
Sandeep Mistry
b753095e56
Correct I2C frequency calculation formula
...
Allow variant to override the default rise time in nanoseconds via
define
2018-01-25 11:31:04 -05:00
Sandeep Mistry
a7c33fea4b
UART: manually handle IRQ if DRE + interrupts disabled or in higher priority ISR
...
When write is called and TX buffer is full.
2018-01-25 11:27:16 -05:00
Mitchell Pontague
ee913a0828
samd21e sercom compatibility ( #280 )
...
Make sercom4 and sercom5 optional to allow compilation of samd21e variants.
2018-01-25 11:25:58 -05:00
Martino Facchin
2bb54068a2
Don't reallocate USB buffers if already allocated
...
USB Configuration was meant to run only once, but if the board comes back from standby the host can reconfigure the device again.
Probably a cleaner patch could be free()-ing the buffers on standby() to release the memory but at least we don't leak anymore.
Fixes https://github.com/arduino/ArduinoCore-samd/issues/293
2018-01-25 11:20:41 -05:00
Martino Facchin
503a9b3954
Make RingBuffer class template-based
...
This commit prepares to enlarge the ringbuffer for specific needs (at compile time).
Also, it fixes a spurious include in delay.h
2018-01-25 10:48:26 -05:00
Sandeep Mistry
d58b840f63
Add missing USBCON wrapper
2018-01-08 10:41:14 -05:00
agdl
8f5e2eb58c
Changed boradcast variable to enableGeneralCall
2017-12-15 09:06:48 -05:00
agdl
6a1295459b
Allow General Calls on I2C bus (aka brodcast)
2017-12-15 09:06:48 -05:00
Kees Bakker
fd15a1c603
Avoid read-modify-write when enabling SERCOM DRE interrupt
2017-12-11 08:55:04 -05:00
Sandeep Mistry
af14b97ee2
Use port manipulation instead of SERCOM h/w for UART RTS
2017-11-29 13:49:13 +01:00
Sandeep Mistry
c26a21f748
Make UART RTS + CTS configurable in constructor only
2017-11-29 13:49:13 +01:00
Sandeep Mistry
7fc402f3b5
Leverage SERCOM h/w functionality for RTS and CTS
2017-11-29 13:49:13 +01:00
Sandeep Mistry
bd1bd60815
Add optional RTS + CTS support to UART
2017-11-29 13:49:13 +01:00
Andreas Watterott
7e37bb3b12
No fixed value for USB power current.
2017-11-09 19:50:41 +01:00
Cristian Maglie
812d3e90cc
Put interrupt mask instead of interrupt num in ISR callbacks list
...
This should save some cycles inside ISR Handler.
2017-09-08 17:00:17 +02:00
Cristian Maglie
9d9fe5c097
Slightly clearer formula for interrupt config register position
2017-09-08 16:55:33 +02:00
Cristian Maglie
1330914898
Some code makeup
2017-09-08 16:05:40 +02:00
Cristian Maglie
02d8bf82a2
Fixed allocation/deallocation of interrupts subroutines
2017-09-08 15:37:29 +02:00
Cristian Maglie
d2b717871b
interrupts: remove unneeded cleanup
2017-09-08 11:35:02 +02:00
joverbee
9a49ce2fc4
Improve interrupt handling response time
...
Change the way ISRs are stored. Store now in a list on a ‘first come
first served basis’, the first interrupt that gets attached will be
served first. This improves the speed of the ISR calling from about 6us
to 2us for a single interrupt on extint14
See #200
2017-09-05 14:12:10 +02:00
joverbee
a9fa694eb7
Reset sense bits before or-writing the new sense signature
...
Solve #199
2017-09-04 16:51:36 +02:00
Cristian Maglie
af0263a60a
More accurate approximation for multiplication factor of PLL to make 48Mhz.
...
Fix #223
2017-09-01 21:35:15 +02:00
Cristian Maglie
3d51b54386
Some updates on Stream and Print class.
2017-08-23 19:22:11 +02:00
Sandeep Mistry
0ee62489c0
Replace utoa + toupper with custom loop
2017-08-23 19:21:01 +02:00
Sandeep Mistry
61b060c732
Slim serial number to hex string conversion
2017-08-23 19:21:01 +02:00
Sandeep Mistry
9370464ad0
Use SAMD21 serial number for USB serial number prefix
2017-08-23 19:21:01 +02:00
Victor Nakoryakov
4ffc9d2bdb
fix for pgm_read_ptr macro
2017-08-23 17:10:30 +02:00
Cristian Maglie
33709782bd
Merge branch 'buffer-serial-tx'
2017-07-11 16:28:04 +02:00
Cristian Maglie
08de7f176c
Fix prototypes to strictly match Arduino API
...
See https://github.com/arduino/Arduino/issues/4525
2017-07-11 16:00:11 +02:00
ladyada
06ae2087ce
fix for crystal-less startup stability
2017-07-11 15:59:31 +02:00
Adminius
74a12d0f25
changes PWM resolution to 16bit for all timers
...
PWM frequency 732 Hz
2017-07-11 15:45:38 +02:00
Sandeep Mistry
46653a61e1
Change IRQ handler to check if data is available before check for DRE
2017-07-11 12:58:15 +02:00
Sandeep Mistry
610d4a8b8b
Also check if TX buffer is empty before writing to data to UART reg directly
2017-07-11 12:58:15 +02:00
Sandeep Mistry
12b3774c3f
Use reg instead of bit to enable/disable the DRE interrupt
...
The RXC interrupt was being disabled when using bit to disable the DRE
interrupt.
2017-07-11 12:58:15 +02:00
Sandeep Mistry
aa400fd434
Update flush to also wait for TX buffer to empty
2017-07-11 12:58:15 +02:00
Sandeep Mistry
158df98d0c
Correct disableDataRegisterEmptyInterruptUART to use INTENCLR instead of INTENSET
2017-07-11 12:58:15 +02:00
Sandeep Mistry
b24c9e5b68
TX buffering for UART using RingBuffer
2017-07-11 12:58:12 +02:00
Sandeep Mistry
57c432e688
Add enable and disable data register interrupt APIs for UART
2017-07-11 12:51:58 +02:00
Sandeep Mistry
38992c2a9e
Add availableForStore method to RingBuffer
2017-07-11 12:51:58 +02:00
per1234
a32ac8cdb9
Update comments to reflect Stream functions changed from private to protected
...
These functions were changed from private to protected but the comments were not updated at that time.
In conjunction with equivalent pull requests to Arduino AVR Boards and Arduino SAM Boards, solves #6146 .
2017-07-07 10:12:25 +02:00
Sandeep Mistry
70b011b077
USB: Only swap incoming buffers for non-ZLP's
2017-05-02 10:01:03 -04:00
Martino Facchin
b9ac48c782
Implement low power functionality on USB subsystem
...
This enables remote wakeup on CDC driver, so we can safely call standby() and maintain the Serial prints on resume.
2017-04-04 10:50:22 +02:00
Cristian Maglie
213cc933d5
small fix to indentation
2017-03-31 15:12:58 +02:00
Arturo Guadalupi
91bee1d2ee
Merge pull request #203 from sandeepmistry/ota
...
Add support for updating sketches from an SD card
2017-03-02 12:30:14 +01:00
Cristian Maglie
647e729651
Removed wrong cast to uint8
...
Fix #216
2017-03-01 09:51:34 +01:00
Martino Facchin
4ac0cc1df0
Fix 8MHz clock being generated incorrectly
...
CMSIS-Atmel 4.5 changed the prescaler defines to match the bit mask, not the actual prescaler value, thus `SYSCTRL_OSC8M_PRESC_1_Val` now means "divide by 2"
Fixes https://github.com/arduino/ArduinoCore-samd/issues/214
2017-02-28 09:43:02 +01:00
Sandeep Mistry
a15d190ada
Add support for updating sketches from an SD card
...
Via 2nd stage boot code that checks SD card for UPDATE.bin
2017-02-15 15:31:18 -05:00
Martino Facchin
9dac5f1679
Merge pull request #196 from sandeepmistry/udp-begin-multi
...
Add virtual beginMulticast(...) stub to UDP class
2017-02-08 15:36:24 +01:00
Johnny Willemsen
280d92d9de
Fixed unused variable warning, see issue #209
...
* cores/arduino/wiring.c:
2017-02-07 12:49:55 +01:00
Sandeep Mistry
33efce53f5
Set full PINCFG register on pinMode(pin, OUTPUT)
2017-01-24 10:07:12 -05:00
Sandeep Mistry
d4210ea2d0
Add virtual beginMulticast(...) stub to UDP class
2017-01-03 13:41:58 -05:00
Bumsik Kim
e046d4337e
fixed utoa type conflict
2017-01-03 09:09:50 -05:00
Cristian Maglie
428433f963
Merge branch 'bootloader-cmsis-fix'
2016-12-20 16:59:12 +01:00
Martino Facchin
95963e6ff7
Merge pull request #185 from facchinm/autoconf_sketch_start_banzai_mainline
...
Add method to automatically retrieve sketch start
2016-12-20 14:39:08 +01:00
Sandeep Mistry
80f629c379
Correct epBank1EnableTransferComplete
2016-12-19 16:30:52 -05:00
Cristian Maglie
2f3b976652
Updated crystalless startup to be compliant with CMSIS-Atmel 4.5
2016-12-19 16:02:20 +01:00
Cristian Maglie
7b8e0b11ed
Added support for crystal-less configurations
2016-12-19 14:48:29 +01:00
Martino Facchin
7ddb26678f
Avoid erasing the chip if the sketch doesn't contain a bootloader
...
Use the information retrieved from the linker script in use to simply call a reset without any erase
2016-12-16 10:25:06 +01:00
Martino Facchin
ce5405f396
Add method to automatically retrieve sketch start
...
The exported variable is used by banzai() to avoid erasing any bootloader part
2016-12-15 18:48:40 +01:00
Martino Facchin
d2b2ff928e
Declare main and init so the user can't "overwrite" them
2016-12-15 18:34:15 +01:00
Martino Facchin
86ae860677
Enlarge USB serialNumber buffer
2016-12-15 18:34:05 +01:00
Sandeep Mistry
38683e36b6
Changes required for new CMSIS package upgrade
...
Fixes some compile errors and warnings
2016-12-02 10:48:52 -05:00
Sandeep Mistry
5a033fed7d
Add I2S support
2016-11-25 09:37:26 -05:00
Sandeep Mistry
e77ae8fe8e
Optimize SPI transfers
2016-11-17 17:17:05 -05:00
Cristian Maglie
ce89e7e244
Launch libc initialization after hardware setup
...
This pachs allows C++ global constructors to run after hardware
initialization. This helps some libraries that setups hardware
in class constructor to work properly.
See also #169
2016-10-11 18:40:20 +02:00
Cristian Maglie
8737fd8fb5
Merge branch 'fix-usbserial-available'
2016-10-11 00:00:17 +02:00
Cristian Maglie
b06501baee
Fix regression: SerialUSB.available() do not return correct values
...
Fix #172
2016-10-10 12:43:14 +02:00
Mike D
126b167693
Fixed issue where pins were not being configured properly in analogWrite when multiple channels of the same TCC/TC module were being used to drive outputs.
2016-10-03 11:55:43 -07:00
Cristian Maglie
13b371ba37
Merge remote-tracking branch 'sandeep/usb-send-timeout-take-2' into HEAD
2016-09-15 15:08:36 +02:00
Sandeep Mistry
c7c6f709b5
WString: add toDouble
...
Port of https://github.com/arduino/Arduino/pull/5362
2016-09-14 13:46:30 -04:00
Sandeep Mistry
b2462a5a1a
Remove line state check in Serial_::write
...
It’s no longer needed with the timeout mechanism in USBCore.
2016-08-31 11:21:40 -04:00
Sandeep Mistry
8f7873cea5
Add comment on inspiration
2016-08-31 11:21:40 -04:00
Sandeep Mistry
8afe969ed2
Make transmit timeout per endpoint
2016-08-31 11:21:40 -04:00
Sandeep Mistry
b627e00b17
Add USB send timeout
...
Timeout is checked on the next send attempt. Initial timeout is set to
70ms, after a time out occurs and the previous transfer is still not
complete a send will report as failed. If a send times out, a ZLP will
be in the send queue to check for future timeouts.
2016-08-31 11:21:40 -04:00
Cristian Maglie
5dd2adc41d
USBD: Rewritten RX/TX LED conditions in a slighlty more clear way
2016-08-29 17:06:56 +02:00
Cristian Maglie
0605c11e76
USBD: RX LED now blinks again (fixed regression)
2016-08-29 17:05:16 +02:00
Cristian Maglie
4691ef4ba0
USB: Added optimized Stream::readBytes for EP OUT handler
...
This bypass the generic (but inefficient) implementation of Stream::readBytes
and uses an optimized version of readBytes than can do efficient multi-byte reads.
2016-08-24 12:50:37 +02:00
Cristian Maglie
3127d1dc51
USB-CDC: Increased buffer size to 256 bytes
...
This change improves read performance when massive data is sent
via USB by exploiting the hardware capability to handle multi-packet
transfers autonomously.
2016-08-24 12:50:25 +02:00
Cristian Maglie
5265e1215a
USB: EP0 ::recv method has been merged with ::read method
...
It makes no sense to have ::recv calling repeatedly ::read in this
case.
2016-08-24 12:37:27 +02:00
Cristian Maglie
2e44a4d961
USBD: Added critical sections to EP OUT handler
2016-08-24 01:04:58 +02:00
Cristian Maglie
a9127228d6
USB: Slightly refactored EP OUT handler
...
Now the release() function only performs the action that is called for,
i.e. release the endpoint and let it receive data. All the buffers handling
has been inlined in the callers, this also slightly improves performance
because it allows to remove some redundant checks.
2016-08-24 01:04:58 +02:00
Cristian Maglie
87bf6e1bf1
Fixed some comments
2016-08-24 01:04:58 +02:00
Cristian Maglie
3ba1a35296
Moved EPHandler in USBDevice headers
...
The reference to the upper USBDevice class is passed on
the EPHandler constructor.
2016-08-24 01:04:58 +02:00
Cristian Maglie
7d37753904
USB-CDC: OUT EP is now handled with a custom EPHandler
2016-08-24 01:04:58 +02:00
Cristian Maglie
9f24bbe9a8
USB: Added an OUT EP handler with double buffering.
2016-08-24 01:04:58 +02:00
Cristian Maglie
b2ddb2267d
USB: Added interface to possibly setup dynamic USB EP Handler
2016-08-24 01:04:58 +02:00
Cristian Maglie
34bf5421f8
USB: set return type of USBDevice::recv(ep) to int
...
this is the proper type to encapsulate a byte when data is available
or -1 when there is no data.
2016-08-24 01:04:58 +02:00
Cristian Maglie
40d9554ed3
USB-CDC: Avoid need to send ZLP by sending up to (EPX_SIZE-1) bytes at a time
2016-08-24 01:04:58 +02:00
Cristian Maglie
07263f8bf3
USB-CDC: reset EP OUT count upon reception
2016-08-24 01:04:58 +02:00
Cristian Maglie
19ae0eb4d4
USB-CDC: access to rx buffer is now ISR-protected
2016-08-24 01:04:58 +02:00
Cristian Maglie
9f678cb416
USB-CDC: Refactored EP OUT handling
2016-08-24 01:04:58 +02:00