123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- #include "myRadio_gpio.h"
- #include "radio.h"
- #include "sx126x.h"
- #include "sx126x-board.h"
- void HAL_Delay_nMS(uint32_t time_ms)
- {
- delay1ms(time_ms);
- }
- void SX126xReset( void )
- {
- HAL_Delay_nMS( 10 );
- RF_SX126x_RST_L();
- HAL_Delay_nMS( 20 );
- RF_SX126x_RST_H();
- HAL_Delay_nMS( 10 );
- }
- void SX126xWaitOnBusy( void )
- {
- while(READ_RF_SX126x_BUSY());
- }
- void SX126xWakeup( void )
- {
- BOARD_SPI_NSS_L();
-
- SpiReadWrite(RADIO_GET_STATUS);
- SpiReadWrite(0);
-
- BOARD_SPI_NSS_H();
-
- SX126xWaitOnBusy( );
- }
- void SX126xWriteCommand( RadioCommands_t command, uint8_t *buffer, uint16_t size )
- {
- SX126xCheckDeviceReady( );
- BOARD_SPI_NSS_L();
- SpiReadWrite(command );
- SpiWriteData(buffer, size);
- BOARD_SPI_NSS_H();
-
- if( command != RADIO_SET_SLEEP )
- {
- SX126xWaitOnBusy( );
- }
- }
- void SX126xReadCommand( RadioCommands_t command, uint8_t *buffer, uint16_t size )
- {
- SX126xCheckDeviceReady( );
- BOARD_SPI_NSS_L();
- SpiReadWrite(command );
- SpiReadWrite(0x00);
- SpiReadData(buffer, size);
- BOARD_SPI_NSS_H();
- SX126xWaitOnBusy( );
- }
- void SX126xWriteRegisters( uint16_t address, uint8_t *buffer, uint16_t size )
- {
- SX126xCheckDeviceReady( );
- BOARD_SPI_NSS_L();
- SpiReadWrite(RADIO_WRITE_REGISTER);
- SpiReadWrite(( address & 0xFF00 ) >> 8);
- SpiReadWrite(address & 0x00FF);
- SpiWriteData(buffer, size);
- BOARD_SPI_NSS_H();
- SX126xWaitOnBusy( );
- }
- void SX126xWriteRegister( uint16_t address, uint8_t value )
- {
- SX126xWriteRegisters( address, &value, 1 );
- }
- void SX126xReadRegisters( uint16_t address, uint8_t *buffer, uint16_t size )
- {
- SX126xCheckDeviceReady( );
- BOARD_SPI_NSS_L();
- SpiReadWrite(RADIO_READ_REGISTER);
- SpiReadWrite(( address & 0xFF00 ) >> 8);
- SpiReadWrite(address & 0x00FF);
- SpiReadWrite(0);
- SpiReadData(buffer, size);
- BOARD_SPI_NSS_H();
- SX126xWaitOnBusy( );
- }
- uint8_t SX126xReadRegister( uint16_t address )
- {
- uint8_t data;
- SX126xReadRegisters( address, &data, 1 );
- return data;
- }
- void SX126xWriteBuffer( uint8_t offset, uint8_t *buffer, uint8_t size )
- {
- SX126xCheckDeviceReady( );
- BOARD_SPI_NSS_L();
- SpiReadWrite(RADIO_WRITE_BUFFER);
- SpiReadWrite(offset);
- SpiWriteData(buffer, size);
- BOARD_SPI_NSS_H();
- SX126xWaitOnBusy( );
- }
- void SX126xReadBuffer( uint8_t offset, uint8_t *buffer, uint8_t size )
- {
- SX126xCheckDeviceReady( );
- BOARD_SPI_NSS_L();
- SpiReadWrite(RADIO_READ_BUFFER);
- SpiReadWrite(offset);
- SpiReadWrite(0);
- SpiReadData(buffer, size);
- BOARD_SPI_NSS_H();
-
- SX126xWaitOnBusy( );
- }
- void SX126xSetRfTxPower( int8_t power )
- {
- SX126xSetTxParams( power, RADIO_RAMP_200_US );
- }
- uint8_t SX126xGetPaSelect( uint32_t channel )
- {
-
- return SX1262;
- }
- void SX126xAntSwOn( void )
- {
-
- }
- void SX126xAntSwOff( void )
- {
-
- }
- bool SX126xCheckRfFrequency( uint32_t frequency )
- {
-
- return true;
- }
|