Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: readme.md
- Revision:
- 0:c76361bd82e8
diff -r 000000000000 -r c76361bd82e8 readme.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/readme.md Wed Apr 11 14:42:47 2018 +0000 @@ -0,0 +1,188 @@ + / _____) _ | | + ( (____ _____ ____ _| |_ _____ ____| |__ + \____ \| ___ | (_ _) ___ |/ ___) _ \ + _____) ) ____| | | || |_| ____( (___| | | | + (______/|_____)_|_|_| \__)_____)\____)_| |_| + (C)2017 Semtech-Cycleo + +LoRa Pico Cell Gateway project - MCU firmware +============================================= + + +## 1. Components +---------------- + +This directory contains the sources code of the Keil project to build a Picocell +Gateway MCU firmware based on the Semtech LoRa Picocell Gateway reference +design. +The target MCU is a STM32F401CD. The firmware implements either a USB CDC +protocol or a UART protocol to bridge commands coming from host to the SX1308 +SPI interface. +The embedded firmware takes in charge the power management of the SX1308 during +the downlink to respect the 500MA max power constraint in the USB plug. + + + ((( Y ))) + | + | + +- -|- - - - - - - - - - - - -+ xxxxxxxxxxxx +--------+ + |+--+-----------+ +------+| xxx xxx | | + || | | || xx Internet xx | | + || Pico Cell GW |<----+ Host |<-----xx or xx------>| | + || STM32F401CD | USB/| || xx Intranet xx | Server | + || Sx1308 | UART+------+| xxx xxx | | + || 2*SX1257 | Linux | xxxxxxxxxxxx | | + |+--------------+ | | | + | | +--------+ + | | + +- - - - - - - - - - - - - - -+ + + +### 1.1. MAIN ### + +The MAIN/ directory contains the main program that runs on the MCU, which +launches the USB/UART commands interpreter to communicate with the Host. + +### 1.2. CmdUSB ### + +The CmdUSB/ directory contains the USB/UART command interpreter to handle the +communication between the Host and the concentrator. It is a bridge to the HAL +which communicates with the SX1308 through SPI. + +### 1.3. usb_cdc ### + +The STM32 USB CDC library modified for this reference design. + +### 1.4. SX1308HAL ### + +The LoRa concentrator Hardware Abstraction Layer C library to configure the +hardware, send and receive packets. + + +## 2. Precompiled binaries +-------------------------- + +The bin/ directory contains the precompiled binary files in .hex or .dfu +formats, for both USB and UART communication bridges. +To load the binary file into the target MCU flash memory, you have to: + +### 2.1. USB + +* Make the MCU enter DFU mode: + - either press the BOOT0 button of the PicoCell GW while plugging it to the + host USB port + - or use the util_boot tool provided with the picoGW_hal repository. + +* Program the binary into the MCU flash memory: + - use a tool like dfu-util (http://dfu-util.sourceforge.net). + + ex: + ``` + dfu-util -a 0 -D pgw_fw_usb.dfu + ``` + + Note: you may have to use sudo depending on your priviledges. + +* Unplug/replug USB PicoCell GW to exit DFU mode. + + +### 2.2. UART + +* Make the MCU enter UART bootloader: + - either press the BOOT0 button of the PicoCell GW while plugging it to the + host USB port + - or use the util_boot tool provided with the picoGW_hal repository. + +* Program the binary into the MCU flash memory: + - use a tool like stm32flash (https://sourceforge.net/projects/stm32flash) + + ex: + ``` + stm32flash -b 115200 /dev/ttyS0 -v -w pgw_fw_uart.hex -g 0x0 + ``` + + +## 3. Build the project +----------------------- + +In order to compile the whole project, a Keil project is provided in the src/ +directory. Open the pgw.uvproj file in Keil and rebuild all. + +By default, it builds the project for using USB communication bridge. In order +to use the UART instead, uncomment the following line in src/MAIN/board.h before +building all the project. + +``` +#define USE_UART 1 +``` + +After the compilation as succeeded, a Pgw.hex file is created in the bin/ +directory. It is the file to be programmed in the MCU flash memory. Refer to +section 2 of this document to get information for flashing. +A DFU file can be created from this .hex file using the "Dfu file manager" tool +provided by STmicroelectronics. +[www.st.com/resource/en/user_manual/cd00155676.pdf](www.st.com/resource/en/user_manual/cd00155676.pdf) + + +## 4. User Guide +---------------- + +[A detailed PicoCell GW user guide is available here](http://www.semtech.com/images/datasheet/picocell_gateway_user_guide.pdf) + + +## 5. Changelog +--------------- + +### v0.2.1 ### + +* Added a delay in the MCU init procedure to ensure that HSE (32MHz external +clock) input is selected before starting USB enumeration. +* Reset the SX1257 radios to fix a potential bad POR (Power-On Reset) condition +when there are no Schottky diodes placed on the SX1257 radios reset line. +* Unify the USB VID/PID values between the Linux version and Windows +(picoGW_UI tool) version. + +### v0.2.0 ### + +* Reverted AGC firmware from version 5 back to version 4. +* Updated MCU FW version to match with picoGW_hal + +### v0.1.1 ### + +* Disabled USB vbus sensing +* Moved delay to wait for COM bridge to be initialized in CMDMANAGER::Init(). + +### v0.1.0 ### + +* Code clean-up, refactoring +* Support both USB and UART communication with host + +### v0.0.1 ### + +* Initial release + + +## 6. Legal notice +------------------ + +The information presented in this project documentation does not form part of +any quotation or contract, is believed to be accurate and reliable and may be +changed without notice. No liability will be accepted by the publisher for any +consequence of its use. Publication thereof does not convey nor imply any +license under patent or other industrial or intellectual property rights. +Semtech assumes no responsibility or liability whatsoever for any failure or +unexpected operation resulting from misuse, neglect improper installation, +repair or improper handling or unusual physical or electrical stress +including, but not limited to, exposure to parameters beyond the specified +maximum ratings or operation outside the specified range. + +SEMTECH PRODUCTS ARE NOT DESIGNED, INTENDED, AUTHORIZED OR WARRANTED TO BE +SUITABLE FOR USE IN LIFE-SUPPORT APPLICATIONS, DEVICES OR SYSTEMS OR OTHER +CRITICAL APPLICATIONS. INCLUSION OF SEMTECH PRODUCTS IN SUCH APPLICATIONS IS +UNDERSTOOD TO BE UNDERTAKEN SOLELY AT THE CUSTOMER'S OWN RISK. Should a +customer purchase or use Semtech products for any such unauthorized +application, the customer shall indemnify and hold Semtech and its officers, +employees, subsidiaries, affiliates, and distributors harmless against all +claims, costs damages and attorney fees which could arise. + +*EOF*