Before posting a question
When posting a question, make sure to include the following:
For general community usage please refer to the Silicon Labs Community Guidelines.
We've been working here to create a few more examples for EFM32/EFR32 devices that show basic examples of how to operate the device's peripherals. If you're familiar with our EFM8/C8051 examples, this is a similar setup. Basically, each peripheral (adc, gpio, i2c, etc) has a set of bare-bones examples that demonstrate some operation mode of the peripheral. Not all peripherals or modes are currently covered, but we will be adding more in the future.
The repo can be found here: https://github.com/SiliconLabs/peripheral_examples
Edit 8/27/18: We've pushed a ton of new examples - check it out!
Edit 3/12/19: We are migrating our discussion, questions, and bug reports for the 32-bit peripheral examples to the Issues section of the Github repository. This will allow us to track bugs and feature requests more easily.
Edit 5/24/2019: We've added Series 2 examples, as well as cleaned up the repo structure.
- Add examples for EFR32xG22 Wireless SoC - Migrate AN0012 GPIO examples for series0, series1, and series2 to the peripheral_examples repo (previously not version controlled)
We are testing an EFR32MG21 on a BRD4001 board. We can make a single LED blink using this code and by changing ports/pins to PD02/03. It works with a single LED ("LED0" on PD02), but when I duplicate the GPIO_PinModeSet lines to add PD03 and blink the 2nd LED ("LED1") it does nothing. Inspecting with JLink, it appears to jump to 0xEFFFFFFE (as reported by JLinkExe when I press 'h' to halt and query the registers).
Is there a way to inspect the cause of this fault? Is it a fault? Is it a reset?
Thanks for your help!
I am using EFR32MG21A010 F1024IM32, Gecko SDK Suite 3.1.1. For my intended application, I want to use flash memory to store data. I would be connecting a microphone (has analog output) and then store the analog data that I will receive into flash memory for further processing. I wanted to know that if there is an example code for that which I can use (I couldn't find online). Also, if someone can provide me with the document related to this issue.
I have been using the LEUART with DMA from the HFCLKLE to receive data at 57,600, set for the DMA to wake up from EM2 using DMA wakeup. All seemed fine until I have come to try without the debugger attached. From some other posts it seems that the debugger would actually have been preventing EM2 which is why this works with debugger attached and not without.
I am using the Bluetooth stack with EM2 enabled. Is it possible for the LEUART and DMA wakeup to work with the Bluetooth stack and EM2?
Hello, i have two question about adc scan in dma mode.
I have two inputs and i'm using dma that generate an interrupt when every 10 samples of adc.
How the results are stored in dma buffer? buffer = input adc 1 (sample at t=t-10), buffer = input adc 2 (sample at t=t-10) ... buffer=input adc 1 (last sample 1), buffer= input adc 2 (last sample 2) -> buffer[even] = input 1, buffer[odd] = input 2
Or is there ID (initScan.showId = true) ?
In the application note an1189-efr32-iadc the data (scanBuffer) didn't used...
Here my dma transfer:
retVal = DMADRV_PeripheralMemory( adcDmaCh, (DMADRV_PeripheralSignal_t)ldmaPeripheralSignal_IADC0_IADC_SCAN, buffer, (void*)&IADC0->SCANFIFODATA, true, 10, (DMADRV_DataSize_t)_LDMA_CH_CTRL_SIZE_WORD, &ADC_LDMA_IRQ_ADCHandler, NULL);
Question n° 2, is it possible use adc with timer mode (init.timerCycles=x) and dma mode?
After reading about bootloaders documentation on EFR32 devices (doc : UG103-06 and UG266), I can see that some preexisting bootloaders are configurable through an interface based on UART or SPI. I would like to develop a stand-alone bootloader reading values from an external memory based on I2C communication.
Does such a bootloader exist for EFR32 ?
Is there any chance to get to the source code of bootloaders examples to make them I2C compliant ?
I've got a project that utilizes two async UARTS. I've used a modified copy of retargetserial.c to setup and support the second UART.
I'd like to use some of the stdio functions with this UART to keeping things somewhat portable. The file retargertio.c redefines _write() to use always use RETARGET_WriteChar and ignores the file argument passed into it.
Thought, okay I'll just cast in an int to the FILE * argument in fprintf to the UART I want to use it to direct the output to the desired UART. However the file argument seems to always be '1' by the time it gets to _write(). All assembly in between fprintf() and _write().
Where is this file number set and is it possible to get it to take the value pointed to by the FILE argument of fprintf()?
From the debugger it's difficult to tell what function is fixing the file argument to '1'.
We know that the 8051 MCU supports four kinds of interrupts:
(1) rising edge
(2) falling edge
(3) high level
(4) low level
But it seems that the EFM32G210 and EFM32LG230 NOT support level-sensitive trigger interrrupts. i.e. NOT support high/low level trigger.
We are now using the SI4463 with radio wake up function in a battery powered system. After the EFM32G210/EFM32LG230 enters sleeping mode, the nIRQ signal of the radio can wake up the MCU by a radio packet from the master device.
In some cases the MCU may miss the edge interrupt.
When it happed, the MCU in sleep status and edge interrupts can never be reproduced anymore. Then the radio waits for the MCU to read out the packets and the MCU wait another interrupts to wakeup the MCU. The device fall into a stalemate and the battery will dry out quickly.
If the MCU supports level sensitive interrupts, it will keep triggered until the MCU wakes up and reads out the packets. Then all of the things will become versy simple, we no long need a watchdog timer to monitor the GPIO1 signal which outputs a pulse to indicate the active/sleep status of the radio.
So, my questions are:
(Q1) Does the EFM32G210 and EFM32LG230 supports level-sensitive interrupts?
(Q2) If the answer to (Q1) is YES, please give out the associated reference manual
(Q3) How to configure the the MCU by API or registers?
If you need any further information, please let me informed!
Thanks & Best Regards.
Hi I'm new here.
I am trying to run the example code from AN0030 but it I gut stuck at Drive Not Initialized.
I am using EFM32GG-STK3700 with MicroSD card Adapter from Arduino. I have configured and connect all the pins correctly and include all the bsp files needed.
Is there anything that I forgot?
I'm trying to find the best way to compile the AN0003 as app to upload to an EFM32GG12B110JG, so I can eventually use the Arduino IDE for development (want to use all the existing libraries). Haven't found anything on this in the forum/knowledge base.
The EFM32 mentioned above is on a custom board with a serial to usb connection to my computer. I'm using Simplicity Studio v5.
When I tried copying the updated linker script (origin & length changed to 0x1000 & 0xFF000, respectively according to AN0003 pdf) from Simplicity Studio to a separate directory with the AN0003 source code, I ran into errors when compiling (using `gcc linker.ld bootloader.c`) because it couldn't find the em_device.h file included in bootloader C file. I found this file in the project on SSv5; however, it looks like SSv5 doesn't have a hex file for my specific part (which would be listed in the em_device hex file. The closest are EFM32GG12B110F...
Where can I find the hex file for my specific part and all the other files necessary to compile the AN0003 bootloader as an app? Suggestions on the quickest way to be able to use Arduino libraries with this part are very welcome as well.
I know this might be the wrong place to post this, but, the giant gecko series 1 page of the silabs.com website is partially broken:
Click the "Show 122 More" button and scroll down, all of the GG11 MCUs are missing.