ไดรเวอร์ Semtech SX126X LORA สำหรับ micropython และ circuitPython
ไลบรารีนี้ได้รับการพอร์ตและแก้ไขจาก radiolib โดย jgromes
ห้องสมุดนี้รองรับ micropython ตัวแปรทั่วไปและ pycom รวมถึง circuitpython
ทดสอบด้วย:
* รวบรวมเป็น. mpy หรือรวบรวมลงในภาพ micropython เพื่อป้องกันข้อผิดพลาดปัญหาหน่วยความจำ
Class SX1262.SX1262 (SPI_BUS, CLK, MOSI, MISO, CS, IRQ, RST, GPIO)
สร้างและเริ่มต้นวัตถุ SX1262
พารามิเตอร์คือ:
SX1262.SetFrequency (FREQ)
ตั้งค่าความถี่ใน MHz
return: สถานะ (อ้างอิงถึงพจนานุกรมสถานะค่า คงที่ )
SX1262.SetOutputPower (พลังงาน)
ตั้งค่าพลังงาน TX ใน DBM
กลับ: สถานะ
SX1262.SetBlockingCallback (การบล็อก, การโทรกลับ = ไม่มี)
ตั้งค่าโหมดการบล็อก TX/RX และการโทรกลับขัดจังหวะ
หากการบล็อก = จริง, TX/RX ถูกตั้งค่าเป็นโหมดการปิดกั้นและฟังก์ชั่นการโทรกลับจะถูกละเว้น
หากการบล็อก = FALSE, TX/RX ถูกตั้งค่าเป็นโหมดการปิดกั้นและฟังก์ชั่นการเรียกกลับจะถูกเรียกใช้ด้วยอาร์กิวเมนต์เหตุการณ์เมื่อเหตุการณ์ TX/RX
หาก callback = none ฟังก์ชันการโทรกลับของเหตุการณ์จะถูกปิดใช้งาน
SX1262.getRssi ()
รับ RX RSSI ใน DBM
return: ค่า RSSI
SX1262.GetTimeOnair (LEN)
รับเวลา RX บนอากาศตามความยาวข้อความ LEN = ความยาวข้อความ
Return: Time on Air Value
SX1262.Send (ข้อมูล)
ส่งข้อความชนิดข้อมูลจะต้องเป็นไบต์หรือไบต์
return: ความยาวน้ำหนักบรรทุกสถานะ
SX1262.RECV (LEN = 0, TIMEOUT_EN = FALSE, TIMEOUT_MS = 0)
อ่านข้อความ RX
len = ความยาวข้อความถ้า 0, ค่าเริ่มต้นเป็น sx126x_max_packet_length
TimeOut_en = เปิดใช้งาน RX TimeOut ถ้าเป็นเท็จการบล็อกฟังก์ชั่นอย่างไม่มีกำหนดจนกระทั่งได้รับข้อความ (ในโหมดการปิดกั้นเท่านั้น)
TIMEOUT_MS = RX TIMEOUT ใน MS, 0 หมายถึงการหมดเวลา = 100 LORA ความยาวสัญลักษณ์สำหรับ LORA หรือ TIMEOUT = 500% เวลาที่คาดหวังกับ Air-Air สำหรับ FSK (เฉพาะในโหมดการปิดกั้น)
return: payload สถานะ
sx1262.begin (freq = 434.0, bw = 125.0, sf = 9, cr = 7, syncword = 0x12, power = 14, currentLimit = 60.0
preambLelength = 8, implict = false, ImplicitLen = 0xff, crcon = true, txiq = false, rxiq = false,
tcxovoltage = 1.6, useregulatorldo = false, การบล็อก = true)
วิธีนี้ใช้ในการตั้งค่าการกำหนดค่า LORA
พารามิเตอร์คือ:
กลับ: สถานะ
SX1262.SetBandWidth (BW)
ตั้งแบนด์วิดท์ Lora ใน KHZ
กลับ: สถานะ
SX1262.SetCodingrate (CR)
ตั้งค่าอัตราการเข้ารหัส LORA 5 ถึง 8
กลับ: สถานะ
SX1262.SetPreamBlelength (preambleLength)
ตั้งค่าความยาวคำนำ LORA
กลับ: สถานะ
SX1262.SetSpreadingFactor (SF)
ตั้งค่าปัจจัยการแพร่กระจาย LORA 5 ถึง 12
กลับ: สถานะ
SX1262.SetSyncWord (syncword, [controlbits])
ตั้งค่าคำศัพท์ lora sync, ส่วนตัว = 0x12, สาธารณะ = 0x34
ตัวควบคุมพารามิเตอร์ตัวเลือกค่าเริ่มต้นคือ 0x44
เช่น syncword = 0xab, controlbits = 0xcd -> sx126x 2 bytes sync word = 0xacbd
เช่น syncword = 0x12, controlbits = 0x44 -> sx126x 2 bytes sync word = 0x1424
กลับ: สถานะ
SX1262.ExplicItheader ()
เปิดใช้งานโหมดส่วนหัวของ LORA อย่างชัดเจน
กลับ: สถานะ
SX1262.implicitheader (Implicitlen)
เปิดใช้งานโหมดส่วนหัวของ LORA โดยมีพารามิเตอร์ความยาวโดยนัย
กลับ: สถานะ
SX1262.ForcelDro (เปิดใช้งาน)
แรงเปิดใช้งานการเพิ่มประสิทธิภาพอัตราข้อมูลต่ำ
กลับ: สถานะ
SX1262.Autoldro ()
เปิดใช้งานการเพิ่มประสิทธิภาพอัตราข้อมูลต่ำอัตโนมัติ
กลับ: สถานะ
SX1262.SetCRC (CRCON)
ตั้งค่าโหมด LORA CRC
กลับ: สถานะ
sx1262.settxiq (txiq)
ตั้งค่าโหมด LORA TX Invert IQ
sx1262.setrxiq (rxiq)
ตั้งค่าโหมด LORA RX Invert IQ
sx1262.getsnr ()
รับ Lora RX SNR ใน DB
return: ค่า SNR
sx1262.beginfsk (freq = 434.0, br = 48.0, freqdev = 50.0, rxbw = 156.2, พลังงาน = 14, currentlimit = 60.0,
preambLelength = 16, datashaping = 0.5, syncword = [0x2d, 0x01], syncbitsLength = 16,
addrFilter = sx1262.addr_filt_off, addr = 0x00, crclength = 2, crcinitial = 0x1d0f, crcpolynomial = 0x1021,
crcinverted = true, Whiteningon = true, WhiteningInitial = 0x0100,
fixedpacketLength = False, PacketLength = 0xff, PreambledEtectorLength = SX1262.preamble_detect_16
tcxovoltage = 1.6, useregulatorldo = false,
การบล็อก = จริง)
วิธีนี้ใช้ในการตั้งค่าการกำหนดค่า FSK
พารามิเตอร์คือ:
กลับ: สถานะ
SX1262.SetBitrate (BR)
ตั้งค่าอัตราบิต FSK ใน KBPS
กลับ: สถานะ
SX1262.SetFrequencyDeviation (FREQDEV)
ตั้งค่าการเบี่ยงเบนความถี่ FSK ใน KHz
กลับ: สถานะ
SX1262.SetRxBandWidth (RXBW)
ตั้งแบนด์วิดท์ FSK RX ใน KHZ
กลับ: สถานะ
SX1262.SetDatashaping (Datashaping)
ตั้งค่าผลิตภัณฑ์ FSK Time-Bandwidth ของตัวกรอง Gaussian ที่จะใช้สำหรับการสร้าง
กลับ: สถานะ
SX1262.SetSyncBits (syncword, bitslen)
ตั้งค่าความยาว FSK SYNC และความยาวบิตซิงค์
syncword = sync word ในรายการ
bitslen = ซิงค์ความยาวบิตคำ
กลับ: สถานะ
SX1262.SetPreamBlelength (preambleLength)
ตั้งค่าความยาวคำนำ FSK
กลับ: สถานะ
SX1262.SetPreambledetectorlength (PreambledEtectorLength)
ตั้งค่าความยาวการตรวจจับคำนำขั้นต่ำอ้างอิงค่า คง ที่ความยาวเครื่องตรวจจับคำนำ FSK
SX1262.SetNodeAddress (addr)
เปิดใช้งานการกรองที่อยู่บนที่อยู่โหนด addr
กลับ: สถานะ
SX1262.SetBroadcastAddress (ADDR)
เปิดใช้งานการกรองที่อยู่บนโหนดและที่อยู่ออกอากาศ
กลับ: สถานะ
SX1262.DisableaddressFiltering ()
ปิดใช้งานการกรองที่อยู่
กลับ: สถานะ
sx1262.setcrc (len, เริ่มต้น = 0x1d0f, polynomial = 0x1021, กลับหัว = true)
ตั้งค่า FSK CRC
LEN = ความยาว CRC, 0, 1 หรือ 2
เริ่มต้น = CRC เริ่มต้น
พหุนาม = พหุนามที่ใช้สำหรับการคำนวณ CRC
คว่ำ = เปิดใช้งานการผกผันของ CRC Bytes
กลับ: สถานะ
SX1262.SetWhitening (เปิดใช้งาน, เริ่มต้น = 0x0100)
ตั้งค่าการฟอกสีขาว FSK
ค่าเริ่มต้น = ค่าเริ่มต้นสำหรับการฟอกสีฟัน LFSR
กลับ: สถานะ
SX1262.FixedPacketLengthMode (LEN)
ตั้งค่าโหมดความยาวแพ็คเก็ตคงที่ FSK
len = ความยาวแพ็คเก็ตในไบต์
กลับ: สถานะ
SX1262.VariablePacketLengthMode (Maxlen)
ตั้งค่าโหมดความยาวแพ็คเก็ตตัวแปร FSK
maxlen = ความยาวแพ็คเก็ตสูงสุดในไบต์
กลับ: สถานะ
กิจกรรม: sx1262.tx_done, sx1262.rx_done
ตัวกรองที่อยู่ FSK: SX1262.addr_filt_off, sx1262.addr_filt_node, sx1262.addr_filt_node_broad
FSK คำนำความยาวของเครื่องตรวจจับ: SX1262.preamble_detect_off, SX1262.preamble_detect_x -> x = 8, 16, 24, 32, 32
พจนานุกรมสถานะ: SX1262.status