Difference between revisions of "Microcontrollers"

From Wiki at Neela Nurseries
Jump to: navigation, search
m (^ References: adding reference to Docker based build of Nordic ncs firmware project.)
m (Adding "key words" and "overview" sections to local wiki page.)
Line 1: Line 1:
 
+
<center>
 
2021-07-09 Friday
 
2021-07-09 Friday
  
Line 6: Line 6:
  
  
 +
Keywords:  <code>two builds</code>
 +
 +
== [[#top|^]] Overview ==
 +
This local wiki page a starting point for general notes on microcontrollers cerca 2020.
 +
<!-- comment -->
  
 
== [[#top|^]] Manufacturers of Microcontrollers ==
 
== [[#top|^]] Manufacturers of Microcontrollers ==

Revision as of 00:27, 3 August 2021

2021-07-09 Friday

Notes On Microcontrollers


Keywords: two builds

^ Overview

This local wiki page a starting point for general notes on microcontrollers cerca 2020.

^ Manufacturers of Microcontrollers

Manufacturers visited:

Not yet visited:

    • Cypress Semiconductor
    • Renesas of Japan
    • Silabs
    • Dialog
    • Qualcomm

^ NordicSemi

An nRF9160 development kit:

Notes on building, flashing to board, and testing example vRF9160 projects and demos:

^ nRF9160 Getting Started Pages

2021-07-20 Tuesday Searching at NordicSemi.com specifically for example code for the nRF9160:

The most important information for firmware starting works at this link for nRF9160 SDK. Note that there is mention of Zephyr RTOS integration:

Hmm, what we thought was a code bundle, code examples has only pre-built binaries. This developers' forum post spells out in detail what was available -- three demos only -- in 2019. See the replies from Nordic's engineer Oyvind:

2021-07-25
This may be the best "getting started" page at Nordic:

^ Hard to locate nRF9160 DK schematic!

A page at Nordicsemi which links to schematics in a larger downloadable file, or so claimed:

Another link seemingly close to the schematic but not getting us there:


^ nRF9160 SDK supported boards

nRF9160 Development Kit (DK) boards:

Smaller dev board from Sparkfun, Thingy:91 . . .


^ nRF9160 Thing Plus by Sparkfun

Some notes on Sparkfun development board named nRF9160 Thing Plus</b>:

How to configure and drive UART on nRF9160:


^ ARM Cortex-M33 CMSIS

ARM Cortex-M33 hardware abstraction layer and CMSIS details here:

Explore and download CMSIS from Github:


^ Sparkfun Thing Plus example code and tools

Working with Sparkfun nRF9160 based Thing Plus, Sparkfun's following page instructs how to install newtmgr:

Installing examples and needed toolchain pieces on Linux hosts:

When attached via USB-C cable, Sparkfun's Thing Plus appears this way in an `lsusb` listing:

   Bus 002 Device 005: ID 10c4:ea60 Silicon Labs CP210x UART Bridge

Back to Nordic example code, the nRF9160 Thing Plus is a supported board there:

Given this tie in with Nordic nRF9160 SDK which appears to be part of Zephyr project example codes, the two builds we're trying to achieve so far from Nordic SDK / Zephyr include:

   west build -b nrf9160dk_nrf9160@1.0.0 ./samples/basic/blinky
   west build -b sparkfun_thing_plus_nrf9160 samples/hello_world

Note also if we change working directories into a particular example code we then omit the final argument, the relative path to an example code in the above snippet here. A successful build of 'hello-world' gives these messages:

ted@localhost:~/projects/nordicsemi$ date
Mon 02 Aug 2021 06:33:26 AM PDT 

ted@localhost:~/zephyrproject/zephyr/samples/hello_world$ ls
CMakeLists.txt  prj.conf  README.rst  sample.yaml  src 
ted@localhost:~/zephyrproject/zephyr/samples/hello_world$ west build -b sparkfun_thing_plus_nrf9160
-- west build: generating a build system
Including boilerplate (Zephyr base): /home/ted/zephyrproject/zephyr/cmake/app/boilerplate.cmake
-- Application: /home/ted/zephyrproject/zephyr/samples/hello_world
-- Zephyr version: 2.6.99 (/home/ted/zephyrproject/zephyr), build: zephyr-v2.6.0-1460-g17d2e9d084b2
-- Found Python3: /usr/bin/python3.8 (found suitable exact version "3.8.10") found components: Interpreter 
-- Found west (found suitable version "0.11.0", minimum required is "0.7.1")
-- Board: sparkfun_thing_plus_nrf9160
-- Cache files will be written to: /home/ted/.cache/zephyr
-- Using toolchain: zephyr 0.12.4 (/opt/zephyr-sdk-0.12.4)
-- Found dtc: /opt/zephyr-sdk-0.12.4/sysroots/x86_64-pokysdk-linux/usr/bin/dtc (found suitable version "1.5.0", minimum required is "1.4.6")
-- Found BOARD.dts: /home/ted/zephyrproject/zephyr/boards/arm/sparkfun_thing_plus_nrf9160/sparkfun_thing_plus_nrf9160.dts
sparkfun_thing_plus_nrf9160.dts.pre.tmp:58.42-70.3: Warning (unique_unit_address_if_enabled): /soc/peripheral@50000000/flash-controller@39000: duplicate unit-address (also used in node /soc/peripheral@50000000/kmu@39000)
sparkfun_thing_plus_nrf9160.dts.pre.tmp:310.19-316.3: Warning (unique_unit_address_if_enabled): /soc/peripheral@50000000/clock@5000: duplicate unit-address (also used in node /soc/peripheral@50000000/power@5000)
-- Generated zephyr.dts: /home/ted/zephyrproject/zephyr/samples/hello_world/build/zephyr/zephyr.dts
-- Generated devicetree_unfixed.h: /home/ted/zephyrproject/zephyr/samples/hello_world/build/zephyr/include/generated/devicetree_unfixed.h
-- Generated device_extern.h: /home/ted/zephyrproject/zephyr/samples/hello_world/build/zephyr/include/generated/device_extern.h
Parsing /home/ted/zephyrproject/zephyr/Kconfig
Loaded configuration '/home/ted/zephyrproject/zephyr/boards/arm/sparkfun_thing_plus_nrf9160/sparkfun_thing_plus_nrf9160_defconfig'
Merged configuration '/home/ted/zephyrproject/zephyr/samples/hello_world/prj.conf'
Configuration saved to '/home/ted/zephyrproject/zephyr/samples/hello_world/build/zephyr/.config'
Kconfig header saved to '/home/ted/zephyrproject/zephyr/samples/hello_world/build/zephyr/include/generated/autoconf.h'
-- The C compiler identification is GNU 10.2.0
-- The CXX compiler identification is GNU 10.2.0
-- The ASM compiler identification is GNU 
-- Found assembler: /opt/zephyr-sdk-0.12.4/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc
-- Configuring done
-- Generating done
-- Build files have been written to: /home/ted/zephyrproject/zephyr/samples/hello_world/build
-- west build: building application
[1/145] Preparing syscall dependency handling

[138/145] Linking C executable zephyr/zephyr_prebuilt.elf

[145/145] Linking C executable zephyr/zephyr.elf
Memory region         Used Size  Region Size  %age Used
           FLASH:       16492 B         1 MB      1.57%
            SRAM:        4072 B        64 KB      6.21%
        IDT_LIST:          0 GB         2 KB      0.00%
ted@localhost:~/zephyrproject/zephyr/samples/hello_world$


^ Nordic ncs - nRF Connect Software development kit

Looking further for Sparkfun's named or implied example code projects for Sparkfun's nRF9160 Thing Plus, finding that ncs SDK is elusive. There is mention of this SDK in Sparkfun's "nRF9160 Thing Plus Hookup Guide". One Devzone member Raj also mentions it in response to a post of IIoT team. But it's not obvious from where to download ncs from any of the following pages:

'Ah' moment! Here is a URL to the page and anchor point of NordicSemi, of which Devzone engineer Marte was speaking:

Also important, and more insight into nRF SDK or Software Development Kit, following links include intro, west manifest, and ncs release notes:


^ Microcontroller Qualities and Considerations

Low power benchmark testing:

Out of Order Execution:


^ References

Util nrfjprog suppposedly here:

Using Docker build an ncs project ( if we can find nsc software development kit! - TMH ):


- - - top of page - - -