久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3187|回復: 3
收起左側

STM8單片機+SI4432收發失敗問題求助,寄存器配置無誤

[復制鏈接]
ID:400430 發表于 2018-10-29 17:20 | 顯示全部樓層 |閱讀模式
如題求助,參考了很多源代碼自己寫了一點

基本的讀寫寄存器已經做到了,測試無錯誤,

發射方面用的是STM8S單片機+SI4432,SPI通信,PH+FIFO+GFSK
發射頻率: 435.355Mhz
晶振設置: 12ppm
晶體速率: 30Mhz
頻率偏移: 無
頻率偏差: 10khz
AFC: 開啟

數據傳輸率: 1.2kbps

接收方面用的是WD21 無線模塊,使用軟件設置接收頻率
接收頻率: 435.355Mhz
模塊波特率: 9600bps
空中波特率: 9600bps


雖然讀寫寄存器成功(用Silicons Labs提供的xls文件計算value),但是發射信號后無線模塊卻什么也接收不到。MCU方面有試過其他程序,可以確定MCU初始化沒問題。

單片機源碼:
  1. void SI4432_INIT(void)

  2. {                                



  3.         SPI_Read(0x03);        

  4.         SPI_Read(0x04);

  5.         

  6.         lcd_write_text("start", 10,0,0);

  7.         

  8.         phyWrite(0x07, 0x80);   //reset register values to default



  9.         SPI_Read(0x03);        

  10.         SPI_Read(0x04);



  11.         

  12.         SPI_Read(0x03);        

  13.         SPI_Read(0x04);

  14.         

  15.         //////////////////435.355MHZ 設定///////////////////////////////////////////////////////////////////////

  16.         phyWrite(0x75, 0x53);  // set frequency band

  17.         phyWrite(0x76, 0x85);  // set nominal carrier frequency 1

  18.         phyWrite(0x77, 0xe0);  // set nominal carrier  frequency 0

  19.         //////////////////////////////////////////////////////////////////////////////////////////////////////

  20.                

  21.         ///////////////////1.2kbps 設定//////////////////////////////////////////////////////////////////////

  22.         phyWrite(0x6e, 0x0a);     //tx data rate

  23.         phyWrite(0x6f, 0x3d);     // tx data rate

  24.         ///////////////////////////////////////////////////////////////////////////////////////////////////////

  25.         

  26.         

  27.         //////////////////////////////頻率偏差/////////////////////////////////////////////////////////////////////

  28.         phyWrite(0x70, 0x0C); // manchester coding disabled

  29.         phyWrite(0x71, 0x23); // FIFO mode, GFSK modulated                     

  30.         phyWrite(0x72, 0x10);  // tx deviation 10KHz  

  31.         ///////////////////////////////////////////////////////////////////////////////////////////////////////////

  32.         

  33.         /////////////////////////////頻率偏移////////////////////////////////////////////////////////////////////

  34.         phyWrite(0x73, 0x00); //no frequency offset

  35.         phyWrite(0x74, 0x00); // no frequency offset

  36.         ///////////////////////////////////////////////////////////////////////////////////////////////////////////

  37.         

  38.         

  39.         phyWrite(0x07, 0x01);   // 進入ready模式



  40.         

  41.         phyWrite(0x09, 0x7f);    // 晶振精度 12ppm



  42.         phyWrite(0x0b, 0xea);    // SI4432 GPIO 0 (無視不使用)

  43.         phyWrite(0x0c, 0xea);    // SI4432 GPIO 1 (無視不使用)        

  44.         phyWrite(0x0d, 0xf4);    // SI4432 GPIO 2 (無視不使用)

  45.         

  46.   



  47.         phyWrite(0x6d, 0x19);  // tx power 18dbm                        

  48.      





  49.               

  50.         phyWrite(0x30, 0xac);   // 使用PH+FIFO mode,CRC使能

  51.                                          

  52.         phyWrite(0x32, 0x00);  // byte0, header control

  53.         phyWrite(0x33, 0x02);//  使用同步字3,2



  54.                

  55.         phyWrite(0x34, 0x0a);  // 前導碼長度 5個字節

  56.         phyWrite(0x35, 0x52);  // 前導碼偵測控制1(不太清楚怎么設置)

  57.                                 

  58.         phyWrite(0x36, 0x2d);  //同步字3 2D

  59.         phyWrite(0x37, 0xD4);  //同步字2 D4

  60.         phyWrite(0x38, 0x00);  //同步字1

  61.         phyWrite(0x39, 0x00);  //同步字0



  62.         phyWrite(0x3a, 0x00);   // transmit header 3

  63.         phyWrite(0x3b, 0x00);  // transmit header 2

  64.         phyWrite(0x3c, 0x00);   // transmit header 1

  65.         phyWrite(0x3d, 0x00);   // transmit header 0



  66.         phyWrite(0x3f, 0x00);   //check header 3

  67.         phyWrite(0x40, 0x00);   //check header 2

  68.         phyWrite(0x41, 0x00);   //check header 1

  69.         phyWrite(0x42, 0x00);  //check header 0





  70.         phyWrite(0x43, 0xff);  //header value 3

  71.         phyWrite(0x44, 0xff);  //header value 2

  72.         phyWrite(0x45, 0xff);  //header value 1

  73.         phyWrite(0x46, 0xff);  //header value 0

  74.         

  75.         /*        用途不明?               

  76.         phyWrite(0x1c, 0x3D);    //IF filter bandwidth

  77.         phyWrite(0x1d, 0x40);   //AFC_LOOP_GEARSHIFT_OVERRIDE

  78.         phyWrite(0x1e, 0x0a);    //AFC Timing Control

  79.         phyWrite(0x1f, 0x03);    //Clock recovery gearshift override

  80.         phyWrite(0x2a, 0x20);    //write 0x20 to the AFC Limiter register

  81.         phyWrite(0x20, 0xA1);

  82.         phyWrite(0x21, 0x20);

  83.         phyWrite(0x22, 0x4e);

  84.         phyWrite(0x23, 0xa5);

  85.         phyWrite(0x24, 0x00);

  86.         phyWrite(0x25, 0x0b);

  87.         delay(5);

  88.         */

  89. }





  90. void txdata(void)

  91. {

  92.         unsigned char txdata[9];

  93.         

  94.         //unsigned char i;

  95.         //tx test data is use to test the sended out signal

  96.         lcd_write_text("start tx", 10,0,0);







  97.         for (y=0 ; y<8; y++)

  98.         {

  99.                 txdata[y] = 0x30 + y ;

  100.         }

  101.         //Flag.is_tx = 1

  102.         //delay(100);

  103.         

  104.         phyWrite(0x07, 0x01); // SI4432進入準備模式

  105.         delay(10);

  106.         

  107.         phyWrite(0x08, 0x01);  // 清空tx fifo

  108.         delay(10);

  109.         phyWrite(0x08, 0x00);  // 清空tx fifo

  110.         delay(10);

  111.         //phyWrite(0x08, 0x02);  // 使能自動切傳輸與切換

  112.         //delay(10);



  113.         phyWrite(0x3e, 0x08);    // 送出8個字節 payload length, the number of bytes you are going to send



  114.         for (x = 0; x<8; x++)

  115.         {

  116.                 phyWrite(0x7f, txdata[x]);         // put the data intended to send out into loading area, fifo loading area

  117.                 delay(10);

  118.                

  119.         }

  120.         

  121.         phyWrite(0x05, 0x04);        // 發出packet sent interrupt

  122.         phyWrite(0x06, 0x00);// disable interrupt

  123.         

  124.         phyWrite(0x07, 0x09);  // 打包tx fifo里的字節然后發出 pack tx data and send

  125.         delay(10);

  126.         

  127.         phyWrite(0x05, 0x03);        // signal valid packed sent

  128.         phyWrite(0x06, 0x00);// disable interrupt

  129.         

  130.         SPI_Read(0x03);                //重置interrupt

  131.         SPI_Read(0x04);   // 重置interrupt



  132.         //phyWrite(0x07, 0x05);         //SI4432轉接收模式

  133.         //delay(1);

  134.         



  135. }
復制代碼


希望大神可以指點出錯誤,感激不盡

回復

使用道具 舉報

ID:418101 發表于 2018-10-30 19:16 | 顯示全部樓層
發送和接收用的不是同一個方案模塊? 不同方案之間互聯互通可能會有問題,需要咨詢供應商,給予準確答復噢
回復

使用道具 舉報

ID:349617 發表于 2019-2-21 15:31 | 顯示全部樓層
驗證碼不對,沒有辦法接收的
回復

使用道具 舉報

ID:349617 發表于 2019-2-21 15:32 | 顯示全部樓層
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本欧美黄色片 | 久久一区二区精品 | 久久亚洲一区二区三 | av黄在线观看| 中文字幕免费 | 一区二区中文 | 国产97视频在线观看 | 亚洲国产成人精品久久久国产成人一区 | 色就干| 中文字幕一区二区三区精彩视频 | 亚洲精品国产成人 | 欧美在线观看一区二区 | 毛片视频网站 | 伊人超碰| 欧美日韩亚洲一区二区 | 亚洲一区二区在线视频 | 国产精品久久久久久久久免费樱桃 | 成人亚洲网 | 青春草91 | 国产免费一区二区 | 国产美女自拍视频 | 日韩免| 国产成人精品高清久久 | 伊人久久综合影院 | 一级毛片免费完整视频 | 成人欧美一区二区三区白人 | 97在线观视频免费观看 | 久久久久国产一区二区 | 亚洲香蕉在线视频 | 日韩不卡在线 | 欧美8一10sex性hd | 国产在线精品一区二区 | 精品福利一区二区三区 | 九九伦理片 | 中文字幕在线观看一区二区 | 国产二区精品视频 | 亚洲九九色 | 日韩精品一区二区在线 | 国产精品中文字幕在线 | 国产精品一区二区欧美 | 久久亚洲视频网 |