From 7731cd7288873b019e4ec3d4cdb4f39c1e217b1b Mon Sep 17 00:00:00 2001 From: David Westgate Date: Fri, 11 Apr 2025 17:29:50 -0700 Subject: [PATCH] framework of TX functionality --- main.py | 10 +++++++--- transmit.py | 35 +++++++++++++++++------------------ 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/main.py b/main.py index 1a274bb..957af31 100644 --- a/main.py +++ b/main.py @@ -1,6 +1,7 @@ import spidev from util import print_gdo_state, sleep, get_addr, dump_regs, debug, GDO0_PIN, GDO2_PIN from receive import rx_data_rf +from transmit import transmit_packet from common import reset, setup_spi, setup_gpio, read_register, test_read_write_reg, init_cc_2500, write_reg, SRES, SNOP, MARCSTATE, VERSION @@ -11,8 +12,9 @@ def menu(): print("2: Write reg hex value by name") print("3: Dump registers") print("4: rx_data_rf") - print("5: Run Read+Write test") - print("6: Print GDO state") + print("5: transmit_packet") + print("6: Run Read+Write test") + print("7: Print GDO state") print("0: Quit") @@ -52,9 +54,11 @@ if __name__ == "__main__": while(True): rx_data_rf(spi) elif cmd == 5: + transmit_packet(spi) + elif cmd == 6: res = test_read_write_reg(spi, True) print("Test result : "+str(res)) - elif cmd == 6: + elif cmd == 7: print_gdo_state(GDO0_PIN, GDO2_PIN) else: print("Invalid command") diff --git a/transmit.py b/transmit.py index 710f879..0b5f3fe 100644 --- a/transmit.py +++ b/transmit.py @@ -1,22 +1,21 @@ -from . import strobe, get_addr - -def burst_write(spi, addr, data): - """Write multiple bytes to FIFO or registers""" - BURST = get_addr("BURST") - spi.xfer2([addr | BURST] + data) +from common import strobe, write_burst +from util import get_addr -def send_packet(data): - # Flush TX FIFO - SFTX = get_addr("SFTX") - strobe(SFTX) +SIDLE = get_addr('SIDLE') +SFTX = get_addr('SFTX') +STX = get_addr('STX') +WRITE_BURST = get_addr("WRITE_BURST") +TXFIFO_BURST = 0x7F - # Load data to TX FIFO (fixed length) - TXFIFO = get_addr("TXFIFO") - burst_write(TXFIFO, data) # 0x3F = TX FIFO +def transmit_packet(spi): + strobe(spi, SIDLE) + strobe(spi, SFTX) + data = [0] * 5 + data[0] = 5 + data[1] = 1 + data[2] = 2 + data[3] = 3 + data[4] = 4 + write_burst(spi, TXFIFO_BURST, data) - # Strobe STX to transmit - STX = get_addr("STX") - strobe(STX) # STX - - print(f"Sent: {data}")