Skip to content

Commit 7a1d25e

Browse files
committed
Merge pull request #1138 from stevew817/master
Silicon Labs - Initial test framework pin definitions for EFM32 platforms
2 parents 6f7f37e + 51518f0 commit 7a1d25e

File tree

11 files changed

+158
-2
lines changed

11 files changed

+158
-2
lines changed

libraries/mbed/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/pwmout_api.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ void pwmout_write(pwmout_t *obj, float value)
139139
value = 1;
140140
}
141141

142-
float pulse_period_in_s = obj->period_cycles / (float) pwm_clockfreq;
142+
float pulse_period_in_s = obj->period_cycles / ((float) (pwm_clockfreq >> pwm_prescaler_div));
143143
pwmout_pulsewidth(obj, value * pulse_period_in_s);
144144
}
145145

@@ -192,7 +192,7 @@ void pwmout_period_us(pwmout_t *obj, int us)
192192

193193
void pwmout_pulsewidth(pwmout_t *obj, float seconds)
194194
{
195-
obj->width_cycles = pwm_clockfreq * seconds;
195+
obj->width_cycles = (uint32_t) (((float) (pwm_clockfreq >> pwm_prescaler_div)) * seconds);
196196
TIMER_CompareBufSet(PWM_TIMER, obj->channel, obj->width_cycles);
197197
}
198198

libraries/tests/mbed/digitalin_digitalout/main.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,18 @@ DigitalIn in(TP4);
4646
DigitalOut out(P1_0);
4747
DigitalIn in(P4_7);
4848

49+
#elif defined(TARGET_EFM32LG_STK3600) || defined(TARGET_EFM32GG_STK3700) || defined(TARGET_EFM32WG_STK3800)
50+
DigitalOut out(PD0);
51+
DigitalIn in(PC3);
52+
53+
#elif defined(TARGET_EFM32ZG_STK3200)
54+
DigitalOut out(PD7);
55+
DigitalIn in(PC1);
56+
57+
#elif defined(TARGET_EFM32HG_STK3400)
58+
DigitalOut out(PE10);
59+
DigitalIn in(PC1);
60+
4961
#else
5062
DigitalOut out(p5);
5163
DigitalIn in(p25);

libraries/tests/mbed/digitalinout/main.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,18 @@ DigitalInOut d2(TP4);
4646
DigitalInOut d1(P1_0);
4747
DigitalInOut d2(P4_7);
4848

49+
#elif defined(TARGET_EFM32LG_STK3600) || defined(TARGET_EFM32GG_STK3700) || defined(TARGET_EFM32WG_STK3800)
50+
DigitalInOut d1(PD0);
51+
DigitalInOut d2(PC3);
52+
53+
#elif defined(TARGET_EFM32ZG_STK3200)
54+
DigitalInOut d1(PD7);
55+
DigitalInOut d2(PC1);
56+
57+
#elif defined(TARGET_EFM32HG_STK3400)
58+
DigitalInOut d1(PE10);
59+
DigitalInOut d2(PC1);
60+
4961
#else
5062
DigitalInOut d1(p5);
5163
DigitalInOut d2(p25);

libraries/tests/mbed/i2c_master/main.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,18 @@ I2C i2c(PTE0, PTE1);
1010
I2C i2c(p22,p20);
1111
#elif defined(TARGET_FF_ARDUINO) || defined(TARGET_MAXWSNENV)
1212
I2C i2c(I2C_SDA, I2C_SCL);
13+
#elif defined(TARGET_EFM32LG_STK3600) || defined(TARGET_EFM32GG_STK3700) || defined(TARGET_EFM32WG_STK3800)
14+
#define TEST_SDA_PIN PD6
15+
#define TEST_SCL_PIN PD7
16+
I2C i2c(TEST_SDA_PIN, TEST_SCL_PIN);
17+
#elif defined(TARGET_EFM32ZG_STK3200)
18+
#define TEST_SDA_PIN PE12
19+
#define TEST_SCL_PIN PE13
20+
I2C i2c(TEST_SDA_PIN, TEST_SCL_PIN);
21+
#elif defined(TARGET_EFM32HG_STK3400)
22+
#define TEST_SDA_PIN PD6
23+
#define TEST_SCL_PIN PD7
24+
I2C i2c(TEST_SDA_PIN, TEST_SCL_PIN);
1325
#else
1426
I2C i2c(p28, p27);
1527
#endif

libraries/tests/mbed/interruptin/main.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,18 @@ void in_handler() {
7575
#define PIN_OUT P1_0
7676
#define PIN_IN P4_7
7777

78+
#elif defined(TARGET_EFM32LG_STK3600) || defined(TARGET_EFM32GG_STK3700) || defined(TARGET_EFM32WG_STK3800)
79+
#define PIN_OUT PD0
80+
#define PIN_IN PC3
81+
82+
#elif defined(TARGET_EFM32ZG_STK3200)
83+
#define PIN_OUT PD7
84+
#define PIN_IN PC1
85+
86+
#elif defined(TARGET_EFM32HG_STK3400)
87+
#define PIN_OUT PE10
88+
#define PIN_IN PC1
89+
7890
#else
7991
#define PIN_IN (p5)
8092
#define PIN_OUT (p25)

libraries/tests/mbed/portinout/main.cpp

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,34 @@
101101
#define P2_1 (1 << 8) // PB_8
102102
#define P2_2 (1 << 9) // PB_9
103103
#define PORT_2 PortB
104+
105+
#elif defined(TARGET_EFM32LG_STK3600) || defined(TARGET_EFM32GG_STK3700) || defined(TARGET_EFM32WG_STK3800)
106+
#define P1_1 (1 << 0) // PD0
107+
#define P1_2 (1 << 1) // PD1
108+
#define PORT_1 PortD
109+
110+
#define P2_1 (1 << 3) // PC3
111+
#define P2_2 (1 << 4) // PC4
112+
#define PORT_2 PortC
113+
114+
#elif defined(TARGET_EFM32ZG_STK3200)
115+
#define P1_1 (1 << 7) // PD7
116+
#define P1_2 (1 << 6) // PD6
117+
#define PORT_1 PortD
118+
119+
#define P2_1 (1 << 1) // PC1
120+
#define P2_2 (1 << 2) // PC2
121+
#define PORT_2 PortC
122+
123+
#elif defined(TARGET_EFM32HG_STK3400)
124+
#define P1_1 (1 << 10) // PE10
125+
#define P1_2 (1 << 11) // PE11
126+
#define PORT_1 PortE
127+
128+
#define P2_1 (1 << 1) // PC1
129+
#define P2_2 (1 << 2) // PC2
130+
#define PORT_2 PortC
131+
104132
#endif
105133

106134
#define MASK_1 (P1_1 | P1_2)

libraries/tests/mbed/portout_portin/main.cpp

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,34 @@
101101
#define P2_1 (1 << 8) // PB_8
102102
#define P2_2 (1 << 9) // PB_9
103103
#define PORT_2 PortB
104+
105+
#elif defined(TARGET_EFM32LG_STK3600) || defined(TARGET_EFM32GG_STK3700) || defined(TARGET_EFM32WG_STK3800)
106+
#define P1_1 (1 << 0) // PD0
107+
#define P1_2 (1 << 1) // PD1
108+
#define PORT_1 PortD
109+
110+
#define P2_1 (1 << 3) // PC3
111+
#define P2_2 (1 << 4) // PC4
112+
#define PORT_2 PortC
113+
114+
#elif defined(TARGET_EFM32ZG_STK3200)
115+
#define P1_1 (1 << 7) // PD7
116+
#define P1_2 (1 << 6) // PD6
117+
#define PORT_1 PortD
118+
119+
#define P2_1 (1 << 1) // PC1
120+
#define P2_2 (1 << 2) // PC2
121+
#define PORT_2 PortC
122+
123+
#elif defined(TARGET_EFM32HG_STK3400)
124+
#define P1_1 (1 << 10) // PE10
125+
#define P1_2 (1 << 11) // PE11
126+
#define PORT_1 PortE
127+
128+
#define P2_1 (1 << 1) // PC1
129+
#define P2_2 (1 << 2) // PC2
130+
#define PORT_2 PortC
131+
104132
#endif
105133

106134
#define MASK_1 (P1_1 | P1_2)

libraries/tests/mbed/spi_master/main.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,15 @@ DigitalOut cs(PTA13);
1313
#elif defined(TARGET_FF_ARDUINO)
1414
SPI spi(D11, D12, D13); // mosi, miso, sclk
1515
DigitalOut cs(D10);
16+
#elif defined(TARGET_EFM32LG_STK3600) || defined(TARGET_EFM32GG_STK3700) || defined(TARGET_EFM32WG_STK3800)
17+
SPI spi(PD0, PD1, PD2); // mosi, miso, sclk
18+
DigitalOut cs(PD3);
19+
#elif defined(TARGET_EFM32ZG_STK3200)
20+
SPI spi(PD7, PD6, PC15); // mosi, miso, sclk
21+
DigitalOut cs(PC14);
22+
#elif defined(TARGET_EFM32HG_STK3400)
23+
SPI spi(PE10, PE11, PE12); // mosi, miso, sclk
24+
DigitalOut cs(PE13);
1625
#else
1726
SPI spi(p5, p6, p7); // mosi, miso, sclk
1827
DigitalOut cs(p8);

libraries/tests/utest/i2c_eeprom_asynch/i2c_eeprom_asynch.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,19 @@
2727
#if defined(TARGET_K64F)
2828
#define TEST_SDA_PIN PTE25
2929
#define TEST_SCL_PIN PTE24
30+
31+
#elif defined(TARGET_EFM32LG_STK3600) || defined(TARGET_EFM32GG_STK3700) || defined(TARGET_EFM32WG_STK3800)
32+
#define TEST_SDA_PIN PD6
33+
#define TEST_SCL_PIN PD7
34+
35+
#elif defined(TARGET_EFM32ZG_STK3200)
36+
#define TEST_SDA_PIN PE12
37+
#define TEST_SCL_PIN PE13
38+
39+
#elif defined(TARGET_EFM32HG_STK3400)
40+
#define TEST_SDA_PIN PD6
41+
#define TEST_SCL_PIN PD7
42+
3043
#else
3144
#error Target not supported
3245
#endif

libraries/tests/utest/serial_asynch/serial_asynch.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,17 @@
2828
#define TEST_SERIAL_ONE_TX_PIN PTC17 // uart3
2929
#define TEST_SERIAL_TWO_RX_PIN PTD2 // uart2
3030

31+
#elif defined(TARGET_EFM32LG_STK3600) || defined(TARGET_EFM32GG_STK3700) || defined(TARGET_EFM32WG_STK3800)
32+
#define TEST_SERIAL_ONE_TX_PIN PD0 // usart1
33+
#define TEST_SERIAL_TWO_RX_PIN PC3 // usart2
34+
35+
#elif defined(TARGET_EFM32ZG_STK3200)
36+
#error "Target not supported (only 2 serial ports available, need 3)"
37+
38+
#elif defined(TARGET_EFM32HG_STK3400)
39+
#define TEST_SERIAL_ONE_TX_PIN PE10 // usart0
40+
#define TEST_SERIAL_TWO_RX_PIN PC1 // usart1
41+
3142
#else
3243

3344
#error Target not supported

libraries/tests/utest/spi_asynch/spi_master_asynch.cpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,25 @@
3939
#define TEST_MISO_PIN PTD3
4040
#define TEST_SCLK_PIN PTD1
4141
#define TEST_CS_PIN PTD0
42+
43+
#elif defined(TARGET_EFM32LG_STK3600) || defined(TARGET_EFM32GG_STK3700) || defined(TARGET_EFM32WG_STK3800)
44+
#define TEST_MOSI_PIN PD0
45+
#define TEST_MISO_PIN PD1
46+
#define TEST_SCLK_PIN PD2
47+
#define TEST_CS_PIN PD3
48+
49+
#elif defined(TARGET_EFM32ZG_STK3200)
50+
#define TEST_MOSI_PIN PD7
51+
#define TEST_MISO_PIN PD6
52+
#define TEST_SCLK_PIN PC15
53+
#define TEST_CS_PIN PC14
54+
55+
#elif defined(TARGET_EFM32HG_STK3400)
56+
#define TEST_MOSI_PIN PE10
57+
#define TEST_MISO_PIN PE11
58+
#define TEST_SCLK_PIN PE12
59+
#define TEST_CS_PIN PE13
60+
4261
#else
4362
#error Target not supported
4463
#endif

0 commit comments

Comments
 (0)