Skip to content

Commit b5816d8

Browse files
committed
Merge pull request #1516 from stevew817/fix/HFRCO
[Silicon Labs] Fix support for the RC oscillator
2 parents bf2315b + aacdd04 commit b5816d8

File tree

8 files changed

+73
-58
lines changed

8 files changed

+73
-58
lines changed

libraries/mbed/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32GG_STK3700/device_peripherals.h

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -71,14 +71,14 @@
7171

7272
/** HFRCO frequency band
7373
* Options:
74-
* * CMU_HFRCOCTRL_BAND_28MHZ
75-
* * CMU_HFRCOCTRL_BAND_21MHZ
76-
* * CMU_HFRCOCTRL_BAND_14MHZ
77-
* * CMU_HFRCOCTRL_BAND_11MHZ
78-
* * CMU_HFRCOCTRL_BAND_7MHZ
79-
* * CMU_HFRCOCTRL_BAND_1MHZ
74+
* * _CMU_HFRCOCTRL_BAND_28MHZ
75+
* * _CMU_HFRCOCTRL_BAND_21MHZ
76+
* * _CMU_HFRCOCTRL_BAND_14MHZ
77+
* * _CMU_HFRCOCTRL_BAND_11MHZ
78+
* * _CMU_HFRCOCTRL_BAND_7MHZ
79+
* * _CMU_HFRCOCTRL_BAND_1MHZ
8080
*/
81-
#define HFRCO_FREQUENCY CMU_HFRCOCTRL_BAND_14MHZ
81+
#define HFRCO_FREQUENCY _CMU_HFRCOCTRL_BAND_21MHZ
8282

8383
#define LFXO_FREQUENCY 32768
8484
#define HFXO_FREQUENCY 48000000

libraries/mbed/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32HG_STK3400/device_peripherals.h

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -71,14 +71,13 @@
7171

7272
/** HFRCO frequency band
7373
* Options:
74-
* * CMU_HFRCOCTRL_BAND_28MHZ
75-
* * CMU_HFRCOCTRL_BAND_21MHZ
76-
* * CMU_HFRCOCTRL_BAND_14MHZ
77-
* * CMU_HFRCOCTRL_BAND_11MHZ
78-
* * CMU_HFRCOCTRL_BAND_7MHZ
79-
* * CMU_HFRCOCTRL_BAND_1MHZ
74+
* * _CMU_HFRCOCTRL_BAND_21MHZ
75+
* * _CMU_HFRCOCTRL_BAND_14MHZ
76+
* * _CMU_HFRCOCTRL_BAND_11MHZ
77+
* * _CMU_HFRCOCTRL_BAND_7MHZ
78+
* * _CMU_HFRCOCTRL_BAND_1MHZ
8079
*/
81-
#define HFRCO_FREQUENCY CMU_HFRCOCTRL_BAND_14MHZ
80+
#define HFRCO_FREQUENCY _CMU_HFRCOCTRL_BAND_21MHZ
8281

8382
#define LFXO_FREQUENCY 32768
8483
#define HFXO_FREQUENCY 24000000

libraries/mbed/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32LG_STK3600/device_peripherals.h

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -71,14 +71,14 @@
7171

7272
/** HFRCO frequency band
7373
* Options:
74-
* * CMU_HFRCOCTRL_BAND_28MHZ
75-
* * CMU_HFRCOCTRL_BAND_21MHZ
76-
* * CMU_HFRCOCTRL_BAND_14MHZ
77-
* * CMU_HFRCOCTRL_BAND_11MHZ
78-
* * CMU_HFRCOCTRL_BAND_7MHZ
79-
* * CMU_HFRCOCTRL_BAND_1MHZ
74+
* * _CMU_HFRCOCTRL_BAND_28MHZ
75+
* * _CMU_HFRCOCTRL_BAND_21MHZ
76+
* * _CMU_HFRCOCTRL_BAND_14MHZ
77+
* * _CMU_HFRCOCTRL_BAND_11MHZ
78+
* * _CMU_HFRCOCTRL_BAND_7MHZ
79+
* * _CMU_HFRCOCTRL_BAND_1MHZ
8080
*/
81-
#define HFRCO_FREQUENCY CMU_HFRCOCTRL_BAND_14MHZ
81+
#define HFRCO_FREQUENCY _CMU_HFRCOCTRL_BAND_21MHZ
8282

8383
#define LFXO_FREQUENCY 32768
8484
#define HFXO_FREQUENCY 48000000

libraries/mbed/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32PG_STK3401/device_peripherals.h

Lines changed: 32 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232

3333
/* us ticker */
3434
#define US_TICKER_TIMER TIMER0
35-
#define US_TICKER_TIMER_CLOCK cmuClock_TIMER0
35+
#define US_TICKER_TIMER_CLOCK cmuClock_TIMER0
3636
#define US_TICKER_TIMER_IRQ TIMER0_IRQn
3737

3838
/* PWM */
@@ -52,31 +52,48 @@
5252

5353
/* Low Energy peripheral clock source.
5454
* Options:
55-
* * LFXO: external crystal, please define frequency.
56-
* * LFRCO: internal RC oscillator (32.768kHz)
57-
* * ULFRCO: internal ultra-low power RC oscillator (available down to EM3) (1kHz)
55+
* * LFXO: external crystal, please define frequency.
56+
* * LFRCO: internal RC oscillator (32.768kHz)
57+
* * ULFRCO: internal ultra-low power RC oscillator (available down to EM3) (1kHz)
5858
*/
59-
#define LOW_ENERGY_CLOCK_SOURCE LFXO
59+
#define LOW_ENERGY_CLOCK_SOURCE LFXO
6060

6161
/** Core clock source.
6262
* Options:
63-
* * HFXO: external crystal, please define frequency.
64-
* * HFRCO: High-frequency internal RC oscillator. Please select frequency as well.
63+
* * HFXO: external crystal, please define frequency.
64+
* * HFRCO: High-frequency internal RC oscillator. Please select frequency as well.
6565
*/
66-
#define CORE_CLOCK_SOURCE HFXO
66+
#define CORE_CLOCK_SOURCE HFXO
6767

68-
#define HFRCO_FREQUENCY_ENUM cmuHFRCOFreq_19M0Hz
69-
#define HFRCO_FREQUENCY 19000000
68+
/** HFRCO frequency selection
69+
* Options:
70+
* ** HFRCO_FREQUENCY_ENUM ** HFRCO_FREQUENCY **
71+
* * cmuHFRCOFreq_1M0Hz == 1000000 *
72+
* * cmuHFRCOFreq_2M0Hz == 2000000 *
73+
* * cmuHFRCOFreq_4M0Hz == 4000000 *
74+
* * cmuHFRCOFreq_7M0Hz == 7000000 *
75+
* * cmuHFRCOFreq_13M0Hz == 13000000 *
76+
* * cmuHFRCOFreq_16M0Hz == 16000000 *
77+
* * cmuHFRCOFreq_19M0Hz == 19000000 *
78+
* * cmuHFRCOFreq_26M0Hz == 26000000 *
79+
* * cmuHFRCOFreq_32M0Hz == 32000000 *
80+
* * cmuHFRCOFreq_38M0Hz == 38000000 *
81+
* *********************************************
82+
*/
83+
84+
/* Make sure the settings of HFRCO_FREQUENCY and HFRCO_FREQUENCY_ENUM match, or timings will be faulty! */
85+
#define HFRCO_FREQUENCY_ENUM cmuHFRCOFreq_19M0Hz
86+
#define HFRCO_FREQUENCY 19000000
7087

71-
#define LFXO_FREQUENCY 32768
72-
#define HFXO_FREQUENCY 40000000
88+
#define LFXO_FREQUENCY 32768
89+
#define HFXO_FREQUENCY 40000000
7390

7491
#if (LOW_ENERGY_CLOCK_SOURCE == LFXO)
75-
#define LOW_ENERGY_CLOCK_FREQUENCY LFXO_FREQUENCY
92+
#define LOW_ENERGY_CLOCK_FREQUENCY LFXO_FREQUENCY
7693
#elif (LOW_ENERGY_CLOCK_SOURCE == LFRCO)
77-
#define LOW_ENERGY_CLOCK_FREQUENCY 32768
94+
#define LOW_ENERGY_CLOCK_FREQUENCY 32768
7895
#elif (LOW_ENERGY_CLOCK_SOURCE == ULFRCO)
79-
#define LOW_ENERGY_CLOCK_FREQUENCY 1000
96+
#define LOW_ENERGY_CLOCK_FREQUENCY 1000
8097
#else
8198
#error "Unknown Low Energy Clock selection"
8299
#endif

libraries/mbed/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32WG_STK3800/device_peripherals.h

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -71,14 +71,14 @@
7171

7272
/** HFRCO frequency band
7373
* Options:
74-
* * CMU_HFRCOCTRL_BAND_28MHZ
75-
* * CMU_HFRCOCTRL_BAND_21MHZ
76-
* * CMU_HFRCOCTRL_BAND_14MHZ
77-
* * CMU_HFRCOCTRL_BAND_11MHZ
78-
* * CMU_HFRCOCTRL_BAND_7MHZ
79-
* * CMU_HFRCOCTRL_BAND_1MHZ
74+
* * _CMU_HFRCOCTRL_BAND_28MHZ
75+
* * _CMU_HFRCOCTRL_BAND_21MHZ
76+
* * _CMU_HFRCOCTRL_BAND_14MHZ
77+
* * _CMU_HFRCOCTRL_BAND_11MHZ
78+
* * _CMU_HFRCOCTRL_BAND_7MHZ
79+
* * _CMU_HFRCOCTRL_BAND_1MHZ
8080
*/
81-
#define HFRCO_FREQUENCY CMU_HFRCOCTRL_BAND_14MHZ
81+
#define HFRCO_FREQUENCY _CMU_HFRCOCTRL_BAND_21MHZ
8282

8383
#define LFXO_FREQUENCY 32768
8484
#define HFXO_FREQUENCY 48000000

libraries/mbed/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/TARGET_EFM32ZG_STK3200/device_peripherals.h

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -68,14 +68,13 @@
6868

6969
/** HFRCO frequency band
7070
* Options:
71-
* * CMU_HFRCOCTRL_BAND_28MHZ
72-
* * CMU_HFRCOCTRL_BAND_21MHZ
73-
* * CMU_HFRCOCTRL_BAND_14MHZ
74-
* * CMU_HFRCOCTRL_BAND_11MHZ
75-
* * CMU_HFRCOCTRL_BAND_7MHZ
76-
* * CMU_HFRCOCTRL_BAND_1MHZ
71+
* * _CMU_HFRCOCTRL_BAND_21MHZ
72+
* * _CMU_HFRCOCTRL_BAND_14MHZ
73+
* * _CMU_HFRCOCTRL_BAND_11MHZ
74+
* * _CMU_HFRCOCTRL_BAND_7MHZ
75+
* * _CMU_HFRCOCTRL_BAND_1MHZ
7776
*/
78-
#define HFRCO_FREQUENCY CMU_HFRCOCTRL_BAND_14MHZ
77+
#define HFRCO_FREQUENCY _CMU_HFRCOCTRL_BAND_21MHZ
7978

8079
#define LFXO_FREQUENCY 32768
8180
#define HFXO_FREQUENCY 24000000

libraries/mbed/targets/hal/TARGET_Silicon_Labs/TARGET_EFM32/clocking.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,17 +36,17 @@
3636
#elif( CORE_CLOCK_SOURCE == HFRCO)
3737

3838
# if defined _CMU_HFRCOCTRL_BAND_MASK
39-
# if( HFRCO_FREQUENCY == CMU_HFRCOCTRL_BAND_1MHZ)
39+
# if( HFRCO_FREQUENCY == _CMU_HFRCOCTRL_BAND_1MHZ)
4040
# define REFERENCE_FREQUENCY 1000000
41-
# elif(HFRCO_FREQUENCY == CMU_HFRCOCTRL_BAND_7MHZ)
41+
# elif(HFRCO_FREQUENCY == _CMU_HFRCOCTRL_BAND_7MHZ)
4242
# define REFERENCE_FREQUENCY 7000000
43-
# elif(HFRCO_FREQUENCY == CMU_HFRCOCTRL_BAND_11MHZ)
43+
# elif(HFRCO_FREQUENCY == _CMU_HFRCOCTRL_BAND_11MHZ)
4444
# define REFERENCE_FREQUENCY 7000000
45-
# elif(HFRCO_FREQUENCY == CMU_HFRCOCTRL_BAND_14MHZ)
45+
# elif(HFRCO_FREQUENCY == _CMU_HFRCOCTRL_BAND_14MHZ)
4646
# define REFERENCE_FREQUENCY 14000000
47-
# elif(HFRCO_FREQUENCY == CMU_HFRCOCTRL_BAND_21MHZ)
47+
# elif(HFRCO_FREQUENCY == _CMU_HFRCOCTRL_BAND_21MHZ)
4848
# define REFERENCE_FREQUENCY 21000000
49-
# elif(HFRCO_FREQUENCY == CMU_HFRCOCTRL_BAND_28MHZ)
49+
# elif(HFRCO_FREQUENCY == _CMU_HFRCOCTRL_BAND_28MHZ)
5050
# define REFERENCE_FREQUENCY 28000000
5151
# else
5252
# define REFERENCE_FREQUENCY 14000000

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -213,12 +213,12 @@ void spi_enable_pins(spi_t *obj, uint8_t enable, PinName mosi, PinName miso, Pin
213213
if (miso != NC) {
214214
route |= USART_ROUTEPEN_RXPEN;
215215
obj->spi.spi->ROUTELOC0 &= ~_USART_ROUTELOC0_RXLOC_MASK;
216-
obj->spi.spi->ROUTELOC0 |= pin_location(mosi, PinMap_SPI_MOSI)<<_USART_ROUTELOC0_RXLOC_SHIFT;
216+
obj->spi.spi->ROUTELOC0 |= pin_location(miso, PinMap_SPI_MOSI)<<_USART_ROUTELOC0_RXLOC_SHIFT;
217217
}
218218
if (!obj->spi.master) {
219219
route |= USART_ROUTEPEN_CSPEN;
220220
obj->spi.spi->ROUTELOC0 &= ~_USART_ROUTELOC0_CSLOC_MASK;
221-
obj->spi.spi->ROUTELOC0 |= pin_location(mosi, PinMap_SPI_MOSI)<<_USART_ROUTELOC0_CSLOC_SHIFT;
221+
obj->spi.spi->ROUTELOC0 |= pin_location(cs, PinMap_SPI_MOSI)<<_USART_ROUTELOC0_CSLOC_SHIFT;
222222
}
223223
obj->spi.spi->ROUTEPEN = route;
224224
}

0 commit comments

Comments
 (0)