項(xiàng)目中需要使用CPLD完成一部分算法設(shè)計(jì),參數(shù)由AVR給出,因此需要完成AVR和CPLD的通信。因此寫了一個(gè)測(cè)試程序。CPLD掛在AVR的數(shù)據(jù)和地址總線上,AVR使用ATmega128,在CPLD中設(shè)置幾個(gè)寄存器,通過(guò)AVR讀寫寄存器來(lái)實(shí)現(xiàn)兩者之間的通信。
Mega128的外部存儲(chǔ)空間從0X1100開(kāi)始,因此只需要配置相應(yīng)的寄存器后讀取或者寫入相應(yīng)的地址就可以,程序比較簡(jiǎn)單,注釋中都有說(shuō)明,僅供參考。
/*******************************************************************
名稱:mian.c
功能:測(cè)試AVR與CPLD的通信,將數(shù)據(jù)寫入CPLD中配置的寄存器,然后讀出,
通過(guò)串口輸出做比較
作者:emouse
時(shí)間:2011.1.4
版本:1.0
注意:無(wú)
********************************************************************/#include"avr/io.h"
#include"avr/interrupt.h"
#include"util/delay.h"
#defineSetBit(Port,N)(Port|=(1<
#defineClrBit(Port,N)(Port&=~(1<
#defineReverBit(Port,N)(Port^=(1<
#defineGetBit(Pin,N)((Pin>>N)&0x01)//讀取IO某一位
unsignedchardata;
voidXRAM_example(void)
{
unsignedchar*q=0x1100;//寄存器1
unsignedchar*m=0x1101;//寄存器2
unsignedchar*p=0x1102;//寄存器3
PORTD=0XFF;
DDRD=0XFF;
DDRC=0xFF;//默認(rèn)情況下端口C用做高地址,可以每只寄存器把端口C釋放
PORTC=0x00;
*q=0xCC;//向寄存器1中寫入數(shù)據(jù),CPLD中自動(dòng)將寄存器1的值付給寄存器3
data=*p;//獨(dú)處寄存器3中的值,在循環(huán)中用串口輸出
}
voidUSART0_Init(void)
{
UCSR0A=0x20;//波特率不加倍,單機(jī)通信模式
UCSR0B=0x18;//中斷不使能,允許發(fā)送和接收
UCSR0C=0x06;//異步模式,無(wú)校驗(yàn),8位數(shù)據(jù),1位停止位
UBRR0H=0x00;
UBRR0L=51;//9600波特率晶振8M
}
voidUSART0_SendByte(unsignedchardata)
{
while(!(UCSR0A&(1<
UDR0=data;//發(fā)送數(shù)據(jù)
}
intmain(void)
{
unsignedchari=0;
USART0_Init();//初始化USART0接口
MCUCR=0xC0;//使能外部SRAM
XMCRA=0x00;
DDRA=0XFF;
PORTA=0XFF;
DDRE=0xff;
DDRD=0xff;
PORTD=0x00;//使能CSA16A17=11
USART0_SendByte(0x88);
while(1)
{
ReverBit(PORTA,0);
XRAM_example();
_delay_ms(500);
USART0_SendByte(data);
}
}
-
cpld
+關(guān)注
關(guān)注
32文章
1257瀏覽量
170684 -
AVR單片機(jī)
+關(guān)注
關(guān)注
22文章
608瀏覽量
56133 -
ATmega128
+關(guān)注
關(guān)注
3文章
76瀏覽量
26927
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
《ATmega128單片機(jī)入門與提高》光盤.rar
AVR ATMega128燒寫程序問(wèn)題
AVR單片機(jī)應(yīng)用開(kāi)發(fā)指南及實(shí)例
采用ATMEGA128單片機(jī)結(jié)合CPLD 實(shí)現(xiàn)了對(duì)VGA顯示
ATmega128實(shí)例程序
AVR單片機(jī)Atmega128在FPGA配置中的運(yùn)用
ATmega128單片機(jī)的內(nèi)部資源、工作原理和硬件電路設(shè)計(jì)的資料免費(fèi)下載

AVR單片機(jī)Atmega128在FPGA配置的應(yīng)用和對(duì)EPF10K10軟硬件設(shè)計(jì)原理

AVR單片機(jī)與CPLD的通信設(shè)計(jì)
使用ATmega128單片機(jī)設(shè)計(jì)數(shù)碼管秒表的程序和工程文件免費(fèi)下載

基于ATmega128單片機(jī)的USART接口程序的開(kāi)發(fā)

ATmega128單片機(jī)](熔絲修改后無(wú)法燒錄程序情況)
法燒錄<b class='flag-5'>程序</b>情況)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評(píng)論