Marian Buschsieweke
ba26aed107
cpu/atmega_common: Restructured code
...
Moved macros and static inline helper functions needed to access ATmega GPIOs
to cpu/atmega_common/include/atmega_gpio.h in order to reuse them for the
platform specific low level part of the Neopixel driver.
2019-11-12 20:15:59 +01:00
Benjamin Valentin
3ce6ddcdb2
cpu/atmega_common: cpuid: add a word of warning
...
The CPU ID only differs in byte 4 (RC calibration) between devices.
Add a word of warning to the documentation that this may not be very unique.
2019-11-11 18:07:09 +01:00
Benjamin Valentin
5b6d56efd5
atmega_common: provide CPU ID for every device
...
ATmega128RFA1/ATmega256RFR2 do not have a unique CPU ID.
Use the RC oscillator callibration byte as an impromptu CPU ID and rely
on bootlader constants present on all ATmega families for the remaining
bytes.
This way we can provide a faux CPU ID on all ATmega MCUs and typical hobbyists
with no access to JTAG adapters or high voltage programmer capable of writing
the user signature have a good chance that the CPU IDs of their device do not collide.
2019-11-08 16:58:03 +01:00
d22404b8b7
cpu/atmega_common: add implementation for watchdog
2019-11-07 11:35:29 +01:00
Benjamin Valentin
b1ef68abf7
cpu/atmega_common: move periph/cpuid.c to common code
...
Both atmega128rfa1 and atmega256rfr2 implement it.
2019-10-17 19:20:31 +02:00
Benjamin Valentin
7d78e32b15
cpu/atmega128rfa1: ATmega128rfa1 MCU support
2019-10-17 19:20:31 +02:00
Gunar Schorcht
02d81b717e
Merge pull request #12063 from maribu/i2c_release
...
drivers/periph/i2c: Updated i2c_release() to return void
2019-10-01 19:50:38 +02:00
Sebastian Meiling
1d24709674
cpu/atmega_common: adapt timer to return 0 on success
...
Adapt periph/timer implementation of atmega based MCUs
to return 0 on success for all functions.
2019-09-11 13:41:44 +02:00
Marian Buschsieweke
454d25ae68
cpu/atmega_common: Updated i2c_release()
2019-08-22 12:03:07 +02:00
fabian18
2c001f5a6c
drivers/include/periph/eeprom: Changed uint8_t* to void* in API
2019-08-09 17:27:32 +02:00
3e519e164b
cpu/atmega_common/gpio: use ARRAY_SIZE macro
2019-08-08 17:52:51 +02:00
Robert Hartung
7bca1cc5d5
cpu/atmega_common: implements pseudomodule-based pin change interrupts
2019-08-01 09:23:04 +02:00
Thomas Perrot
44803ea4fd
cpu/atmega32u4: add support for ATmega32U4
2019-05-24 15:12:47 +02:00
MrKevinWeiss
3ce03df0ff
cpu/atmega_common/uart: Comment why brr calc is different from datasheet
...
The brr calculation on the datasheet is different than what is implmented.
This is intentional since it provides better rounding due to truncation.
There was no comment explaining that so this comment should prevent confusion.
2019-01-07 08:40:21 +01:00
Kevin "Bear Puncher" Weiss
153759b926
Merge pull request #10498 from smlng/pr/adapt/7542
...
atmega: add periph_pwm (taken from #7542 )
2018-11-29 15:54:51 +01:00
smlng
262a04c9cf
atmega: fix periph timer configuration
...
- correct number of timers for atmega328p from 2 to 1
- correct number of timer channels for atmega328p from 3 to 2
- adapt atmega periph timer implementation accordingly
2018-11-29 09:30:44 +01:00
Victor Arino
2ebb187ca9
cpu/atmega-common: PWM implementation
...
Implementation of PWM with 8-bit timers
2018-11-28 16:00:54 +01:00
Francisco Acosta
feac98cc97
cpu/atmega_common: add cpu.c and startup.c common code
...
Removes duplicated code for atmega platforms. They were all
basically the same, only with the exception of atmegarfr2,
for which there is an #if statement to use the code in the
same file.
2018-11-02 16:23:47 +01:00
e9a6ebc409
cpu: drivers/eeprom: refactor periph_eeprom implementation
2018-10-16 10:39:10 +02:00
Martine Lenders
0eebda0958
atmega_common: mark closing #endif for MODULE_PERIPH_GPIO_IRQ
2018-10-09 15:10:59 +02:00
Hauke Petersen
94ff02f3c4
cpu/atmega/gpio: use gpio_irq feature
2018-09-21 08:11:20 +02:00
ZetaR60
db7734261c
Merge pull request #9823 from fesselk/patch-1
...
atmega_common/gpio_init: fix pull-up settings for GPIO_IN_PU
2018-09-03 20:30:53 -04:00
Karl Fessel
d9aac6a7d4
atmega_common/gpio_init: fix pull-up settings for GPIO_IN_PU
...
This Patch makes gpio_init precalculate the pin mask once,
This Patch makes gpio_init of atmega_common configure the pin as an input and configure the pullup in the case of GPIO_IN_PU.
GPIO_IN_PU and GPIO_IN need to change pullup so they need to change output (this is coverd by the not touching outputs is not guaranteed statement)
(this is a special case for atmega the pull_up is configured by writing 1 to the port_register which is also the level of the output if the pin is configured to output).
This fix makes it more compliant to comments in periph/gpio.h
2018-08-27 20:34:10 +02:00
Hauke Petersen
c2184f3454
boards/cpu/drivers/sys: use generic stdio_ if
2018-08-22 10:54:25 +02:00
Laurent Navet
c7fed1526c
cpu/atmega_common: adapt to new i2c api
...
Rework atmega i2c to match new i2c interface.
Only i2c_read_bytes and i2c_write_bytes are implemented.
2018-07-25 12:01:39 +02:00
Josarn
d6c0398f3d
atmega timer: Interrupt Pin
...
A debug pin can be used to probe timer interrupts with an oscilloscope or
other time measurement equipment. Thus, determine when an interrupt occurs
and how long the timer ISR takes.
The pin should be defined in the makefile as follows:
CFLAGS += -DDEBUG_TIMER_PORT=PORTF -DDEBUG_TIMER_DDR=DDRF \
-DDEBUG_TIMER_PIN=PORTF4
2018-07-18 20:48:17 +02:00
Matthew Blue
adc44e6496
cpu/atmega_common: misc gpio interrupt fixes
2018-06-28 16:06:36 -04:00
Francisco Acosta
f0dce1b920
Merge pull request #8988 from Josar/atmega_isr
...
cpu/atmega_common: __exit_isr thread_yield
2018-06-26 16:12:39 +03:00
steffen
3ad71d5be0
atmega_common/gpio.c Fixes GPIO interrupt
...
fixes the GPIO_LOW interrupt on the atmega platform.
It results from trying to shift GPIO_LOW. Since it is 0, it is not shiftable and will not be set correctly.
There were more issues with the other flanks too, as they are 0b01 or 0b00. If 0b11 was set as a flank before it would not be able to switch to any other mode anymore. Now the bits get cleared before the new flank will be written.
2018-06-21 11:28:42 +02:00
Josarn
40c1839a8c
cpu/atmega_common/periph/uart.c: uncrustified
2018-06-14 21:47:33 +02:00
Josarn
0e491861af
cpu/atmega_common/periph/timer.c: uncrustified
2018-06-14 21:47:33 +02:00
Josarn
80b02e5268
cpu/atmega_common: exit_isr thread_yield
2018-06-14 21:47:33 +02:00
Francisco Acosta
1aed925ca8
Merge pull request #8951 from ZetaR60/RIOT_atmega_ext_int_clarity
...
cpu/atmega_common: external interrupt fix and refactor
2018-05-30 16:33:34 +02:00
Matthew Blue
533388d3ae
cpu/atmega_common: external interrupt fix and refactor
2018-05-29 11:24:15 -04:00
364806e585
cpu/atmega_common: add support for eeprom periph interface
2018-05-24 14:07:55 +02:00
Francisco Acosta
8ab908146e
Merge pull request #8959 from aabadie/pr/cpu/guard_atmega_common
...
cpu/atmega_common: remove useless periph file guard
2018-05-22 19:57:46 +02:00
Matthew Blue
55a7d8f83d
boards/jiminy-mega256rfr2: remove context swap defines
2018-05-03 17:29:28 -04:00
Matthew Blue
ac2b643308
cpu/atmega_common: return to non-interrupt context swaps
2018-04-27 14:13:34 -04:00
1195ee609f
cpu/atmega_common: remove useless periph file guard
2018-04-16 09:58:44 +02:00
Matthew Blue
d3dc49e2ab
cpu/atmega_common: Support for ATmega1284P
2018-03-25 14:24:40 -04:00
Hauke Petersen
47a500d0b1
Merge pull request #8447 from haukepetersen/opt_test_periphuartpower
...
tests/periph_uart: included power_on/off() in test
2018-03-05 09:49:20 +01:00
Josarn
3bace2bd24
cpu/atmega-common: Adjustments Jiminy-mega256rfr2
...
Signed-off-by: Josua Arndt <josuaarndt@live.de>
Signed-off-by: Steffen Robertz <steffen.robertz@online.de>
2018-03-02 13:33:26 +01:00
Hauke Petersen
ce9e6f4eb0
cpu/atmega_common: add empty uart/power_x functions
2018-03-02 10:53:55 +01:00
7847a91e12
cpu: instead of cpp-style, use C-style comments
2018-02-06 16:59:58 +01:00
Martine Lenders
39c122155c
Merge pull request #7995 from smlng/make/fix/unused_params
...
make: fix unused-params error
2017-11-28 14:46:23 +01:00
smlng
7309171303
build: fix unused parameter errors
...
cpu, sam0_common: fix unused parameter in periph/spi
cpu, kinetis_common: fix unused parameter in periph/spi
cpu, cc2538: fix unused param in periph/i2c
cpu, cc2538: fix unused param in periph/spi
cpu, sam3: fix unused param in periph/spi
cpu, stm32_common: fix unused param in periph/pm
cpu, stm32f3: fix unused params in periph/i2c
cpu, nrf5x_common: fix unused param in periph/gpio
cpu, nrf5x_common: fix unused param in periph/spi
cpu, lpc2387: fix unused params in periph/spi
cpu, cc2538: fix unused params in radio/netdev
cpu, cc2650: fix unused params in periph/uart
cpu, lm4f120: fix unused param in periph/spi
cpu, lm4f120: fix unused params in periph/timer
cpu, lm4f120: fix unused params in periph/uart
cpu, stm32_common: fix unused params in periph/dac
cpu, stm32l0: fix unused params in periph/i2c
cpu, msp430fxyz: fix unused params in periph/uart
cpu, mips: fix unused params
cpu, cc430: fix unused-params in periph/timer
cpu, msp430fxyz: fix unused params in periph/spi
drivers, cc2420: fix unused param
cpu, mips32r2_common: fix unused params in periph/timer
cpu, cc2538: fix unused-param in periph/i2c
cpu, mips32r2_common: fix unused-param in periph/timer
cpu, msp430fxyz: fix unused params in periph/timer
cpu, atmega_common: fix unused params in periph/spi
driver, nrfmin: fix unused params
cpu, cc2538_rf: fix unused params
driver, netdev_ieee802514: fix unused param
cpu, mip_pic32m: fix unused params
cpu, lpc2387: fix unused params in periph/pwm
tests/driver_sdcard_spi: fix unused params
cpu, sam3: fix unused param in periph/pwm
tests/driver_dynamixel: fix unused params, and style issues
cpu, cc430: fix unused param in periph/rtc
cpu, atmega_common: fix unused params in periph/i2c
2017-11-28 14:36:01 +01:00
smlng
e381317fbf
make: fix sign-compare errors
...
cpu, nrf5x_common: fix sign-compare in periph/flashpage
drivers, periph_common: fix sign-compare in flashpage
cpu, sam0_common: fix sign-compare error in periph/gpio
cpu, cc2538: fix sign-compare in periph/timer
cpu, sam3: fix sign-compare in periph/gpio
cpu, stm32_common: fix sign-compare in periph/pwm
cpu, stm32_common: fix sign-compare in periph/timer
cpu, stm32_common: fix sign-compare in periph/flashpage
cpu, nrf5x_common: fix sign-compare in radio/nrfmin
cpu, samd21: fix sign-compare in periph/pwm
cpu, ezr32wg: fix sign-compare in periph/gpio
cpu, ezr32wg: fix sign-compare in periph/timer
drivers, ethos: fix sign-compare
sys, net: fix sign-compare
cpu, atmega_common: fix sign-compare error
cpu, msp430fxyz: fix sign-compare in periph/gpio
boards, msb-430-common: fix sign-compare in board_init
driver, cc2420: fix sign-compared
sys/net: fix sign-compare in gnrc_tftp
driver, pcd8544: fix sign-compare
driver, pn532: fix sign-compare
driver, sdcard_spi: fix sign-compare
tests: fix sign_compare
sys/net, lwmac: fix sign_compare
pkg, lwip: fix sign-compare
boards, waspmote: make CORECLOCK unsigned long to fix sign_compare error
tests, sock_ip: fix sign compare
tests, msg_avail: fix sign compare
tests, sock_udp: fix sign compare
boards: fix sign-compare for calliope and microbit matrix
2017-11-28 11:55:48 +01:00
smlng
27c2ee50f9
cpu, atmega_common: fix returns and error codes in periph/i2c
2017-11-13 13:23:06 +01:00
Laurent Navet
9de00af063
cpu/atmega_common: add adc driver
2017-11-10 14:19:08 +01:00
a20745b6c5
cpu: make use of Makefile.periph
2017-11-06 12:01:19 +01:00
Robert Hartung
491f420651
cpu/atmega_common: renames periph module
2017-11-06 11:38:26 +01:00
lebrush
c054e38156
Merge pull request #7590 from lebrush/fix/atmega-gpio-misc
...
GPIO interrupt fixes for atmega328p
2017-09-15 11:59:11 +02:00
Victor Arino
6365466078
cpu/atmega_common: fix GPIO INT filter
2017-09-14 20:40:13 +02:00
Victor Arino
294594908a
cpu/atmega_common: support for flank low
2017-09-14 20:40:13 +02:00
Victor Arino
650cf81e8a
cpu/atmega_common: fix gpio interrupt for atmega328p
2017-09-14 20:34:11 +02:00
Robert Hartung
914025973d
cpu/atmega: use power.h defines instead of direct register access
2017-09-14 14:04:14 +02:00
dnahm
b313c02c7c
Adapted to comments II
2017-08-31 16:11:34 +02:00
dnahm
fe15574c6b
Adapted to comments
2017-08-31 16:11:34 +02:00
dnahm
7bab826c38
cpu/atmega_common: add i2c periph driver
2017-08-31 16:11:34 +02:00
Francisco Acosta
f2efd88f98
Merge pull request #7129 from haukepetersen/opt_periph_sharetimerset
...
cpu: add and use shared code for timer_set()
2017-08-01 15:09:48 +02:00
Peter Kietzmann
afbb00cca7
Merge pull request #7225 from dnahm/atmega_spi
...
cpu/atmega_common: adjust spi for at328p and at1281
2017-06-30 08:53:10 +02:00
dnahm
af34c87a8d
cpu/atmega_common: adjust spi for at328p and at1281
2017-06-30 08:34:47 +02:00
smlng
01af6d94c4
cpu, periph: retain constness in spi_transfer_bytes
2017-06-29 15:47:13 +02:00
smlng
692cf96297
doc: fix doxygen grouping of cpu periph drivers
2017-06-26 14:42:11 +02:00
Hauke Petersen
a1499f4190
cpu: add and use shared code for timer_set()
2017-06-02 12:21:56 +02:00
Hauke Petersen
99c2704583
cpu/atmega: implement UART TX only
2017-02-09 10:42:53 +01:00
Bas Stottelaar
3b14a584b8
boards: *: remove SPI_*_EN now rework is merged
2017-01-31 19:38:41 +01:00
Hauke Petersen
f5595693f6
cpu/atmega_common: adapted SPI driver
2017-01-25 16:46:05 +01:00
Oleg Hahm
d0316fa7ae
periph timer: remove timer_irq_(en|dis)able
2017-01-14 15:34:53 +01:00
3e365b89fa
cpu: atmega_common: adapt to periph/pm
2017-01-12 16:26:01 +01:00
Hauke Petersen
2eebf36eb2
cpu/uart: make use of named return values
2016-10-28 10:32:00 +02:00
Laurent Navet
4c9c3ab7d6
cpu/atmega_common: fix timer_set_absolute return code
...
according to timer documentation, timer_set and timer_set_absolute should
return 1 on succes, not 0.
2016-09-10 00:12:39 +02:00
kYc0o
5e3747ea8b
Merge pull request #5590 from mali/atmega_common
...
cpu/atmega_common: improve to add smaller atmega MCUs.
2016-08-31 18:29:53 +02:00
Jon Thacker
0cc65db1b2
cpu/atmega_common: Add support for double speed baud generator
...
* Add support for U2X switch to double transmission speed
* Provides lower error rates when needed
* Add support for static baud rate calculation, reduces computation by 10x
* adds support for statically enabling double speed baud
2016-08-20 08:49:30 -05:00
Laurent Navet
eed73beaa1
cpu/atmega_common: prepare for atmega328p inclusion
...
use generic avr/libc definition for conditionnal compilation.
eg: use #ifdef(PORTG) or #ifdef(TIMER_0_ISRC) instead of #ifdef(Atmega328p)
This is more generic and simplify future boards support.
2016-08-20 12:23:48 +02:00
Laurent Navet
2cd918a07a
atmega_common: abstract Power Reduction Register
...
PR Register is PRR0 on atmega2560 and atmega1281
but PRR on atmega328p.
this abstracts as atmega Power Reduction Register as MEGA_PRR.
2016-08-20 12:21:32 +02:00
Jon Thacker
2aec999900
cpu/atmega_common: generalize register/peripheral definitions
...
Makes AVR register definitions dependent on what avr-libc defines
for a given MCU, rather then duplicating that effort here.
Definitions done in this way are based on functionality provided,
rather than a specific MCU device.
2016-07-08 10:52:22 -05:00
kYc0o
17c78e70e2
cpu/atmega_common: add common atmega CPU code to atmega_common
2016-06-22 14:25:10 +02:00