Microcontrollers

From Wiki at Neela Nurseries
Revision as of 20:22, 2 August 2021 by Ted (talk | contribs) (^ Nordic ncs - nRF Connect Software development kit)
Jump to: navigation, search

2021-07-09 Friday

Notes On Microcontrollers </center>


^ 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:

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


^ Microcontroller Qualities and Considerations

Low power benchmark testing:

Out of Order Execution:


^ References

Util nrfjprog suppposedly here:


- - - top of page - - -