Commit Graph

56 Commits

Author SHA1 Message Date
Ron Evans c3a15885f5 machine/itsybitsym0: correct comments for UART1 pin mapping and note which of the analog pin mapping require the second port, which is not yet implemented
Signed-off-by: Ron Evans <ron@hybridgroup.com>
2019-02-01 13:15:01 +01:00
Ayke van Laethem 914d383a96 all: update import paths to github.com/tinygo-org/tinygo 2019-01-31 17:43:19 +01:00
Ron Evans 19b4476cbb Implement PWM interface for SAMD21 (#157)
* machine/atsamd21: implement PWM interface for all pins that support it
* machine/atsamd21: correct PWM channel mapping for pin PA18
* machine/atsamd21: move clock init into InitPWM() to hopefully save power
2019-01-28 13:48:52 +01:00
Ron Evans 4f4d7976c6 Add core support for multiple UARTs (#152)
* machine/uart: add core support for multiple UARTs by allowing for multiple RingBuffers
* machine/uart: complete core support for multiple UARTs
* machine/uart: no need to store pointer to UART, better to treat like I2C and SPI
* machine/uart: increase ring buffer size to 128 bytes
* machine/uart: improve godocs comments and use comma-ok idiom for buffer Put/Get methods
2019-01-25 22:09:13 +01:00
Ron Evans 3ebf464da2 machine/samd21: I2C implementation
Signed-off-by: Ron Evans <ron@hybridgroup.com>
2019-01-21 21:54:43 +01:00
Ron Evans 38c5e384af machine/itsybitsy-m0: specify which pins to use for UART0
Signed-off-by: Ron Evans <ron@hybridgroup.com>
2019-01-21 21:14:06 +01:00
Ron Evans 65ea74bd84 machine/atsamd21: implements UART0 using the SERCOM0 interface
Signed-off-by: Ron Evans <ron@hybridgroup.com>
2019-01-21 21:14:00 +01:00
Ron Evans 8cbbbb0e76 machine/atsamd21: improve GPIO config to support all 32 pins on PORTA as well as correct handling for OUTPUT and SERCOM pin modes
Signed-off-by: Ron Evans <ron@hybridgroup.com>
2019-01-20 18:42:52 +01:00
Ron Evans e2be7ccf76 sam: add support for Atmel SAMD21 based ItsyBitsy M0
Signed-off-by: Ron Evans <ron@hybridgroup.com>
2019-01-18 18:30:27 +01:00
Ron Evans b8c326d710 machine/stm32f103xx: implmentation for I2C interface
Signed-off-by: Ron Evans <ron@hybridgroup.com>
2019-01-10 16:10:25 +01:00
Ron Evans dccfae485c machine/stm32f103xx: support for SPI interface
Signed-off-by: Ron Evans <ron@hybridgroup.com>
2018-12-31 14:59:07 +01:00
Ron Evans f71e1bcf03 machine/stm32f103xx: implementation of RTC/TIM based timers
Signed-off-by: Ron Evans <ron@hybridgroup.com>
2018-12-31 14:39:05 +01:00
Ron Evans 5ff5873fe6 machine/microbit: add default pin mappings for SPI bus
Signed-off-by: Ron Evans <ron@hybridgroup.com>
2018-12-22 17:20:40 +01:00
Ron Evans 47b667a4b8 machine/stm32: add support for stm32f103xx UART
Signed-off-by: Ron Evans <ron@hybridgroup.com>
2018-12-18 17:17:18 +01:00
Ayke van Laethem 9eaa6a7d7f nrf: set interrupt priorities
The default priority is 0 (highest) which is reserved by the SoftDevice.
For normal operation the exact priority level doesn't matter, only the
relative priority matters. So this change makes the code compatible with
the SoftDevice without actually changing the behavior.
2018-12-03 13:50:41 +01:00
Ron Evans 7857c7235b machine/nrf52840: add support for ADC and PWM interfaces
Signed-off-by: Ron Evans <ron@hybridgroup.com>
2018-12-02 19:00:33 +01:00
Ron Evans 06ab3a836f machine/nrf: SPI master implementation
Signed-off-by: Ron Evans <ron@hybridgroup.com>
2018-12-02 13:26:08 +01:00
Ron Evans 8325f2a53d reelboard: support Reel Board (nrf52840 dev board)
Signed-off-by: Ron Evans <ron@hybridgroup.com>
2018-12-01 18:25:36 +01:00
Ron Evans 8f35a4711a pca10056: support this nrf52840-based board
Signed-off-by: Ron Evans <ron@hybridgroup.com>
2018-12-01 18:19:42 +01:00
Ron Evans ce0ad1daa2 pca10031: add support for PCA10031 nrf51 wireless dongle
Signed-off-by: Ron Evans <ron@hybridgroup.com>
2018-11-21 10:36:36 +01:00
Ayke van Laethem bf4a43ef04 machine/avr: implement raw GPIO access for bitbanged drivers 2018-11-20 21:04:43 +01:00
Ayke van Laethem 9392ef900d avr: add support for the digispark
Blinking the on-board LED works. Nothing else has been tested yet.
2018-11-20 18:50:24 +01:00
Ayke van Laethem 1ba463c7ee machine: redesign I2C interface 2018-11-16 23:08:41 +01:00
Ayke van Laethem c4ef2908ee microbit: fix pin numbers for ADC and I2C 2018-11-11 19:23:09 +01:00
Ayke van Laethem daf92226d8 nrf: add nrf52840-mdk board
With the help of Chillance on GitHub.
2018-10-18 15:07:06 +02:00
Ayke van Laethem ccee42ec7a machine: add helpers for bit-banged driver support
The returned pointer and value can be used to set or clear a specific
pin.
2018-10-15 19:56:27 +02:00
Ron Evans ca13bfd992 microbit: add SetEntireLEDMatrixOn() function
Signed-off-by: Ron Evans <ron@hybridgroup.com>
2018-10-08 20:38:21 +02:00
Ron Evans c516a11004 microbit: add functions for LED matrix and correct button pin mapping
Signed-off-by: Ron Evans <ron@hybridgroup.com>
2018-10-07 19:40:16 +02:00
Ayke van Laethem bc9210b674 nrf: add micro:bit board 2018-10-06 13:04:14 +02:00
Ron Evans e4fa1a8288 nrf: I2C interface
Signed-off-by: Ron Evans <ron@hybridgroup.com>
2018-10-05 12:50:43 +02:00
Ron Evans 8f7b7e6ee3 nrf52: implement ADC and PWM interfaces
Signed-off-by: Ron Evans <ron@hybridgroup.com>
2018-10-04 13:56:44 +02:00
Ayke van Laethem 3e98fbcdc8 avr: use machine.UART0 as stdout 2018-10-04 13:38:12 +02:00
Ron Evans ef2ac09561 nrf: implement UART interface
Signed-off-by: Ron Evans <ron@hybridgroup.com>
2018-10-02 17:08:31 +02:00
Ron Evans 4c8a725d78 avr: implement UART interface
Signed-off-by: Ron Evans <ron@hybridgroup.com>
2018-10-01 12:02:59 +02:00
Ayke van Laethem 69f2cec045 avr: fix build for Arduino
I'm afraid I broke this while merging the I2S changes...
2018-09-25 14:32:02 +02:00
Ron Evans 12fb4f3f91 avr: i2c implementation with BlinkM example
Signed-off-by: Ron Evans <ron@hybridgroup.com>
2018-09-25 14:00:01 +02:00
Ayke van Laethem 4d5b5241ec all: avoid _Msk fields when not necessary 2018-09-22 17:42:44 +02:00
Ayke van Laethem 3bba26ce5b machine/bluepill: create definitions for all pins 2018-09-22 15:47:16 +02:00
Ayke van Laethem 8f5bd81bf5 machine: split board definitions in separate files 2018-09-22 15:47:08 +02:00
Ayke van Laethem dd5b5a381c stm32: initial support 2018-09-22 01:51:44 +02:00
Ayke van Laethem 9fa08bf51d all: use groupName in peripherals
This is needed for support for multiple instances of a peripheral type.
2018-09-21 22:24:41 +02:00
Ayke van Laethem de694b5857 avr: set ADLAR bit in ADC to get a value scaled to 16-bit 2018-09-20 21:39:45 +02:00
Ron Evans 40f834d58f avr: ADC with 0-1023 range 2018-09-20 21:39:45 +02:00
Ron Evans fc0ff3a987 avr: initial implementation for PWM
Signed-off-by: Ron Evans <ron@hybridgroup.com>

Edited slightly by Ayke van Laethem
2018-09-17 14:03:05 +02:00
Ayke van Laethem f41a8032e7 machine/dummy: add fake button pins 2018-09-14 17:01:16 +02:00
Ayke van Laethem 752332ff13 machine/nrf: implement reading GPIO pins 2018-09-14 16:59:28 +02:00
Ron Evans ab6757fe11 avr: implement Get() function on AVR, and leave stubs for NRF and dummy machines
Signed-off-by: Ron Evans <ron@hybridgroup.com>
2018-09-13 20:54:01 +02:00
Ron Evans d948abdf82 avr: correct register for Set() operation on pins 0-7
Signed-off-by: Ron Evans <ron@hybridgroup.com>
2018-09-13 12:03:04 +02:00
Ayke van Laethem 17b5b6ec5b all: use less magic in memory-mapped IO
Don't store addresses in the values of registers, this leads to problems
with char arrays (among others). Instead, do it like it's done in C with
raw addresses cast to struct pointers.

This commit also splits gen-device.py, as AVR and ARM have very
different ideas of what a register is. It's easier to just keep them
separate.
2018-09-05 12:18:21 +02:00
Ayke van Laethem abaae5b90d Remove unnecessary compiler workaround
This workaround isn't needed anymore: the feature has been implemented
now.
2018-08-29 20:45:50 +02:00