Giter Site home page Giter Site logo

siliconlabs / platform_applications Goto Github PK

View Code? Open in Web Editor NEW
20.0 11.0 7.0 127.08 MB

EFM32 and EFR32 platform applications. Go to https://github.com/SiliconLabs/application_examples

License: Other

C 99.31% C++ 0.51% Makefile 0.02% Python 0.16%
efm32 efr32

platform_applications's Introduction

EFM32 and EFR32 Platform Application Examples

EFM32 32-bit Microcontrollers

Silicon Labs Platform Application Examples

This repo contains example projects that demonstrate various applicaitons using the peripherals of Silicon Labs EFM32 and EFR32 parts.

Documentation

Official documentation can be found at our Developer Documentation page.

Reporting Bugs/Issues and Posting Questions and Comments

To report bugs in the Application Examples projects, please create a new "Issue" in the "Issues" section of this repo. Please reference the board, project, and source files associated with the bug, and reference line numbers. If you are proposing a fix, also include information on the proposed fix. Since these examples are provided as-is, there is no guarantee that these examples will be updated to fix these issues.

Questions and comments related to these examples should be made by creating a new "Issue" in the "Issues" section of this repo.

Disclaimer

The Gecko SDK suite supports development with Silicon Labs IoT SoC and module devices. Unless otherwise specified in the specific directory, all examples are considered to be EXPERIMENTAL QUALITY which implies that the code provided in the repos has not been formally tested and is provided as-is. It is not suitable for production environments. In addition, this code will not be maintained and there may be no bug maintenance planned for these resources. Silicon Labs may update projects from time to time.

platform_applications's People

Contributors

janvipatel avatar murthyvedula avatar silabs-akil avatar silabs-anshul avatar silabs-antoniot avatar silabs-austin avatar silabs-cgiga avatar silabs-cohulse avatar silabs-csabam avatar silabs-danieln avatar silabs-davids avatar silabs-dayoung avatar silabs-denverl avatar silabs-ferencm avatar silabs-hopn avatar silabs-joe avatar silabs-johnb avatar silabs-jozseft avatar silabs-ludvigs avatar silabs-marao avatar silabs-martinh avatar silabs-mikey avatar silabs-mitchc avatar silabs-nino avatar silabs-raoulvb avatar silabs-ruibin avatar silabs-sarahl avatar silabs-spurthi avatar silabs-thanhngo avatar silabs-vifisch avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

platform_applications's Issues

platform_xg21_efp01_feature_demo build fail

platform_applications/platform_xg21_efp01_feature_demo/SimplicityStudio/platform_xg21_efp01_feature_demo.sls contained strange string.
PARENT-5-STUDIO_SDK_LOC/v4_EFPconfig_042320/developer/sdks/gecko_sdk_suite/v2.7/hardware/kit/common/drivers/i2cspm.c<

platform_peripheral_lesense_adc absolute path

build failue because the em_adc.c use below path in the .project file:

emlib/em_adc.c
1
PARENT-5-PROJECT_LOC/SiliconLabs/SimplicityStudio/v4_6/developer/sdks/gecko_sdk_suite/v2.7/platform/emlib/src/em_adc.c

platform_lcsense_segmentLCD/src/app.c wrong comments & LCD configuration issue

Project Name
platform_lcsense_segmentLCD
File: /src/app.c

Issue Description
A) Within initVDAC() there are a few comment lines that do not reflect the actual configuration.
B) The demo enables all 20 LCD segments even though the LCD on the board only supports 10 LCD segments.

Issues:

A.1) Line 177
Wrong:
initVdac.reference = vdacRef2V5; // AVDD reference

This should read:
initVdac.reference = vdacRef2V5; // internal 2.5 V reference

A.2) Line 188 & 189
According to the configured voltage reference (No. A.1, see above) either the comments are not correct in line 188 or the the configured VDAC voltage in line 189 is not correct.

Wrong:

// Set channel 0 output, 2000 / 4095 * 3.3 ~= 1.6V
VDAC_Channel0OutputSet(VDAC0, 3000);

This should read:

// Set channel 0 output, 3000 / 4096 * 2.5V ~=1.83V
VDAC_Channel0OutputSet(VDAC0, 3000);

B)
This is probably due to missing flexibility of the SegmentLCD_Init() function (Line 381) which does not allow to mask the non-required LCD segments.
The demo simply enables all LCD segments even though the LCD on the kit only has 10 Segments. This leads to the behavior that GPIOs will be configured and allocated to the LCD even though these GPIOs are connected to other peripherals. This may cause peripheral conflicts and possibly issues on the board.
The LCD that are mistakenly enabled are conflicting with the following board peripherals:

  • LED0
  • Button1
  • PTI
  • DBG_SWCLK
  • Si7021 (I2C)

Just as an idea how the issue could be solved:
Extend SegmentLCD_Init() (located in lcd driver 'sl_segmentlcd.c' of Gecko SDK) with a parameter that allows to declare the required LCD segments:
E.g.:
void SegmentLCD_Init(bool useBoost, uint32_t lcdSegmentEnMask)

Within SegmenLCD_Init() change lines 551-558 to:

  for (uint8_t i = 0; i < LCD_COM_LINES_MAX; i++) {
    LCD_ComEnable(i, true);
  }
  for (uint8_t i = 0; i < LCD_SEGMENT_LINES_MAX; i++) {
      if(lcdSegmentEnMask & (1 << i)) {
        LCD_SegmentEnable(i, true);
    }
  }

Then, within platform_lcsense_segmentLCD/src/app.c, define a LCD mask:

#define LCD_SEGMENT_MASK (uint32_t)((1 << 0)|(1 << 1)|(1 << 4)|(1 << 5)| \
                            (1 << 6)|(1 << 7)|(1 << 8)|(1 << 10)| \
                            (1 << 18)|(1 << 19))

and change line 381 as follows:
SegmentLCD_Init(true, LCD_SEGMENT_MASK);

iar project file is not written correct

take the platform_pcnt_edge_counter_series1 as example,
pcnt_edge_counter.eww only include project for EFR32MG1 (EFR32MG1_pcnt_edge_counter.ewp).

platform_pg12_iadc_stimulus\iar\iadc_stimulus.ewp
'$PROJ_DIR$/../../../hardware\kit\common\bsp'
'$PROJ_DIR$/../../../../../hardware\kit\common\drivers'

May need to consider made change on below examples also:
platform_async_em01grpaclk_out_series2,
platform_pcnt_edge_counter_series1,
platform_pg12_iadc_stimulus,
platform_spi_flash_bandwidth,

platform_peripheral_cryotimer need em_core.c

build failure, need add em_core.c

make: *** No rule to make target C:/SiliconLabs/SimplicityStudio/v5/developer/sdks/gecko_sdk_suite/v3.0/platform/emlib/src/em_msc.c', needed by emlib/em_msc.o'. Stop.

Typo for SensiML_IMU README.md?

platform_SensiML/platform_SensiML_Recognition/SensiML_IMU/README.md

It looks like this don't classify the incoming voice data, it classify IMU data.


**The application can then be flashed onto the device. The model will run on the Thunderboard Sense 2 and can classify incoming voice data based on the labels created in Steps 1 and 2. This project showcases step 3.

This project detects and classifies three types of audio sounds - Horizontal (Classification: 1), Stationary (Classification: 2), Vertical (Classification: 3).**

trng example build failure

could not pass build, report because the SL_DEVICE_INIT_LFXO_TIMEOUT is not in header file sl_device_init_lfxo_config.h:
C:/SiliconLabs/SimplicityStudio/v5/developer/sdks/gecko_sdk_suite/v3.2/platform/service/device_init/src/sl_device_init_lfxo_s1.c:41:22: error: 'SL_DEVICE_INIT_LFXO_TIMEOUT' undeclared (first use in this function); did you mean 'SL_DEVICE_INIT_LFXO_MODE'?
lfxoInit.timeout = SL_DEVICE_INIT_LFXO_TIMEOUT;

platform_emu_temp build fail

The example platform_emu_temp could NOT pass build process.
File platform_applications/platform_emu_temp/SimplicityStudio/platform_emu_temp.sls include some wrong string (like v_4_6_7).

the unzipped .project file has lines like:
<locationURI>PARENT-5-PROJECT_LOC/SiliconLabs/SimplicityStudio/v4_6_7/developer/sdks/gecko_sdk_suite/v2.7/platform/emlib/src/em_usart.c</locationURI>

em_msc.c missed in the project platform_flash_read_while_write

the em_msc path is wrong in the .project file.

	<link>
		<name>emlib/em_gpio.c</name>
		<type>1</type>
		<locationURI>STUDIO_SDK_LOC/platform/emlib/src/em_gpio.c</locationURI>
	</link>
	<link>
		<name>emlib/em_msc.c</name>
		<type>1</type>
		<locationURI>PARENT-5-PROJECT_LOC/SiliconLabs/SimplicityStudio/v5/developer/sdks/gecko_sdk_suite/v3.0/platform/emlib/src/em_msc.c</locationURI>
	</link>

minor typo for smbus clk low timeout example

platform_i2c_smbus_scl_low_timeout/i2c_smbus_scl_low_timeout_slave/src/
PA6, not PB0.
'''
// Route Timer0 CC0 to PB0
GPIO->TIMERROUTE[0].ROUTEEN = GPIO_TIMER_ROUTEEN_CC0PEN;
GPIO->TIMERROUTE[0].CC0ROUTE = (SCL_PORT << _GPIO_TIMER_CC0ROUTE_PORT_SHIFT)
| (SCL_PIN << _GPIO_TIMER_CC0ROUTE_PIN_SHIFT);
'''

platform_stepper_motor missed em_assert.c

need change path for em_assert.c

	<link>
		<name>emlib/em_assert.c</name>
		<type>1</type>
		<location>C:/SiliconLabs/SimplicityStudio/v5/developer/sdks/gecko_sdk_suite/v3.0/platform/emlib/src/em_assert.c</location>
	</link>
	<link>
		<name>emlib/em_cmu.c</name>
		<type>1</type>
		<locationURI>STUDIO_SDK_LOC/platform/emlib/src/em_cmu.c</locationURI>
	</link>

Import and build error with platform_i2c_test_for_efm8_ioexpander

Project name: platform_i2c_test_for_efm8_ioexpander

Environment setup:
OS: Windows 10
IDE: Simplicity Studio V4, version 4.1.14.0
SDK: v2.7.10

Issues:
1.Wrong default toolchain when importing. Toolchain default to GNU ARM v4.9.3
image

2.Missing includes:
a. ${StudioSdkPath}/app/esf_common/template/studio/$(pathVar_HALCONFIG)/inc/hal-config
b. ${StudioSdkPath}/protocol/stack
c. ${StudioSdkPath}/protocol/flex/util
d. ${StudioSdkPath}/platform/Device/SiliconLabs-Restricted/EFR32MG12P/Include
3. Build errors:
a. cli.h: No such file or directory
b. gpio.h: No such file or directory
c. ioexp_drv.h: No such file or directory
image

After fixing the header errors, those additional errors show up:
d. undefined reference to "RAIL_ConfigPti"
e. undefined reference to "RAIL_GetTime"
f. undefined reference to "RAIL_Init"
i. undefined reference to "RAIL_UseDma"
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.