SI4463 RF transceiver help

Go To Last Post
7 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hello all,
I am attempting to develop an FSK transceiver for the SI4463 and an ATmega328p in C. An OOK transceiver would certainly be a start. 
As popular as it is, I cannot seem to find much, if any documentation on the device. 
I can't figure out how to initialize the registers, switch the transceiver between Rx/Tx, or even write to the FIFO buffer.
The datasheet is no help. I found an API but that isn't much help. 
Any info is much appreciated. 
73, 
N2EEE

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Do you have the manual for it? I simply googled SI4463 and got Arduino projects, projects about APRS, programming the  SI4463, a reference design from SiLabs

 

https://www.silabs.com/documents...

 

Certainly, the Arduino code should show you exactly how to program it. Here is the programming guide from SiLabs

 

https://www.silabs.com/documents...

 

And a fair amount of other stuff. Puzzled at your comment about lack of documentation!

 

Jim

Jim Wagner Oregon Research Electronics, Consulting Div. Tangent, OR, USA http://www.orelectronics.net

Last Edited: Wed. Jan 30, 2019 - 03:27 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

ka7ehk wrote:

 

And a fair amount of other stuff. Puzzled at your comment about lack of documentation!

 

QRZ shows him being a young buck. He will get it done, maybe not as quick as he would like though

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Just scanned the Programming Guide. It shows as much detail as I have seen for any transceiver chip, such as the LoRa devices. Pretty much everything you need is there.

 

Jim

 

P.S. Did not analyze it in detail but there are probably 3 or 4 registers you need to change to make it transmit, not just one bit somewhere.

Jim Wagner Oregon Research Electronics, Consulting Div. Tangent, OR, USA http://www.orelectronics.net

Last Edited: Wed. Jan 30, 2019 - 04:14 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

ka7ehk wrote:

 

Certainly, the Arduino code should show you exactly how to program it. Here is the programming guide from SiLabs

 

https://www.silabs.com/documents...

 

All the programming guides (except one) explain how to use it with the EZradio dev kit, which I don't have access to unfortunately.
I'm looking for either a guide or low-level documentation, like there is for the CC1101. We're pretty dead-set on using this transceiver, and then porting it to the SI4468 later. From what I can tell, next to nothing needs to be changed to convert it. I was hoping to build it from the ground up.

I did find one github repository. I tried to use this, but I can't seem to get the header files to work correctly. I've verified that the compiler is reading the header file needed, but strange enough it still says there's undefined references. From what I can tell, no other files are needed. I do believe I'm missing something...
​​

Grannus wrote:

 

QRZ shows him being a young buck. He will get it done, maybe not as quick as he would like though

Indeed. Been using AVR's for about a third of my life, which isn't that long. I just want to get this transceiver working correctly within a few months. 

ka7ehk wrote:

Did not analyze it in detail but there are probably 3 or 4 registers you need to change to make it transmit, not just one bit somewhere.


From what I understand, the API uses the EZradio kit, and all the relevant commands use that. It does provide a little insight into its operation, though. Currently I just have one of those cheap SI4463 transceiver from somewhere in china, and an SI4467 I borrowed from a friend's project. I'll look into buying the EZradio kit.

Thanks all, 73

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The github repo looks like your best choice. Have you tried building it for Arduino?
The code is C and looks like it will work outside Arduino. Maybe show us the errors you’re getting?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Kartman wrote:
The github repo looks like your best choice. Have you tried building it for Arduino? The code is C and looks like it will work outside Arduino. Maybe show us the errors you’re getting?

The repo is for both AVR's and Arduino.

As for the errors, oops, quite silly mistake. Forgot to include the Si446x.c file in my makefile. I programmed the controller with the supplied test programs and all of them work. Sweet!
I believe the modulation type is 2fsk. Can anyone confirm this? 

Looking at the config, it uses channels. By default, channel 0 is set at 433 MHz with each incrementing 250 kHz. This means there is a frequency range of 433 - 496.75 for the ISM band and quite a bit beyond. I looked at where this goes in the code, and Rx/Tx goes to a function called "doAPI". From here, it is sent bit by bit to "spi_transfer_nr". I can't seem to find a lookup table or similar to set the frequency. On the cc1101, it is calculated and sent over spi during initialization. Does anyone know how to set the frequency?

Thanks and 73