搜索
bottom↓
回复: 29

Atmega8l+SPX3232+CC2420小板亮灯成功(附部分原理图)

[复制链接]

出0入58汤圆

发表于 2013-6-22 13:46:27 | 显示全部楼层 |阅读模式
本帖最后由 shawn_bu 于 2013-6-22 14:37 编辑

前几天收的Atmega8l+SPX3232+CC2420小板,今天捣鼓了一下。点亮了上面那个指示灯。


测量到的接口如下。JP1其实就是ISP下载口,非常方便 。左上方两个是RS232电平的串口,左下角第二个是VCC,经过ASM1117-3.3稳压后给系统供电。JP1里面那个VCC估计不能直接接下载线的VCC,不然如果是4.5v会烧坏CC2420(猜测,我没这么接过)。


刚开始下载一直不成功,提示flash地址00处校验错误。我把接在Atmega8 RESET引脚上的电路部分元件都拆掉就好了(如下图红框里)。哪位高手知道红框中的电路是干嘛的?貌似会影响ISP下载程序。
图中三个脚的元件上面印的是NR96,是啥东东?

拆掉后能正常下载


附上我手动画的部分电路图(高手勿笑)


PB0接的是指示灯,下面是简单的亮灯测试程序
//包含所需头文件
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>

/*------宏定义------*/
#define uchar        unsigned char
#define uint        unsigned int
#define BIT(x)        (1<<(x))
#define NOP()        asm("nop")
#define WDR()         asm("wdr")

//端口初始化
void port_init(void)
{
        PORTB = 0x01;
        DDRB  = 0x01;
        PORTC = 0x00;
        DDRC  = 0x00;
        PORTD = 0x00;
        DDRD  = 0x00;
}

void init_devices(void)
{
        cli(); //禁止所有中断
        MCUCR  = 0x00;
        MCUCSR = 0x80;//禁止JTAG
        GICR   = 0x00;
        port_init();
        sei();//开全局中断
}
//主函数
int main(void)
{
        init_devices();
        //在这继续添加你的代码
        while(1)
        {
         NOP();
        }
        return 0;
}

下面试试能否驱动CC2420,不知道哪个天线应该接那种?
最后贴两张正反面图(点击查看大图):



编辑原因,修正错误图片。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入58汤圆

 楼主| 发表于 2013-6-22 14:11:08 | 显示全部楼层
上传几个相关芯片的文档,


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入58汤圆

 楼主| 发表于 2013-6-22 14:24:34 | 显示全部楼层
修正,JP2左下角第一个也是VCC 5V+,不是NC。刚对了一下其他网友量的脚,发现这个问题。

出0入0汤圆

发表于 2013-6-22 14:24:41 | 显示全部楼层
开始我也怀疑过。。不过 我用笔记本就可以下载。。用我的台式机 win7 64 位 偶尔成功过。。。回去试试 全拆了看看

出0入58汤圆

 楼主| 发表于 2013-6-22 14:27:11 | 显示全部楼层
XUEPENGBIN 发表于 2013-6-22 14:24
开始我也怀疑过。。不过 我用笔记本就可以下载。。用我的台式机 win7 64 位 偶尔成功过。。。回去试试 全拆 ...

我一直下载不成功,读熔丝有时也报错。所以怀疑是这里问题。这部分电路你知道是做什么用途的么?

出0入58汤圆

 楼主| 发表于 2013-6-22 14:28:26 | 显示全部楼层
XUEPENGBIN 发表于 2013-6-22 14:24
开始我也怀疑过。。不过 我用笔记本就可以下载。。用我的台式机 win7 64 位 偶尔成功过。。。回去试试 全拆 ...

我用的正是win7 64位,笔记本。难道跟操作系统还有关系。奇怪。。。。

出0入0汤圆

发表于 2013-6-22 14:32:56 | 显示全部楼层
本帖最后由 XUEPENGBIN 于 2013-6-22 14:34 编辑
shawn_bu 发表于 2013-6-22 14:28
我用的正是win7 64位,笔记本。难道跟操作系统还有关系。奇怪。。。。


我换到我的WINXP 笔记本上 就可以。。不过后来 isp软件就打不开了 说是中病毒了 杀毒 再重装软件 ,,,郁闷死了。。串口也调试通了。。CC242O 了
WIN64  下  经常下到一半就出错。。用 ISP 1.4 的提示 USB 连接错误。。。不知道是不是 WIN 7 64 下边USB 不稳定。。。郁闷了

出0入58汤圆

 楼主| 发表于 2013-6-22 14:40:43 | 显示全部楼层
XUEPENGBIN 发表于 2013-6-22 14:32
我换到我的WINXP 笔记本上 就可以。。不过后来 isp软件就打不开了 说是中病毒了 杀毒 再重装软件 ,,, ...

不知道是不是win7的问题,我现在把RESET那部分电路拆了下载几次都OK。对了,你知道CC2420那边该接什么样的天线不?我还没捣鼓过这个。呵呵。

出0入0汤圆

发表于 2013-6-22 14:47:42 | 显示全部楼层
shawn_bu 发表于 2013-6-22 14:40
不知道是不是win7的问题,我现在把RESET那部分电路拆了下载几次都OK。对了,你知道CC2420那边该接什么样 ...

找个 cc1110 的类似的天线 或者用铜丝仿着做一个应该可以用的。。。就是效果没有专业的好罢了。。。

出0入12汤圆

发表于 2013-6-22 14:52:09 | 显示全部楼层
天线不用接,如果只是测试,你把2片板并排放在一起就可以了

出0入58汤圆

 楼主| 发表于 2013-6-22 15:15:24 | 显示全部楼层
skynet 发表于 2013-6-22 14:52
天线不用接,如果只是测试,你把2片板并排放在一起就可以了

多谢懒洋洋回复! ,,另外请教一下您知道下图红框中的电路是做什么的么?原理图如下。NR96这个元件看起来像是一个三极管,我也没用过,google也找不到是啥东东。这部分电路影响ISP下载。奇怪的很。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2013-6-22 16:23:29 | 显示全部楼层
不错不错嘛

出0入0汤圆

发表于 2013-6-22 16:28:06 | 显示全部楼层
shawn_bu 发表于 2013-6-22 15:15
多谢懒洋洋回复! ,,另外请教一下您知道下图红框中的电路是做什么的么?原理图如下。NR96这个 ...

如果我没说错,这个电路应该是个[复位]电路!

出10入113汤圆

发表于 2013-6-22 16:37:49 | 显示全部楼层
这个IC应该是电压监测IC

出0入0汤圆

发表于 2013-6-22 17:31:37 | 显示全部楼层
复位IC,我买了十片今天下午才到货呢。。。。。。。。。
不过现在还没空玩这个東西

出0入0汤圆

发表于 2013-6-22 21:21:16 | 显示全部楼层
我找到一个cc2420的库  不知道能不能用
https://github.com/contiki/conti ... r/core/dev/cc2420.c

出0入58汤圆

 楼主| 发表于 2013-6-22 21:27:44 | 显示全部楼层
flashria 发表于 2013-6-22 21:21
我找到一个cc2420的库  不知道能不能用
https://github.com/contiki/contiki-arduino-2.2/blob/master/core ...

回头试试,这边也有一个CC2420的帖子可以参考,http://www.amobbs.com/thread-1859284-1-1.html

出0入0汤圆

发表于 2013-6-22 21:57:45 | 显示全部楼层
shawn_bu 发表于 2013-6-22 15:15
多谢懒洋洋回复! ,,另外请教一下您知道下图红框中的电路是做什么的么?原理图如下。NR96这个 ...

应该是MAX809之类的复位电路。
这板子哪来的?

出0入58汤圆

 楼主| 发表于 2013-6-22 22:11:44 | 显示全部楼层
SNOOKER 发表于 2013-6-22 21:57
应该是MAX809之类的复位电路。
这板子哪来的?

多谢回复!小板是上次网友出的,http://www.amobbs.com/forum.php?mod=viewthread&tid=5539030

出0入0汤圆

发表于 2013-6-23 09:53:14 | 显示全部楼层
拆下芯片用ASP读出熔丝位

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入58汤圆

 楼主| 发表于 2013-6-23 10:14:49 | 显示全部楼层
鼎昇科技 发表于 2013-6-23 09:53
拆下芯片用ASP读出熔丝位

可以直接读取和写入熔丝的,为什么要拆下芯片呢?

出0入0汤圆

发表于 2013-6-23 11:35:15 | 显示全部楼层
shawn_bu 发表于 2013-6-23 10:14
可以直接读取和写入熔丝的,为什么要拆下芯片呢?

USBASP + 烧录座
之前为了测试下ISP功能有没有被禁止。

出0入0汤圆

发表于 2013-6-23 12:51:48 | 显示全部楼层
有没有人测试出来 拨特率。。。

出0入0汤圆

发表于 2013-6-25 09:52:29 | 显示全部楼层
哥们 cc2420  搞定了吗?

出0入58汤圆

 楼主| 发表于 2013-6-25 10:09:07 | 显示全部楼层
flashria 发表于 2013-6-25 09:52
哥们 cc2420  搞定了吗?

还没,这几天比较忙。没时间捣鼓。

出0入0汤圆

发表于 2013-6-26 15:46:57 | 显示全部楼层
shawn_bu 发表于 2013-6-25 10:09
还没,这几天比较忙。没时间捣鼓。


我的熔丝位读取   不过flash和eeprom全写满了  不知道为什么还不一样

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2013-6-27 21:56:35 | 显示全部楼层
Atmega8l+SPX3232+CC2420小板烧录arduino成功   我没有碰到你说的复位电路影响烧录的问题

http://www.amobbs.com/thread-5540173-1-1.html

出0入58汤圆

 楼主| 发表于 2013-6-28 11:37:46 | 显示全部楼层
flashria 发表于 2013-6-27 21:56
Atmega8l+SPX3232+CC2420小板烧录arduino成功   我没有碰到你说的复位电路影响烧录的问题

http://www.amob ...

复位影响的问题可能跟操作系统有关,我用的是64位的win7。XP下面估计没这个问题,上面一位网友也有win7 64位下面烧录的问题。奇怪ing,我下次换XP系统看看。

出0入58汤圆

 楼主| 发表于 2013-6-28 11:39:07 | 显示全部楼层
flashria 发表于 2013-6-27 21:56
Atmega8l+SPX3232+CC2420小板烧录arduino成功   我没有碰到你说的复位电路影响烧录的问题

http://www.amob ...

Atmega8用arduino的IDE有点蛋疼啊,貌似写不了多少程序。哈哈。。。

出0入0汤圆

发表于 2013-6-28 21:46:31 | 显示全部楼层
shawn_bu 发表于 2013-6-28 11:39
Atmega8用arduino的IDE有点蛋疼啊,貌似写不了多少程序。哈哈。。。
  1. SPI读操作代码

  2. uint8 SPI_Read(void)
  3. {
  4. uint8 i,rxdata;
  5. rxdata = 0x00;
  6. for (i = 0;i < 8;i++)
  7. {
  8. rxdata = rxdata<<1;
  9. SCLK_ON();
  10. if (MISO_IN)
  11. {
  12. rxdata |= 0x01;
  13. }
  14. else
  15. {
  16. rxdata &= ~0x01;
  17. }
  18. SCLK_OFF();
  19. }
  20. return rxdata;
  21. }
  22. SPI写操作代码

  23. void SPI_Write(uint8 txdata)
  24. {
  25. uint8 i;
  26. for (i = 0;i < 8;i++)
  27. {
  28. if (txdata&0x80)
  29. {
  30. MOSI_ON();
  31. }
  32. else
  33. {
  34. MOSI_OFF();
  35. }
  36. SCLK_ON();
  37. txdata = txdata<<1;
  38. SCLK_OFF();
  39. }
  40. }
  41. CC2420配置寄存器读操作

  42. uint16 CC2420_ReadReg(uint8 addr)
  43. {
  44. uint16 value;
  45. CSN_OFF();
  46. SPI_Write(addr|REG_READ);
  47. value = SPI_Word_Read();
  48. CSN_ON();
  49. return value;
  50. }
  51. CC2420配置寄存器写操作

  52. void CC2420_WriteReg(uint8 addr, uint16 value)
  53. {
  54. CSN_OFF();
  55. SPI_Write(addr|REG_WRITE);
  56. SPI_Word_Write(value);
  57. CSN_ON();
  58. }
  59. CC2420 RAM读操作

  60. uint8 CC2420_RAM_Read(uint8 addr,uint8 block)
  61. {
  62. uint8 value;
  63. CSN_OFF();
  64. SPI_Write(addr|RAM);
  65. SPI_Write((block<<6)|RAM_READ);
  66. value = SPI_Read();
  67. CSN_ON();
  68. return value;
  69. }
  70. CC2420 RAM写操作

  71. void CC2420_RAM_Write(uint8 addr,uint8 block, uint8 value)
  72. {
  73. CSN_OFF();
  74. SPI_Write(addr|RAM);
  75. SPI_Write((block<<6)|RAM_WRITE);
  76. SPI_Write(value);
  77. CSN_ON();
  78. }
  79. CC2420初始化

  80. void CC2420_Init(void)
  81. {
  82. RESET_OFF();
  83. delay_ms(10);
  84. RESET_ON();
  85. delay_ms(10);
  86. CC2420_Command(CMD_SXOSCON);
  87. delay_ms(10);
  88. CC2420_PSDU[ 1 ] =
  89. (PAN_ID_COMPRESSION<<6)|(ACKNOWLEDGMENT_REQUEST<<5)|
  90. (FRAME_PENDING<<4)|(SECURITY_ENABLE<<3)|(FRAME_TYPE_DATA<<0);
  91. CC2420_PSDU[ 2 ] =
  92. (SOURCE_ADDRESSING_MODE<<6)|(FRAME_VERSION<<4)|
  93. (DEST_ADDRESSING_MODE<<2);
  94. CC2420_PSDU[ 3 ] = SEQUENCE_NUMBER;
  95. CC2420_PSDU[ 4 ] = CC2420_Destination_PANID[0];
  96. CC2420_PSDU[ 5 ] = CC2420_Destination_PANID[1];
  97. CC2420_PSDU[ 6 ] = CC2420_Destination_IEEEAddr[0];
  98. CC2420_PSDU[ 7 ] = CC2420_Destination_IEEEAddr[1];
  99. CC2420_PSDU[ 8 ] = CC2420_Destination_IEEEAddr[2];
  100. CC2420_PSDU[ 9 ] = CC2420_Destination_IEEEAddr[3];
  101. CC2420_PSDU[10] = CC2420_Destination_IEEEAddr[4];
  102. CC2420_PSDU[11] = CC2420_Destination_IEEEAddr[5];
  103. CC2420_PSDU[12] = CC2420_Destination_IEEEAddr[6];
  104. CC2420_PSDU[13] = CC2420_Destination_IEEEAddr[7];
  105. CC2420_PSDU[14] = CC2420_Source_PANID[0];
  106. CC2420_PSDU[15] = CC2420_Source_PANID[1];
  107. CC2420_RAM_Write(RAM_PANID, 2, CC2420_Source_PANID[0]);
  108. CC2420_RAM_Write(RAM_PANID+1, 2, CC2420_Source_PANID[1]);
  109. CC2420_PSDU[16] = CC2420_Source_IEEEAddr[0];
  110. CC2420_PSDU[17] = CC2420_Source_IEEEAddr[1];
  111. CC2420_PSDU[18] = CC2420_Source_IEEEAddr[2];
  112. CC2420_PSDU[19] = CC2420_Source_IEEEAddr[3];
  113. CC2420_PSDU[20 ] = CC2420_Source_IEEEAddr[4];
  114. CC2420_PSDU[21] = CC2420_Source_IEEEAddr[5];
  115. CC2420_PSDU[22] = CC2420_Source_IEEEAddr[6];
  116. CC2420_PSDU[23] = CC2420_Source_IEEEAddr[7];
  117. CC2420_RAM_Write(RAM_IEEEADR, 2, CC2420_Source_IEEEAddr[0]);
  118. CC2420_RAM_Write(RAM_IEEEADR+1, 2, CC2420_Source_IEEEAddr[1]);
  119. CC2420_RAM_Write(RAM_IEEEADR+2, 2, CC2420_Source_IEEEAddr[2]);
  120. CC2420_RAM_Write(RAM_IEEEADR+3, 2, CC2420_Source_IEEEAddr[3]);
  121. CC2420_RAM_Write(RAM_IEEEADR+4, 2, CC2420_Source_IEEEAddr[4]);
  122. CC2420_RAM_Write(RAM_IEEEADR+5, 2, CC2420_Source_IEEEAddr[5]);
  123. CC2420_RAM_Write(RAM_IEEEADR+6, 2, CC2420_Source_IEEEAddr[6]);
  124. CC2420_RAM_Write(RAM_IEEEADR+7, 2, CC2420_Source_IEEEAddr[7]);
  125. CC2420_WriteReg(REG_MDMCTRL0, CCA_HYST|CCA_MODE|PREAMBLE_LENGTH|AUTOCRC|ADR_DECODE);
  126. CC2420_WriteReg(REG_SYNCWORD,SYNCWORD);
  127. CC2420_WriteReg(REG_SECCTRL0,0);
  128. CSN_OFF();
  129. SPI_Write(REG_RXFIFO|REG_READ);
  130. SPI_Read();
  131. CSN_ON();
  132. CC2420_Command(CMD_SFLUSHRX);
  133. CC2420_Command(CMD_SFLUSHTX);
  134. delay_ms(10);
  135. }
  136. CC2420 FIFO发送流程

  137. FIFO写数据操作

  138. void CC2420_WriteTXFIFO(void)
  139. {
  140. uint8 i;
  141. CC2420_Command(CMD_SFLUSHTX);
  142. CSN_OFF();
  143. SPI_Write(REG_TXFIFO|REG_WRITE);
  144. SPI_Write(CC2420_PSDU[0]);
  145. for(i=0;i
  146. {
  147. SPI_Write(CC2420_PSDU[1+i]);
  148. }
  149. CSN_ON();
  150. }
  151. FIFO数据发送操作

  152. void CC2420_TxPacket(void)
  153. {
  154. CC2420_Command(CMD_SRFOFF);
  155. CC2420_Command(CMD_STXON);
  156. while(!SFD_IN);
  157. while(SFD_IN);
  158. }
  159. CC2420 FIFO接收流程

  160. 接收模式设置

  161. void CC2420_SetRxMode(void)
  162. {
  163. CC2420_Command(CMD_SRFOFF);
  164. CC2420_Command(CMD_SRXON);
  165. }
  166. FIFO接收数据

  167. uint8 CC2420_RxPacket(void)
  168. {
  169. if((!SFD_IN)&&(FIFO_IN))
  170. {
  171. return TRUE;
  172. }
  173. return FALSE;
  174. }
  175. 收到数据后读取FIFO数据

  176. void CC2420_ReadRXFIFO(void)
  177. {
  178. uint8 i;
  179. CSN_OFF();
  180. SPI_Write(REG_RXFIFO|REG_READ);
  181. CC2420_PSDU[0] = SPI_Read();
  182. for(i=0;i
  183. {
  184. CC2420_PSDU[1+i] = SPI_Read();
  185. }
  186. CSN_ON();
  187. CC2420_Command(CMD_SFLUSHRX);}
复制代码
cc2420的资料
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-8-26 22:17

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

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