搜索
bottom↓
回复: 47

2.4GHz 开发 Step By Step

[复制链接]

出0入0汤圆

发表于 2008-2-26 13:12:05 | 显示全部楼层 |阅读模式
1.  准备好PCB,nRF24L01,晶振及外围元件

    原理图,PCB文件

1
点击此处下载ourdev_219983.zip(文件大小:55K)

出0入0汤圆

 楼主| 发表于 2008-2-26 13:13:31 | 显示全部楼层
2.  焊接
    由于元件比较小,焊接需要比较小心,不过只要仔细一些,手工焊接也可以很好

    这是焊好的模块

1

出0入0汤圆

 楼主| 发表于 2008-2-26 13:25:25 | 显示全部楼层
3.  软件编程

    由于nRF24L01内含链路层,因此数据打包,检错,自动重发等均由芯片完成,只需通过SPI口进行配置和通信即可,单片机编程很方便

    下面是C51源程序,采用I/O模拟SPI工作方式.

点击此处打开ourdev_219988.pdf(文件大小:71K)

出0入0汤圆

发表于 2008-2-26 13:46:59 | 显示全部楼层
不知道,gerber 文件怎么用?
要修改原理图怎么办?

出0入0汤圆

 楼主| 发表于 2008-2-26 13:51:31 | 显示全部楼层
gerber文件可以直接给制版厂使用
CAM350等都可以编辑gerber文件

出0入0汤圆

发表于 2008-2-26 13:53:35 | 显示全部楼层
谢谢

出0入0汤圆

发表于 2008-2-26 13:53:37 | 显示全部楼层
我是有用AVR来控制就好了,我正准备打2401的板,你的天线尺寸可以参考一下不,有PDF格式的没,我打不开你那种格式的。

出0入0汤圆

发表于 2008-2-26 14:20:44 | 显示全部楼层
ding!!!!!!!!!

出0入0汤圆

发表于 2008-2-26 14:25:09 | 显示全部楼层
准备用MSP430F2013+nRF24L01做无线数据采集或RFID有源射频卡,这份资料很有用。
一直不明白,nRF24L01的天线设计,PCB走线长度和宽度有什么样的要求?

出0入0汤圆

 楼主| 发表于 2008-2-26 14:39:11 | 显示全部楼层
To wzyllgx: 如果需要可以可以转一个PDF的,不过我认为那样会有误差。我建议你用CAM350或gerber view打开,量一下更好。

To ninjia:  天线设计特别是高频段,一般来说是配合仪器调出来的,不是算出来的。

出0入0汤圆

发表于 2008-2-26 15:57:56 | 显示全部楼层
大家可以去nordic的官方网站下载相关资料,比较齐全,包括pcb layout,ant design。单芯片的解决方案是很容易操作的,动手了就会发现其实很简单

出0入0汤圆

发表于 2008-2-26 16:34:14 | 显示全部楼层
QFN芯片手工焊的?有什么诀窍没有?

出0入0汤圆

发表于 2008-2-26 16:43:41 | 显示全部楼层
先在焊盘上一点锡,把芯片在焊盘上摆正然后用锡固定一边就好了,然后风枪伺候,保证好。

出0入0汤圆

 楼主| 发表于 2008-2-26 17:38:08 | 显示全部楼层
To wzyllgx: 已转PDF,请查收。
点击此处打开ourdev_220115.pdf(文件大小:17K)

出0入0汤圆

发表于 2008-2-26 18:00:52 | 显示全部楼层
这个通信距离有多远呢?

出0入0汤圆

 楼主| 发表于 2008-2-26 18:16:48 | 显示全部楼层
用这个PCB天线无遮挡时20-30米左右,用外接天线的话可以更远一些60-80米,视具体而定。

出0入0汤圆

发表于 2008-2-26 18:21:34 | 显示全部楼层
楼主是直接用官方GERBER文件加工的?

出0入0汤圆

 楼主| 发表于 2008-2-27 12:02:22 | 显示全部楼层
高频部分完全按照原厂的布局,这样可以直接使用原厂提供的外围元件参数,保证在没有仪器的条件下也可以取得好的效果。

出0入0汤圆

发表于 2008-2-27 13:32:04 | 显示全部楼层
我在做5.8G短距离(5-20m)无线通讯,选用什么芯片或方案合适呀

出0入0汤圆

发表于 2008-2-27 13:38:11 | 显示全部楼层
谢谢楼主啦

出0入0汤圆

发表于 2008-2-27 14:20:08 | 显示全部楼层

出0入0汤圆

 楼主| 发表于 2008-2-27 17:38:41 | 显示全部楼层
对应于源代码的单片机原理图
点击此处打开ourdev_220907.pdf(文件大小:25K)

出0入0汤圆

 楼主| 发表于 2008-2-28 10:42:50 | 显示全部楼层
呵呵,找到一个BASCOM-AVR的资料,大家参考吧.

AN #151 - Nordic nRF24L01 with BASCOM-AVR     

Nordic nRF24L01 with BASCOM-AVR
Written by Evert Dekker 2007.

Getting a Nordic nRF24L01 single chip 2.4GHZ radio transceiver up and running with Bascom-Avr.

In the code is enough help to understand it, but here is some additional help.

You must use a chip with hardware spi, the software spi isn’t working. We need the control over the SS (CSN) line our self to get the nRF24L01 working properly.

The nRF24L01 can work in different mode’s. In this sample we choose to use Enhanced shockburst mode so we can demonstrate the benefits in comparing with “regular” transmitters.

In this sample we send a 5 bytes pload with auto ACK, 3x re-transmit, 2Mbps, 0dbm output trough pipe0 on channel 40.

The code is not optimised for speed so it will not reach the 2Mbps. For example, the Spi bus of the nRF24L01 can run max 8Mbps and we are using now 2Mbps, that’s 7372800 / 4 (Clock divided Spi Clockrate). Further there are some delay’s that can be removed if your not using serial communication with a pc that’s very slow in comparison with the air speed. Please read Brennen his tutorials how to calculate maximum air speed.

点击此处下载ourdev_221235.zip(文件大小:845K)

出0入10汤圆

发表于 2008-2-28 13:29:32 | 显示全部楼层
踩个脚印,想打个板子玩玩, 不知道谁有现存卖的?

出0入0汤圆

发表于 2008-2-29 14:11:11 | 显示全部楼层
楼上的想买什么呢?

出0入0汤圆

 楼主| 发表于 2008-3-1 14:10:35 | 显示全部楼层
armok 你可以给你的IPOD 做个2.4GHz ipod remote,不会太费事,呵呵. .

出0入0汤圆

发表于 2008-3-3 13:15:54 | 显示全部楼层
我们和Nordic参加3月3号和4号国际集成电路研讨会暨展览会,展位2T26,深圳高交会馆,各位如果去展会的话欢迎过来看看:)

出0入0汤圆

发表于 2008-3-4 09:40:15 | 显示全部楼层
biao zhu

出0入0汤圆

发表于 2008-3-13 10:02:39 | 显示全部楼层
楼主能否上传 C51源程序 中的api.h 文件  谢谢!

出0入0汤圆

 楼主| 发表于 2008-3-13 12:45:15 | 显示全部楼层
api.h

// BYTE type definition
#ifndef _BYTE_DEF_
#define _BYTE_DEF_
typedef unsigned char BYTE;
#endif   /* _BYTE_DEF_ */

// Define interface to nRF24L01
/*#ifndef _SPI_PIN_DEF_
#define _SPI_PIN_DEF_
// Define SPI pins
/*sbit SCK  = P0^0; // Master Out, Slave In pin (output)
sbit MISO = P0^1; // Master In, Slave Out pin (input)
sbit MOSI = P0^2; // Serial Clock pin, (output)
sbit CSN  = P0^3; // Slave Select pin, (output to CSN, nRF24L01)

// Define CE & IRQ pins
sbit CE   = P0^4; // Chip Enable pin signal (output)
sbit IRQ  = P0^5; // Interrupt signal, from nRF24L01 (input)
#endif*/

// Macro to read SPI Interrupt flag
//#define WAIT_SPIF (!(SPI0CN & 0x80))  // SPI interrupt flag(礐 platform dependent)

// Declare SW/HW SPI modes
//#define SW_MODE   0x00
//#define HW_MODE   0x01

// Define nRF24L01 interrupt flag's
//#define MAX_RT  0x10  // Max #of TX retrans interrupt
//#define TX_DS   0x20  // TX data sent interrupt
//#define RX_DR   0x40  // RX data received

//#define SPI_CFG 0x40  // SPI Configuration register value
//#define SPI_CTR 0x01  // SPI Control register values
//#define SPI_CLK 0x00  // SYSCLK/2*(SPI_CLK+1) == > 12MHz / 2 = 6MHz
//#define SPI0E   0x02  // SPI Enable in XBR0 register

//****************************************************************//
// SPI(nRF24L01) commands
#define READ_REG        0x00  // Define read command to register
#define WRITE_REG       0x20  // Define write command to register
#define RD_RX_PLOAD     0x61  // Define RX payload register address
#define WR_TX_PLOAD     0xA0  // Define TX payload register address
#define FLUSH_TX        0xE1  // Define flush TX register command
#define FLUSH_RX        0xE2  // Define flush RX register command
#define REUSE_TX_PL     0xE3  // Define reuse TX payload register command
#define NOP             0xFF  // Define No Operation, might be used to read status register

//***************************************************//
// SPI(nRF24L01) registers(addresses)
#define CONFIG          0x00  // 'Config' register address
#define EN_AA           0x01  // 'Enable Auto Acknowledgment' register address
#define EN_RXADDR       0x02  // 'Enabled RX addresses' register address
#define SETUP_AW        0x03  // 'Setup address width' register address
#define SETUP_RETR      0x04  // 'Setup Auto. Retrans' register address
#define RF_CH           0x05  // 'RF channel' register address
#define RF_SETUP        0x06  // 'RF setup' register address
#define STATUS          0x07  // 'Status' register address
#define OBSERVE_TX      0x08  // 'Observe TX' register address
#define CD              0x09  // 'Carrier Detect' register address
#define RX_ADDR_P0      0x0A  // 'RX address pipe0' register address
#define RX_ADDR_P1      0x0B  // 'RX address pipe1' register address
#define RX_ADDR_P2      0x0C  // 'RX address pipe2' register address
#define RX_ADDR_P3      0x0D  // 'RX address pipe3' register address
#define RX_ADDR_P4      0x0E  // 'RX address pipe4' register address
#define RX_ADDR_P5      0x0F  // 'RX address pipe5' register address
#define TX_ADDR         0x10  // 'TX address' register address
#define RX_PW_P0        0x11  // 'RX payload width, pipe0' register address
#define RX_PW_P1        0x12  // 'RX payload width, pipe1' register address
#define RX_PW_P2        0x13  // 'RX payload width, pipe2' register address
#define RX_PW_P3        0x14  // 'RX payload width, pipe3' register address
#define RX_PW_P4        0x15  // 'RX payload width, pipe4' register address
#define RX_PW_P5        0x16  // 'RX payload width, pipe5' register address
#define FIFO_STATUS     0x17  // 'FIFO Status Register' register address

//***************************************************************//
//                   FUNCTION's PROTOTYPES  //
/****************************************************************
void SPI_Init(BYTE Mode);     // Init HW or SW SPI
BYTE SPI_RW(BYTE byte);                                // Single SPI read/write
BYTE SPI_Read(BYTE reg);                               // Read one byte from nRF24L01
BYTE SPI_RW_Reg(BYTE reg, BYTE byte);                  // Write one byte to register 'reg'
BYTE SPI_Write_Buf(BYTE reg, BYTE *pBuf, BYTE bytes);  // Writes multiply bytes to one register
BYTE SPI_Read_Buf(BYTE reg, BYTE *pBuf, BYTE bytes);   // Read multiply bytes from one register
//*****************************************************************/

出0入0汤圆

发表于 2008-3-13 13:33:24 | 显示全部楼层
留个记号,谢谢

出0入0汤圆

发表于 2008-3-15 12:37:50 | 显示全部楼层
楼主能不能传一份protel的文件,GEBER的文件真是太难转换了,非常感谢

出0入0汤圆

发表于 2008-3-16 17:01:35 | 显示全部楼层
同楼上,有protel就好了,谢谢

出0入0汤圆

发表于 2008-3-16 17:32:58 | 显示全部楼层
芯片的价格怎么样,这方面还没有接触

出0入0汤圆

发表于 2008-3-16 20:09:35 | 显示全部楼层
不错,同问

出0入0汤圆

发表于 2008-3-16 20:31:16 | 显示全部楼层
好东西!作个记号

出0入0汤圆

发表于 2009-9-24 09:57:35 | 显示全部楼层
好东西!作个记号

出0入0汤圆

发表于 2009-12-21 17:27:31 | 显示全部楼层
好东西

出0入0汤圆

发表于 2009-12-21 21:16:02 | 显示全部楼层
先mark一下

出0入0汤圆

发表于 2009-12-21 21:16:44 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-12-23 09:59:06 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-5-29 17:02:41 | 显示全部楼层
这个速度实测可以到多少?
误码率呢?

出0入0汤圆

发表于 2010-6-3 11:06:06 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-6-4 13:42:47 | 显示全部楼层
mark 先

出0入0汤圆

发表于 2010-6-4 14:08:05 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-6-4 23:36:16 | 显示全部楼层
最近用M8做控制芯片,有障碍物的话通信距离估计10M左右没试过无障碍物情况下的通信情况

出0入0汤圆

发表于 2010-6-4 23:39:03 | 显示全部楼层
mark,最近在做ZigBee
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-8 05:34

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表