无线模块专业网站!安阳市新世纪电子研究所专业研发生产小体积低功耗 无线模块 无线收发模块 2.4G无线模块 无线遥控器 无线接收器 无线控制器
全国服务热线:0372-5968708

产品目录
市场部联系电话:
0372-5968708
传真:0372-5968993
邮箱:ay5968708@163.com
中国﹒河南省安阳市文峰大道与朝阳路口国贸大厦A座9F
欢迎咨询市场部在线客服!
技术支持
您当前位置:首页 > 技术支持
JF24D技术咨询问答01
发布:xsj  发布日期:2011-03-10 15:04:44  浏览:1992次


1  客户问:

    我们是汕头做玩具的,现在在用你们的jf24d做单发单收的遥控小车两套不同的发射和接收如何设置才能不受干扰,我需要15频道
  我是这样设置的,2MS发送一次然后换一个频道 32MS接收一次,然后换一个频道
  现在接收50米没有问题。但多套产品在一起发送接收时,如何回避干扰?我要一个发射只对一个接收因为我们配套的产品是出口的,生产1万产品至少要15个频道以上
 答复 可以修改频道选择寄存器{5,0x17}接收通道0的地址每个可以设置不同的地址来区分每套产品。不会互相干扰。否则2.4G产品就没有优势了

 

2  客户  
   REG4[0]=0REG4[1]=0REG4[3]=0REG4[23]=0 **************/
   for(j=0;j<4;j++)
    {
    WriteArr[j]=(RegArrFSKAnalog[4]>>(8*(j) ) )&0xff;
    }
   在这个程序中有点不明白
  WriteArr[0]=0X0B ;
   WriteArr[1]=0X86 ;
   WriteArr[2]=0X9E ;
   WriteArr[3]=0XC1 ;

  答复:  这个是初始化写寄存器的函数,不用管的 
  

  客户我看到贵格书上的不一样
  REG4 = 0x4199000B2Mbps数据速率请设置为0x4199100B
  //寄存器组1 0-13号寄存器的初始值
   code UINT32 RegArrFSKAnalog[]={
  0xE2014B40,
  0x00004B40,
  0x028CFCD0,
  0x41390099,
  0x0B869EC1,
  不是0x41390099,这个才对吗
  答复: 新版的JF24D速率只有1M,不是2M
  

  客户还有一个问题请教一下,如何检验初始化正确,因为我没用51,我们用了应广的
  单片机,是不是看电流就行了
  答复:  电流是一方面,也可以用仿真的方法读一下寄存器 

  

  客户怎么读? 全部寄存器吗 
  答复:  不用
  

  客户看那几个
  答复:  SPI_Write_Reg(RF_CH, 0x40)
   Value=SPI_Read_Reg(RF_CH)
   然后看Value的值和0x40相等不,如果相等可以断定SPI通讯成功。
   看电流更直接,初始化成功后JF24D电流一般在14-21mA之间,加上STC单片机正常工作的电流4-8mA,整模块的电流在29mA左右,而初始化没有成功的JF24D模块电流会很大,大约在40-50mA之间。所以通过看电流就能够初步判断出来单片机初始化是否完成
  

  客户问:如果有一些寄存器没初始化成功,JF24D就不能通信?
  答复:是的Value的值和0x40相等,说明寄存器设置成功, 而且能读出数据spi就正常工作了。  
 

  客户问:  有没有一个寄存器,可以说明初始化成功的

  答复:RF_CH这个寄存器 只要读写寄存器成功就说明初始化没有问题可以是任意一个寄存器你可以初始化过之后直接读寄存器,看是否与写入值一样

客户问:是这样,我手头上面有几个你们公司的新板jf24d模块在做测试,但我的驱动程序始终驱动不起来,请问您能帮我看看程序哪部分不对吗?硬件上面连接没有问题,我用的是stm32,程序参考你们公司网站上面的例子。初始化不成功。我写,然后读RF_CH寄存器,读到的值始终为0x02,不论写什么值都是这个值。

回复:

  程序上没有什么问题,注意CE引脚,在初始化的时候应该为高,不同的单片机在初始化的时候可能会不一样,CE在初始化的时候必须置为高电平。否则会导致初始化失败。

  再检查一下时序,确认一下IO口的设置,程序上SPI时序是否执行了。

  初始化不成功问题:

   51单片机上电之后SPI四根线还有CE初始状态是高电平,stm32单片机上电后需要确认。判断初始化是否成功,频率寄存器 写进去 再读出来 看一样不一样。频率寄存器可以读写修改,初始化一般都是成功的。初始化不成功,频率寄存器无法改写。先初始化才能对寄存器验证。JF24DC语言程序可以移植到其他单片机,8位单片机和32位单片机都可以用。

 

4  客户说:  你们初始化里面有个语句好像是死循环。 

   回复: 不会是死循环的。测试过多次,没有问题的。

   客户说:  for(i=20;i>=0;i--) 这个不就是吗?

   回复:  for(i=20;i>=0;i-- 
    )        SPI_Write_Reg((WRITE_REG|RegArrFSK[i][0]),RegArrFSK[i][1]); //初始化
   前面定义的寄存器  你要看完 ,这是循环20次,这不是死循环。

   客户说:  我要改成for(i=20;i>0;i--)   

   回复:  不可以。

   客户说:  不然就i=0后再减又从255开始 

   回复:  少了一次循环   初始化不成功的。 

   客户说:  难道问题出在这里?我如果要改成for(i=0;i<20;i++) 这样可以不?   

   回复:  不可以的。

 

5  客户说:  我用J24D-B,实现这样一个功能,一个单独发射,一个接收。发射端发射不同数据,
   接收端做出相应的动作。就像无线遥控器。 

   回复:  可以的,我们网站有单发单收的例程,你可以下载。

 

 请问3.3VJF24D 待机电流为多少?

   回复: 410uA ,你可以加休眠,休眠电流只有3.5uA。 定时唤醒就可以了。

   客户说:  power DOWN不就休眠了吗? 

   回复:  不是的,休眠和待机是不一样的。

   客户说:  休眠如何做? 

   回复: 掉电, 定时唤醒。记得先退出接受或发射模式。

 

客户说:2.4G JF24C模块 我想让模块收到数据后清除数据区,怎么改,改那个寄存器?
  现在情况是:我收发都正常,我想判断发送是否断开。这时接收没法区分。 

  回复:  你用的是24c 

  客户说:  是 

  回复:  你要退出发射模式。 

  客户说:  能说的具体些吗?怎么退出?

  回复: enter_idle(); //进入空闲模式 write_spi_reg(REG82_RX); //FIFO 
  这就是退出的方法和清除fifo

 

 8  客户说:  现在遇到个问题,我要传输的数据长度是21个字节。发送的和接收的数据不一样。 

  01 10 10 00 3c 00 00 00 00 00 00 00 00 00 00 AA AA 00 34      
 01 10 10 00 3C 00 00 00 01 00 01 00 01 00 00 00 00 00 01    

  上面的一组是发送的,下面的一组是接收的 

   前几个字节是正确的,但是后面几个就不对了 

  回复:  我看下你的程序。 具体的程序。

  客户说:  我就是按照您那边提供的程序。 我之前一直是收发的数据不超过10个字节

  但是现在字节多了就出错了,和寄存器设置有关系吗? 

  回复: 不超过32个字节是没有关系的。 

  客户说:  //寄存器组0初始值   u8 RegArrFSK[][2]={   {0,0x0F}, //配置寄存器   
  {1,0x3f}, //0x3f   {2,0x3F}, //使能接收地址   {3,0x03}, //信道的数据长度   {4,0xff},   {5,0x17}, //频道选择寄存器   {6,0x17},   {7,0x07}, //状态寄存器 

   回复: 你修改寄存器没有?

  客户说:  #define MAX_PACKET_LEN 16 

   修改这个   #define MAX_PACKET_LEN 100  

   我把上面这个改成100了 

 回复: 100 改成255  

 



安阳市新世纪电子研究所有限公司 电话:0372-5968708  豫ICP备05021267号  豫公安网备 41050202000031号