8000 Add nRF52833 support + generic variant · sandeepmistry/arduino-nRF5@81429bf · GitHub
[go: up one dir, main page]

Skip to content

Commit 81429bf

Browse files
committed
Add nRF52833 support + generic variant
1 parent a9ca22c commit 81429bf

File tree

6 files changed

+94
-5
lines changed

6 files changed

+94
-5
lines changed

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,3 +41,4 @@ script:
4141
- buildExampleSketch sandeepmistry:nRF5:Sinobit 01.Basics BareMinimum
4242
- buildExampleSketch sandeepmistry:nRF5:DWM1001-DEV 01.Basics Blink
4343
- buildExampleSketch sandeepmistry:nRF5:SeeedArchLink 01.Basics Blink
44+
- buildExampleSketch sandeepmistry:nRF5:Generic_nRF52833 01.Basics Blink

boards.txt

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,39 @@ menu.version=Version
2121
menu.lfclk=Low Frequency Clock
2222
menu.board_variant=Board Variant
2323

24+
# nRF52833 variants
25+
###################
26+
27+
Generic_nRF52833.name=Generic nRF52833
28+
29+
Generic_nRF52833.upload.tool=sandeepmistry:openocd
30+
Generic_nRF52833.upload.target=nrf52
31+
Generic_nRF52833.upload.maximum_size=524288
32+
33+
Generic_nRF52833.bootloader.tool=sandeepmistry:openocd
34+
35+
Generic_nRF52833.build.mcu=cortex-m4
36+
Generic_nRF52833.build.f_cpu=64000000
37+
Generic_nRF52833.build.board=GENERIC
38+
Generic_nRF52833.build.core=nRF5
39+
Generic_nRF52833.build.variant=Generic
40+
Generic_nRF52833.build.variant_system_lib=
41+
Generic_nRF52833.build.extra_flags=-DNRF52833_XXAA
42+
Generic_nRF52833.build.float_flags=-mfloat-abi=hard -mfpu=fpv4-sp-d16
43+
Generic_nRF52833.build.ldscript=nrf52833_xxaa.ld
44+
45+
Generic_nRF52833.menu.softdevice.none=None
46+
Generic_nRF52833.menu.softdevice.none.softdevice=none
47+
Generic_nRF52833.menu.softdevice.none.softdeviceversion=
48+
49+
Generic_nRF52833.menu.lfclk.lfxo=Crystal Oscillator
50+
Generic_nRF52833.menu.lfclk.lfxo.build.lfclk_flags=-DUSE_LFXO
51+
Generic_nRF52833.menu.lfclk.lfrc=RC Oscillator
52+
Generic_nRF52833.menu.lfclk.lfrc.build.lfclk_flags=-DUSE_LFRC
53+
Generic_nRF52833.menu.lfclk.lfsynt=Synthesized
54+
Generic_nRF52833.menu.lfclk.lfsynt.build.lfclk_flags=-DUSE_LFSYNT
55+
56+
2457
# nRF52832 variants
2558
###################
2659

cores/nRF5/Arduino.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,19 @@ void loop( void ) ;
9595

9696
#define bit(b) (1UL << (b))
9797

98+
#if (GPIO_COUNT == 1)
9899
#define gpioBaseForPin(P) ( NRF_GPIO )
99100
#define digitalPinToPort(P) ( (NRF_GPIO_Type *) gpioBaseForPin(P) )
100101
#define digitalPinToPin(P) ( g_ADigitalPinMap[P] )
101102
#define digitalPinToBitMask(P) ( 1 << digitalPinToPin(P) )
103+
#elif (GPIO_COUNT == 2)
104+
#define gpioBaseForPin(P) ( (g_ADigitalPinMap[P] & 0x20) ? NRF_P1 : NRF_P0 )
105+
#define digitalPinToPort(P) ( (NRF_GPIO_Type *) gpioBaseForPin(P) )
106+
#define digitalPinToPin(P) ( g_ADigitalPinMap[P] & 0x1f )
107+
#define digitalPinToBitMask(P) ( 1 << digitalPinToPin(P) )
108+
#else
109+
#error "Unsupported GPIO_COUNT"
110+
#endif
102111

103112
#define portOutputRegister(port) ( &(port->OUTSET) )
104113
#define portInputRegister(port) ( &(port->IN) )

cores/nRF5/wiring_analog_nRF52.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,18 +29,22 @@ extern "C" {
2929
static uint32_t saadcReference = SAADC_CH_CONFIG_REFSEL_Internal;
3030
static uint32_t saadcGain = SAADC_CH_CONFIG_GAIN_Gain1_5;
3131

32-
#define PWM_COUNT 3
33-
3432
static NRF_PWM_Type* pwms[PWM_COUNT] = {
3533
NRF_PWM0,
3634
NRF_PWM1,
37-
NRF_PWM2
35+
NRF_PWM2,
36+
#if PWM_COUNT > 3
37+
NRF_PWM3
38+
#endif
3839
};
3940

4041
static uint32_t pwmChannelPins[PWM_COUNT] = {
4142
0xFFFFFFFF,
4243
0xFFFFFFFF,
43-
0xFFFFFFFF
44+
0xFFFFFFFF,
45+
#if PWM_COUNT > 3
46+
0xFFFFFFFF,
47+
#endif
4448
};
4549
static uint16_t pwmChannelSequence[PWM_COUNT];
4650

variants/Generic/variant.cpp

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,5 +51,39 @@ const uint32_t g_ADigitalPinMap[] = {
5151
28,
5252
29,
5353
30,
54-
31
54+
31,
55+
#if GPIO_COUNT > 1
56+
32,
57+
33,
58+
34,
59+
35,
60+
36,
61+
37,
62+
38,
63+
39,
64+
40,
65+
41,
66+
42,
67+
43,
68+
44,
69+
45,
70+
46,
71+
47,
72+
48,
73+
49,
74+
50,
75+
51,
76+
52,
77+
53,
78+
54,
79+
55,
80+
56,
81+
57,
82+
58,
83+
59,
84+
60,
85+
61,
86+
62,
87+
63,
88+
#endif
5589
};

variants/Generic/variant.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
#define _VARIANT_GENERIC_
1919

2020
#include "nrf.h"
21+
#include "nrf_peripherals.h"
2122

2223
/** Master clock frequency */
2324
#if defined(NRF52_SERIES)
@@ -38,8 +39,15 @@ extern "C"
3839
#endif // __cplusplus
3940

4041
// Number of pins defined in PinDescription array
42+
#if GPIO_COUNT == 1
4143
#define PINS_COUNT (32u)
4244
#define NUM_DIGITAL_PINS (32u)
45+
#elif GPIO_COUNT == 2
46+
#define PINS_COUNT (64u)
47+
#define NUM_DIGITAL_PINS (64u)
48+
#else
49+
#error "Unsupported GPIO_COUNT"
50+
#endif
4351
#define NUM_ANALOG_INPUTS (6u)
4452
#define NUM_ANALOG_OUTPUTS (0u)
4553

0 commit comments

Comments
 (0)
0