Skip to content

Commit 835e64f

Browse files
authored
Merge branch 'arduino:arduino' into Thread-Support
2 parents 7eb3eae + ab684ac commit 835e64f

File tree

5 files changed

+67
-34
lines changed

5 files changed

+67
-34
lines changed

Diff for: .github/workflows/build.yml

+14-17
Original file line numberDiff line numberDiff line change
@@ -12,33 +12,30 @@ jobs:
1212
- name: Checkout
1313
uses: actions/checkout@v4
1414
with:
15-
path: Arduino-Zephyr-API
15+
path: ArduinoCore-zephyr
1616

1717
- name: Initialize
18-
working-directory: Arduino-Zephyr-API
18+
working-directory: ArduinoCore-zephyr
1919
run: |
20-
west init -m https://github.com/zephyrproject-rtos/gsoc-2022-arduino-core.git
20+
mkdir build && cd build
21+
west init -m https://github.com/arduino/ArduinoCore-zephyr.git
2122
west update
22-
git clone https://github.com/arduino/ArduinoCore-API.git ArduinoCore-API
23-
cp -r ArduinoCore-API/api modules/lib/Arduino-Zephyr-API/cores/arduino/.
23+
rm -rf modules/lib/ArduinoCore-zephyr/*
24+
cp -r ../* modules/lib/ArduinoCore-zephyr || true
25+
rm modules/lib/ArduinoCore-zephyr/cores/arduino/api
26+
cp -r modules/lib/ArduinoCore-API/api modules/lib/ArduinoCore-zephyr/cores/arduino/api
2427
2528
- name: Build fade
26-
working-directory: Arduino-Zephyr-API
29+
working-directory: ArduinoCore-zephyr/build
2730
run: |
28-
west build -p -b arduino_nano_33_ble_sense samples/fade
31+
west build -p -b arduino_nano_33_ble//sense ../samples/fade
2932
3033
- name: Build i2cdemo
31-
working-directory: Arduino-Zephyr-API
34+
working-directory: ArduinoCore-zephyr/build
3235
run: |
33-
west build -p -b arduino_nano_33_ble_sense samples/i2cdemo
36+
west build -p -b ek_ra8d1 ../samples/i2cdemo
3437
3538
- name: Build adc
36-
working-directory: Arduino-Zephyr-API
39+
working-directory: ArduinoCore-zephyr/build
3740
run: |
38-
west build -p -b beagleconnect_freedom samples/analog_input
39-
40-
- name: Archive firmware
41-
uses: actions/upload-artifact@v3
42-
with:
43-
name: firmware
44-
path: Arduino-Zephyr-API/build/zephyr/zephyr.*
41+
west build -p -b arduino_nano_33_ble//sense ../samples/analog_input

Diff for: cores/arduino/Arduino.h

+14
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,20 @@ enum digitalPins {
101101
enum analogPins { DT_FOREACH_PROP_ELEM(DT_PATH(zephyr_user),
102102
adc_pin_gpios, AN_ENUMS) };
103103

104+
// We provide analogReadResolution APIs
105+
void analogReadResolution(int bits);
106+
107+
#endif
108+
109+
#ifdef CONFIG_DAC
110+
111+
#undef DAC0
112+
#undef DAC1
113+
#undef DAC2
114+
#undef DAC3
115+
#define DAC_ENUMS(n, p, i) DAC ## i = i,
116+
enum dacPins { DT_FOREACH_PROP_ELEM(DT_PATH(zephyr_user), dac_channels, DAC_ENUMS) NUM_OF_DACS };
117+
104118
#endif
105119

106120
#ifdef CONFIG_DAC

Diff for: cores/arduino/main.cpp

+3-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
#endif
1111

1212
int main(void) {
13-
#if DT_NODE_HAS_PROP(DT_PATH(zephyr_user), cdc_acm) || DT_NODE_HAS_PROP(DT_PATH(zephyr_user), serials)
13+
#if (DT_NODE_HAS_PROP(DT_PATH(zephyr_user), cdc_acm) && CONFIG_USB_CDC_ACM)
1414
Serial.begin(115200);
1515
#endif
1616

@@ -47,7 +47,9 @@ int main(void) {
4747

4848
for (;;) {
4949
loop();
50+
#if (DT_NODE_HAS_PROP(DT_PATH(zephyr_user), cdc_acm) && CONFIG_USB_CDC_ACM) || DT_NODE_HAS_PROP(DT_PATH(zephyr_user), serials)
5051
if (arduino::serialEventRun) arduino::serialEventRun();
52+
#endif
5153
}
5254

5355
return 0;

Diff for: cores/arduino/zephyrCommon.cpp

+22-2
Original file line numberDiff line numberDiff line change
@@ -368,10 +368,24 @@ void analogReference(uint8_t mode)
368368
}
369369
}
370370

371+
// Note: We can not update the arduino_adc structure as it is read only...
372+
static int read_resolution = 10;
373+
374+
void analogReadResolution(int bits)
375+
{
376+
read_resolution = bits;
377+
}
378+
379+
int analogReadResolution()
380+
{
381+
return read_resolution;
382+
}
383+
384+
371385
int analogRead(pin_size_t pinNumber)
372386
{
373387
int err;
374-
int16_t buf;
388+
uint16_t buf;
375389
struct adc_sequence seq = { .buffer = &buf, .buffer_size = sizeof(buf) };
376390
size_t idx = analog_pin_index(pinNumber);
377391

@@ -401,7 +415,13 @@ int analogRead(pin_size_t pinNumber)
401415
return err;
402416
}
403417

404-
return buf;
418+
/*
419+
* If necessary map the return value to the
420+
* number of bits the user has asked for
421+
*/
422+
if (read_resolution == seq.resolution) return buf;
423+
if (read_resolution < seq.resolution) return buf >> (seq.resolution - read_resolution);
424+
return buf << (read_resolution - seq.resolution) ;
405425
}
406426

407427
#endif

Diff for: loader/boards/arduino_giga_r1_m7.overlay

+14-14
Original file line numberDiff line numberDiff line change
@@ -206,85 +206,85 @@
206206
zephyr,gain = "ADC_GAIN_1";
207207
zephyr,reference = "ADC_REF_INTERNAL";
208208
zephyr,acquisition-time = <ADC_ACQ_TIME_MAX>;
209-
zephyr,resolution = <12>;
209+
zephyr,resolution = <16>;
210210
};
211211
channel@8 {
212212
reg = <8>;
213213
zephyr,gain = "ADC_GAIN_1";
214214
zephyr,reference = "ADC_REF_INTERNAL";
215215
zephyr,acquisition-time = <ADC_ACQ_TIME_MAX>;
216-
zephyr,resolution = <12>;
216+
zephyr,resolution = <16>;
217217
};
218218
channel@9 {
219219
reg = <9>;
220220
zephyr,gain = "ADC_GAIN_1";
221221
zephyr,reference = "ADC_REF_INTERNAL";
222222
zephyr,acquisition-time = <ADC_ACQ_TIME_MAX>;
223-
zephyr,resolution = <12>;
223+
zephyr,resolution = <16>;
224224
};
225225
channel@5 {
226226
reg = <5>;
227227
zephyr,gain = "ADC_GAIN_1";
228228
zephyr,reference = "ADC_REF_INTERNAL";
229229
zephyr,acquisition-time = <ADC_ACQ_TIME_MAX>;
230-
zephyr,resolution = <12>;
230+
zephyr,resolution = <16>;
231231
};
232232
channel@d {
233233
reg = <13>;
234234
zephyr,gain = "ADC_GAIN_1";
235235
zephyr,reference = "ADC_REF_INTERNAL";
236236
zephyr,acquisition-time = <ADC_ACQ_TIME_MAX>;
237-
zephyr,resolution = <12>;
237+
zephyr,resolution = <16>;
238238
};
239239
channel@c {
240240
reg = <12>;
241241
zephyr,gain = "ADC_GAIN_1";
242242
zephyr,reference = "ADC_REF_INTERNAL";
243243
zephyr,acquisition-time = <ADC_ACQ_TIME_MAX>;
244-
zephyr,resolution = <12>;
244+
zephyr,resolution = <16>;
245245
};
246246
channel@a {
247247
reg = <10>;
248248
zephyr,gain = "ADC_GAIN_1";
249249
zephyr,reference = "ADC_REF_INTERNAL";
250250
zephyr,acquisition-time = <ADC_ACQ_TIME_MAX>;
251-
zephyr,resolution = <12>;
251+
zephyr,resolution = <16>;
252252
};
253253
channel@10 {
254254
reg = <16>;
255255
zephyr,gain = "ADC_GAIN_1";
256256
zephyr,reference = "ADC_REF_INTERNAL";
257257
zephyr,acquisition-time = <ADC_ACQ_TIME_MAX>;
258-
zephyr,resolution = <12>;
258+
zephyr,resolution = <16>;
259259
};
260260
channel@12 {
261261
reg = <18>;
262262
zephyr,gain = "ADC_GAIN_1";
263263
zephyr,reference = "ADC_REF_INTERNAL";
264264
zephyr,acquisition-time = <ADC_ACQ_TIME_MAX>;
265-
zephyr,resolution = <12>;
265+
zephyr,resolution = <16>;
266266
};
267267
channel@13 {
268268
reg = <19>;
269269
zephyr,gain = "ADC_GAIN_1";
270270
zephyr,reference = "ADC_REF_INTERNAL";
271271
zephyr,acquisition-time = <ADC_ACQ_TIME_MAX>;
272-
zephyr,resolution = <12>;
272+
zephyr,resolution = <16>;
273273
};
274274
/* PA0_C and PA1_C */
275275
channel@0 {
276276
reg = <0>;
277277
zephyr,gain = "ADC_GAIN_1";
278278
zephyr,reference = "ADC_REF_INTERNAL";
279279
zephyr,acquisition-time = <ADC_ACQ_TIME_MAX>;
280-
zephyr,resolution = <12>;
280+
zephyr,resolution = <16>;
281281
};
282282
channel@1 {
283283
reg = <1>;
284284
zephyr,gain = "ADC_GAIN_1";
285285
zephyr,reference = "ADC_REF_INTERNAL";
286286
zephyr,acquisition-time = <ADC_ACQ_TIME_MAX>;
287-
zephyr,resolution = <12>;
287+
zephyr,resolution = <16>;
288288
};
289289
};
290290

@@ -304,14 +304,14 @@
304304
zephyr,gain = "ADC_GAIN_1";
305305
zephyr,reference = "ADC_REF_INTERNAL";
306306
zephyr,acquisition-time = <ADC_ACQ_TIME_MAX>;
307-
zephyr,resolution = <12>;
307+
zephyr,resolution = <16>;
308308
};
309309
channel@1 {
310310
reg = <1>;
311311
zephyr,gain = "ADC_GAIN_1";
312312
zephyr,reference = "ADC_REF_INTERNAL";
313313
zephyr,acquisition-time = <ADC_ACQ_TIME_MAX>;
314-
zephyr,resolution = <12>;
314+
zephyr,resolution = <16>;
315315
};
316316
};
317317

0 commit comments

Comments
 (0)