原创 ADuC7026 ARM及开发工具使用经验点滴

2010-10-16 17:17 3219 16 19 分类: 消费电子
ADuC7026是美国ADI公司ADuC70xxARM系列中最典型的一种,其最大特点是具有一路12通道、12bit、速度达1MSPS的ADC;4路12bit的DAC;以及可编程逻辑阵列(PLA)等。

1、 ADuC7026的SPI口只有8位,只能与8位外部SPI接口器件通信。如果外设SPI口是16位的,如AD9833(DDS),则只有采用普通I/O方式仿真SPI口进行通信。

2、ADuC7026所有I/O专用置“1”、清“0”寄存器GPxSET/GPxCLR都是“只写”的,不能读!如果读,输入为全“1”(“FF”),不是实际的输出状态。因此在C语言中只能使用:
GPxSET(或GPxCLR) = xx;直接赋值,而不能使用:
GPxSET(或GPxCLR) |= xx;
因为“|="复合运算符是先读入,在”或“运算,然后赋值(写)。如果使用”|=“,则因读入值为”FF“,运行后写入寄存器的是全”1“,相当于将”xx“I/O口所有位置”1“(或清”0“)了。

3、与所有ARM处理器一样,ADuC7026的外部中断也是电平触发,高电平有效。电平触发比边沿触发要可靠些,不易产生误中断(特别在中断信号有毛刺时),但要注意在退出中断处理程序前要撤销中断源的中断请求,否则会连续触发。如果确要使用边沿触发,可使用外部逻辑电路(或ADuC7026内部PLA将外部触发信号的边沿检测出来,产生宽度不小于4.5us的正脉冲送到ADuC7026即可,ADuC7026本身还是电平触发(无法改变的!)。

4、IRQSTA与IRQSIG的区别:IRQSTA是使能中断状态寄存器,表示当前”已经使能的“中断源状态;IRGSIG是中断状态寄存器,主要反映外部中断引脚IRQSIG0~3上的电平状态。
因此,如果是查询外部中断,最好使用IRGSIG,如果是查询内部中断(如定时器、串口等),则一般都使用IRGSTA。

5、用J-Link全功能ARM仿真器时,发现在KARM(Keil C for ARM)调试时无法将编译后的程序写入Flash中,但用驱动程序自带的J-FlashARM工具就可以。
后经试验发现是驱动程序装了最新版的V4.10i,改装较老版本V4.08i的就可以了。其原因是所用J-Link仿真器是国内仿制品,缺少支持最新版驱动V4.10i的License,因为KARM调试加载Flash时需要仿真器的License。

5、使用KARM v2.42调试ADuC7026的串口通信程序时没有任何问题,但改用MDK v4.02时,串口通信程序收发数据都不正确。
后经分析发现是串口通信程序UART.c中没有对系统时钟初始化,而是使用系统自带的启动文件”startup.s“(KARM)或"ADuC702x.s"(MDK)中的初始化程序。但这2个程序的初始化有些不同。前者分频参数CD=0;后者CD=1。相当于系统时钟前者为41.78MHz,后者为20.89MHz。这样,UART.c中使用相同参数设置波特率时,两者的实际波特率正好差1倍,如果上位机波特率不变,当然通信就有问题了。

文章评论3条评论)

登录后参与讨论

用户1039176 2010-10-28 09:20

看来和我以前用过的MCU差异还是明显的。

用户1172595 2010-10-27 18:20

我喜欢!

用户1516579 2010-10-27 18:02

经验啊 好东西
相关推荐阅读
用户1037795 2014-09-29 14:57
高速LVDS接口信号完整性处理实例
  一、系统介绍 EMCCD相机由图像传感器、驱动电路、FPGA(Spartan-3)、LVDS接口和电源等组成。LVDS输出接口使用2片DS92LV1021,每片实现10bit并行数据到...
用户1037795 2014-08-20 14:15
关于Xilinx FPGA JTAG下载时菊花链路中的芯片数量
  当一个系统中含有多片(2片以上)Xilinx FPGA、CPLD或PROM(FLASH)时,可采用单一JTAG口以菊花链(Daisy Chain)形式将所有芯片串联起来实现下载编程,如下图...
用户1037795 2014-08-12 07:50
NiosII程序编译时出现onchip_mem不够问题及解决方法
开发Altera Nios II软件可使用Nios II IDE或 Nios II Software Build Tools for Eclipse(即:Nios II SBT for Eclip...
用户1037795 2014-08-11 15:08
Altera QuartusII及Cyclone IV E使用经验
  1、仅C8L、IC8L、C9L使用1.0V核电压(VCCINT),其它速度的均使用1.2V核电压。 2、对于作为LVDS传输的Bank必须接2.5V的VCCIO,参考数据手册表1-20...
用户1037795 2014-08-07 14:39
Altera FPGA带NiosII内核程序的JTAG下载方法总结
  1、对于Altera FPGA,含Nios II时需要下载的文件有4种:.sof 文件,.pof 文件,.jic 文件,.elf 文件。 下载文件 ...
用户1037795 2014-08-06 10:18
Quratus II中 Nios II 硬件设计工具SOPC Builder与Qsys的区别
  1、 SOPC(System On a Programmable Chip.)即可编程片上系统,SOPC Builder是Quartus II中传统的Nios II 硬件设计工具,可以灵活...
我要评论
3
16
关闭 站长推荐上一条 /2 下一条