Best LoRa & Microcontroller single-chip solution | ASR6601 SoC Tutorial | LoRaWAN Helium com

0 30314 Easy

Hey, what's up, Guys! Akarsh here from CETech.

Today we have with us, a new module that can be the next big thing in the world of LoRa technology. We are talking about the ASR6601 SoC chip from ASR Microelectronics which is a package on its own. Why we are calling it a package is because it is a combination of a LoRa chip and a microcontroller on a single chip.

Previously, whenever we wanted to create a LoRa Project, we had to take a LoRa module and connect that to any microcontroller like Arduino, etc., and then we used to program that according to our use. This process was a bit cumbersome and it was not possible to create a small and compact project from this combination. In that kind of case, this module will be a perfect fit.

So today, we are going to have a look at this module and after that, we will be testing it with the help of an example code. So let's get straight into it.


Get the best SMT Jobs for your projects


You must check out JLCPCB for ordering PCBs online for cheap!


You can also get good quality SMT Assemblies from ​JLCPCB with Assembly Prices starting at an 8$ setup fee and $0.0017 assembly fee per joint. You will get a discount on shipping on your first order. You just need to upload your Gerber, BOM&CPL files to get an instant quote on PCB, components, and assembly. A DFM analysis is generated after you order the boards, allowing you to spot potential mistakes before it goes into production. You can also track order status in real-time and can get your products in your hands as fast as one week. 


About ASR6601 Module


​ASR6601 is a general LPWAN Wireless Communication SoC, with an integrated RF Transceiver, Modem, and a 32-bit RISC MCU. The MCU uses ARM Cortex M4, with a 48 MHz operating frequency. The RF Transceiver has continuous frequency coverage from 150 MHz to 960 MHz. The Modem supports LoRa modulation for LPWAN use cases and (G)FSK modulation for legacy use cases. The Modem also supports BPSK modulation in TX and (G)MSK modulation in TX and RX. The LPWAN Wireless Communication Module designed with ASR6601 provides ultra-long range and ultra-low-power communication for LPWAN applications. ASR6601 can achieve a high sensitivity to -148 dBm and the maximum transmit power is up to +22 dBm. This makes the chip suitable to be used in long-range LPWAN and has high efficiency. The total chip package is of very small size, QFN 6 mm x 6 mm/QFN 8 mm x 8 mm.


Key Features:

Small footprint: QFN48, 6 mm x 6 mm or QFN68, 8 mm x 8 mm

Frequency Range: 150 MHz ~ 960 MHz

Maximum Power +22 dBm constant RF output

High sensitivity: -148 dBm

Programmable bit rate up to 62.5 Kbps in LoRa modulation mode

Programmable bit rate up to 300 Kbps in (G)FSK modulation mode

Preamble detection

Embedded memories (up to 256 KB of Flash memory and 64 KB of SRAM).

Up to 42 configurable GPIOs: 3 x I2C, 1 x I2S, 4 x UART, 1 x LPUART, 1 x SWD, 3 x SPI, 1 x QSPI and 2 x WDG

4 x GPtimer, 2 x Basic Timer, 2 x LP timer, and 1 x Sys Ticker

48 MHz ARM Cortex-M4 CPU

4-channel DMA engine x 2

Embedded 12-bit 1 Msps SAR ADC

Embedded 12-bit DAC

32.768 kHz External Watch Crystal Oscillator

32 MHz External Crystal Oscillator for RF Transceiver


Prerequisites for Using the ASR6601 Module


To program and use the ASR6601 module you need some additional things both at the hardware and the software end. So in this step, we are going to get things ready so that you can use our module. First of all, as the ASR6601 chip does not have an inbuilt programmer, that's why you will require a programmer to load your codes in the chip. We will be using the J-link programmer from segger because we are going to program the board using Keil Microvision and for that, JTAG is required. You can also use the STLink if you are using STM software to program the board.

Now as we are ready with the Hardware objects, We can move on to the Software part where we need to install three different software to get things up and running. For that, you need to follow the steps given below:-


The First Software that you need to install is Keil uVision(MicroVision). For that, you need to go to the ARM Keil Website's MDK-ARM download page from here. On this page, You need to enter the details that are asked and after that, you need to hit the submit button. This will start the download.

Once the file is downloaded, you need to install that into your system. It will be like any other normal software download.


The second thing that we need to download is the GNU ARM Embedded Toolkit. You can head over to the download page from here. As you scroll down the page, you will see a file named "gcc-arm-none-eabi-10.3-2021.10-win32.exe". This is the file that you need to download. The file is for a 32-bit system, but it will work fine in the 64-bit system as well. So you can go ahead with that. After the download is complete, you just need to install this and you are ready to move forward.


After the toolkit installation is done, You need to download the Software Development Kit for this project, It is basically a collection of example codes and other important things. To download this, you need to go to my Github page for this project from here.

And once you are done with the downloads, You are all set to go ahead and play with your ASR6601 module. In the next step, you will find the instructions to do some basic hardware connections and to upload the code on the Chip.


Programming the Chip


In the previous step, you completed the setup for the project. Now you need to make some simple connections and after that program the board to get things done. To do this, you need to follow the steps given below:-

Hardware Connections:

To do the connections, You need to look at the GPIO pins on the back of the board. In those pins, you will see the GND, SW-DAT, and SW-CLK pins. These are the only pins, that we need to connect.

Connect the GND pin of ASR6601 to the GND pin of J-Link, SW-DAT pin of the ASR6601 to the SWDIO pin of the ASR6601, and SW-CLK pin of the ASR to the SWCLK pin of the J-Link.


Once the connections are done, You need to connect an Antenna to the ASR module and after that, You need to connect the ASR module to your PC using a USB cable to provide power to it, and similarly, you need to connect the J-Link to the PC as well.

And That's It on the Hardware side. Now let's move on to the Software part.


Loading the Program


Go to the SDK folder that you downloaded from my Github page. In that folder, you will see a zipped folder named projects. You need to unzip that.


Now open the unzipped projects folder. Inside that, you will see two folders. Out of those two, you need to open the folder named "ASR6601SE-EVAL" as we are using the SE board.


In that folder, you will see two folders named example and template. You need to enter the templates folder. In that folder, you will see a Windows batch file named Keil. You need to open that file.


Once you open that file, you will see that a new file named project will be automatically created in the folder. You need to open that file.


While the file is opening, you need to head over to the SDK folder, there you will see a folder named tools, you need to open that. Inside that, there is another folder named FLM and inside that folder, there is an "ASR6601.FLM" file. You need to copy that file.


Now go on to the folder where your Keil was installed. Inside that, you will see a folder named ARM and inside the ARM folder, you will see a folder named Flash. Inside the Flash folder, you need to paste the file you just copied.


Now go back to the Keil uVision. You will see that it has opened. Now head over to the Projects menu there you will see the Manage option and inside manage select Project Items.


Another window will open up. In that window, you need to select the Folders/Extensions tab. Inside that, make sure that the Use GCC Compiler option is selected and In the Folder Field, The path needs to point towards the location where your GNU Toolchain is installed. After doing this, Hit OK.


Now on the left-hand side pane, you will see a platform folder inside that, you have the code files with the extensions, ".s" and ".c". You can open them and check the codes. The code is pretty basic. It is just to check whether the board is working or not.

You can make some changes to the code if you want. Otherwise, Go to the Project menu and select rebuild all target files. You will see the things happening on the screen at the bottom and after compiling, it will see that the file is compiled.


Now you need to flash the code to the board. Before that, make sure that the board and the J-Link are properly connected to each other and to the PC as well and after that, click the Reset button on the board.

Now go over to the Flash menu and click on the Download button.

After hitting the Download button, you will again see the steps that will be happening on the bottom screen you will see that the Erasing was done and after that Programming, Verification, and Finally the Flashing of the code is done. In this way, you are done with your first project on the ASR6601 Project and you can hit the reset button on the board.


After This Project


So in this way, we are done with the task that we had for today. We did the setup to use our ASR6601 and in the end, flashed some basic code in it. if you want to try and test some other examples on this board, then you can head back to the SDK folder. Inside that, you can go to the projects folder. There you need to select the compatible board you are using and inside that, this time instead of the template folder, you need to go to the examples folder. In that folder, there are a number of examples that you can run in a similar fashion to what we did in this one. Now you should have got an idea that why we were calling it the potential next big thing. In the upcoming future, the Arduino IDE will also support programming this board which will make it easier to use.


So that's it for this time, I will be back with some more interesting projects using this module until then enjoy electronics.

All Rights