SDK  23.9.2
For IoT System Software Development
Classes | Variables
PLNetworks PLM100

LoRa RF 지원 IoT용 통신모듈 More...

Classes

class  SystemPLM100
 PLM100 System. More...
 

Variables

SerialPortSerial
 
SerialPortSerial2
 
TwoWireWire
 
SX1276ChipSX1276
 
StorageConfigMemory
 
StorageConfigMemory2
 
SystemPLM100 System
 

Detailed Description

LoRa RF 지원 IoT용 통신모듈

PLNetworks의 PLM100은 TI MSP430 및 Semtech SX1276 LoRa RF transceiver의 조합으로 구성된 IoT용 통신 모듈입니다.

Memory-map

Name Start Address Size Description
BSL 0x1000 2KB Bootloader
INFOD 0x1800 128 ConfigMemory2
INFOC 0x1880 128 ConfigMemory
INFOB 0x1900 128 -
INFOA 0x1980 128 System reserved NVM
RAM 0x1C00 16KB bss, noinit, heap, stack
ROM 0x5C00 40KB code
HIROM 0x10000 87KB code

PLM100의 noinit, heap, 및 stack 영역의 크기는 자동으로 결정됩니다. 즉, noinit 으로 설정한 영역과 bss가 차지하는 영역을 제외한 나머지 영역은 자동으로 heap과 stack 용으로 결정됩니다.

Pin-map

No. Name Digital I/O Alternate Function Nol.Board Compatibe Pin Name
1 DVCC Vcc (3.3 V)
2 RESET_N Reset
3 GPIO12 O ADC input or external reference (+) A2
4 GPIO2 O ADC A1
5 GPIO13 O UART (UCA0) Rx D0
6 GPIO14 O UART (UCA0) Tx D1
7 J_TEST JTAG (J_TEST)
8 GPIO1 O ADC A0
9 GPIO3 O PWM, External Interrupt D2
10 GPIO4 O External Interrupt D3
11 GPIO5 O External Interrupt, BSL D9
12 ANT Antenna line (only for PLM101)
13 GND Ground
14 GPIO6 O External Interrupt D4
15 GND Ground
16 GPIO7 O PWM, External Interrupt D5
17 GPIO15 O I2C SDA D14
18 GPIO16 O I2C SCL D15
19 GPIO18 UART (UCA1) Tx D8
20 GPIO17 UART (UCA1) Rx D7
21 GPIO10 O JTAG (TMS) D6
22 GPIO11 O JTAG (TCK) D13
23 GPIO8 O JTAG (TDO) D11
24 GPIO9 O JTAG (TDI) D12

I/O

I/O로 활용할 수 있는 핀은 모두 16개로 모두 digital I/O를 지원합니다. 이 중 외부 인터럽트는 최대 5개(GPIO3, GPIO4, GPIO5, GPIO6, GPIO7)까지 수신할 수 있습니다. Analog input (ADC)은 최대 2개(GPIO1, GPIO2)까지 지원합니다. Analog output (PWM)은 최대 2개(GPIO3, GPIO7)까지 지원합니다. 모든 핀은 INPUT 모드로 초기화됩니다.

SerialPort (UART)는 2개 채널(Serial, Serial2), TwoWire (I2C)는 1개 채널(Wire)을 지원합니다.

PLM100은 MCU 내장 watchdog을 사용합니다. Watchdog timeout은 약 16초입니다.

Programming Interface

PLM100은 위 사진과 같이 PL-EVK1과 연결하여 JTAG 및 console serial port 를 통한 이미지 다운로드가 가능합니다.

JTAG은 TI의 MSP-FET 또는 MSP-FET430UIF를 지원합니다. Nol.A 에서 JTAG을 선택한 후 빌드하면 최신 버전의 bootloader 및 응용 펌웨어 이미지가 다운로드 됩니다.

Bootloader가 탑재되면 console serial port를 통한 이미지 다운로드가 가능해집니다. PL-EVK1의 KEY를 누른 상태에서 RESET을 눌렀다 떼면 bootloader로 진입 되며, 이후 Nol.A에서 serial port를 선택하여 빌드하면 flashing이 시작됩니다.

만약 버튼을 누르지 않은 상태가 유지되면 와치독에 의해 리셋이 발생하여 애플리케이션이 실행됩니다. 버튼을 누른 상태를 유지하면 와치독 리셋이 발생하지 않습니다.

물론 위 사진과 같이 Nol.Board와 연결해도 가능합니다. 이 경우 PL-EVK1의 KEY 버튼 대신 BSL 버튼을 사용하면 됩니다.

Note
Bootloader를 통한 이미지 다운로드를 위해서는 serial port 를 사용해야 하며, 타 터미널과 겸용으로 사용할 수 없습니다. 따라서 이미지 다운로드를 시작하기 전에 해당 serial port를 사용 중인 타 터미널 프로그램과의 연결을 잠시 종료해주세요.
Linux 환경에서 JTAG을 선택시 bootloader만 다운로드 됩니다. 응용 펌웨어 이미지는 serial port 를 선택하여 bootloader를 통해 다운로드 해주십시오.
macOS Mojave (10.14) 이상에서는 JTAG이 동작하지 않습니다. TI의 문제해결을 기다리는 중입니다. Bootloader를 통한 다운로드를 사용해주시기 바랍니다. JTAG을 사용해야 한다면 Windows 환경을 이용해주시기 바랍니다.

Project Options

Option Description
NO_BSL 1이면 Bootloader가 제거됨. 이 경우, GPIO5 핀을 이용한 bootloader 진입이 불가능해집니다. 다시 활성화하려면 Nol.A-Project.json 파일 내에 NO_BSL 옵션을 0 또는 제거한 후 JTAG을 통해 다운로드를 해야 합니다.
INV_BSL 1이면 bootloader 진입을 위한 GPIO5 핀의 방향이 반대가 됩니다. 다시 복구하려면 Nol.A-Project.json 파일 내에 INV_BSL 옵션을 0 또는 제거한 후 JTAG을 통해 다운로드를 해야 합니다.
NOLA_ENABLE_EMBTEXTF

1이면 printf() 함수로 Embtextf를 사용합니다.

기본적으로 문자 출력을 위한 printf() 함수로 C 표준 라이브러리인 newlib을 사용합니다. Nol.A-SDK에 내장된 MSP430-GCC의 newlib도 MCU 환경에 맞게 경량화된 것이지만 그래도 MSP430 등에는 여전히 무거울 수 있습니다. 그럴 경우, 이 옵션을 1로 하여 이미지 사이즈를 줄일 수 있습니다.

Note
NO_BSL=1 옵션과 INV_BSL=1 옵션이 동시에 설정되면 NO_BSL=1 옵션이 우선하여 적용됩니다.

Examples

PLM100의 각 기능별 사용 예제는 여기를 참고하십시오.

Variable Documentation

◆ ConfigMemory

Storage& ConfigMemory
설정 정보를 저장하기 위한 내부 비휘발성 메모리 공간 1

◆ ConfigMemory2

Storage& ConfigMemory2
설정 정보를 저장하기 위한 내부 비휘발성 메모리 공간 2

◆ Serial

SerialPort& Serial
UART1을 사용하기 위한 참조자

◆ Serial2

SerialPort& Serial2
UART0을 사용하기 위한 참조자

◆ SX1276

SX1276Chip& SX1276
SX1276을 사용하기 위한 참조자

◆ Wire

TwoWire& Wire
I2C를 사용하기 위한 참조자