將FPGA配置數(shù)據(jù)(.rbf)存放在U盤,MCU按字節(jié)讀到累加器A,怎么編程

用372或375將FPGA配置數(shù)據(jù)(.rbf二進(jìn)制文件)存放在U盤,MCU按字節(jié)讀到累加器A,怎么編程?[Emot]27[/Emot][Emot]27[/Emot][Emot]27[/Emot]

如果是單片機(jī)操作U盤的話,那么只能用CH375,你可以這樣做,你只要將你的FPGA的數(shù)據(jù)送到單片機(jī)里面去,接著將這些數(shù)據(jù)復(fù)值到375定義的緩沖區(qū)里面就可以寫了。


"單片機(jī)系統(tǒng)可以直接使用CH375讀寫U 盤,將U盤當(dāng)作大容量閃存使用。與SRAM-6264 兼容;“ 問題是:1、6264是8K的,此時U盤可以是多大容量,怎樣尋地址,地址怎樣確定? 2、用MOVX A,@DPTR MOVX @DPTR,A 直接進(jìn)行讀寫嗎? 急切盼望回答!謝謝

下面是電子盤模塊CH375EDM 的電路圖,用于插入在兼容SRAM-6264 引腳的DIP28 插座中。 單片機(jī)系統(tǒng)應(yīng)該提供兼容SRAM-6264引腳的DIP28插座,電子盤模塊應(yīng)該插入該DIP28插座中, 然后在電子盤的模塊的P1 端口插入U 盤(USB 閃存盤)或者通過USB 延長線插入U 盤。 以原SRAM-6264 的片選地址作為基址,各端口地址如下: 基址加0 的地址為CH375 的數(shù)據(jù)端口, 基址加1 的地址為CH375 的命令端口, 基址加2 的地址為CH375 的狀態(tài)端口,其中位0 為CH375 的INT#引腳狀態(tài)。 要使用電子盤模塊,單片機(jī)系統(tǒng)必須給DIP 插座提供以下信號: 低電平有效的CE#片選信號和高電平有效的CE 片選信號,與SRAM-6264 兼容; 低電平有效的RD#/OE#讀選通信號,低電平有效的WR#/WE#寫選通信號,與SRAM-6264 兼容; 地址線A1 和A0,雙向數(shù)據(jù)總線D7-D0,與SRAM-6264 兼容; 可選的中斷信號,從DIP28 插座的第1 腳輸出,當(dāng)跳線J1 連接1-2 時提供低電平中斷信號,當(dāng) 跳線J1 連接2-3 時提供高電平中斷信號。 單片機(jī)系統(tǒng)可以直接使用CH375讀寫U 盤,將U盤當(dāng)作大容量閃存使用。如果需要使用文件系統(tǒng) 以文件格式讀寫數(shù)據(jù),可以使用CH375的U 盤文件級子程序庫,只要在程序中設(shè)置正確的端口地址, 相關(guān)的示例程序都可以直接使用。 電子盤模塊支持中斷方式和查詢方式,使用中斷方式需要連接電子盤模塊的第1 腳到單片機(jī)的中 斷請求輸入引腳并用跳線J1 選擇中斷電平,使用查詢方式是通過電子盤模塊的狀態(tài)端口的位0 查詢 CH375 的INT#引腳狀態(tài),從而可以為單片機(jī)節(jié)約一個I/O 引腳。


1,我們在操作U盤的物理扇區(qū)的時候,首先是給出要讀或者要寫的U盤的扇區(qū)號,給定了扇區(qū)號之后,就可以發(fā)送寫命令了,接著就往下面寫數(shù)據(jù)。我們定義的扇區(qū)好是32位的,也就是說對于現(xiàn)在一般的U盤都可以支持。 2,是這樣直接的讀和寫。


請原諒,我現(xiàn)在不能做實驗,所以有的問題無法實驗驗證解決。只好再請教您

1、用MOVX A,@DPTR MOVX @DPTR,A 直接進(jìn)行讀寫,要知道地址, MOV DPTR, xxxxH, U盤地址xxxxH到底是什么? 0000H-FFFFH嗎?,還是別的? 不懂啊?。。?/p>

2、資料上講“要使用電子盤模塊,單片機(jī)系統(tǒng)必須給DIP 插座提供以下信號: 低電平有效的CE#片選信號和高電平有效的CE 片選信號,與SRAM-6264 兼容; 低電平有效的RD#/OE#讀選通信號,低電平有效的WR#/WE#寫選通信號,與SRAM-6264 兼容; 地址線A1 和A0,雙向數(shù)據(jù)總線D7-D0,與SRAM-6264 兼容;” 怎么地址線只用 A1 和A0,不用A2---A12?

3、因為急用,有沒有“PC將二進(jìn)制文件如mux21a.rbf拷到U盤,MCU將U盤上的二進(jìn)制文件通過電子盤模塊讀到累加器A”類似的程序,或編程流程,請發(fā)到個人信息保護(hù),已隱藏或QQ:1881003上。

單片機(jī)系統(tǒng)可以直接使用CH375讀寫U 盤,將U盤當(dāng)作大容量閃存使用。與SRAM-6264 兼容;“ 問題是:1、6264是8K的,此時U盤可以是多大容量,怎樣尋地址,地址怎樣確定? 2、用MOVX A,@DPTR MOVX @DPTR,A 直接進(jìn)行讀寫嗎?


MOV DPTR, xxxxH指的是數(shù)據(jù)端口地址和命令端口地址,真正決定375命令端口地址和數(shù)據(jù)端口地址的就是375和單片機(jī)相連接的A0和CS線


27 CS# 輸入 片選控制輸入,低電平有效,內(nèi)置上拉電阻

8 A0 輸入 地址線輸入,區(qū)分命令口與數(shù)據(jù)口,內(nèi)置上拉電阻, 當(dāng)A0=1 時可以寫命令,當(dāng)A0=0 時可以讀寫數(shù)據(jù)


用電子盤模塊CH375EDM ,“單片機(jī)系統(tǒng)可以直接使用CH375讀寫U 盤,將U盤當(dāng)作大容量閃存使用,與SRAM-6264 兼容”,能不能理解成“直接對SRAM-6264 讀寫,就好象沒用CH374 + U盤”?不需要想以下程序一樣對CH375初始化,設(shè)置USB工作模式。。。

/* 計算機(jī)應(yīng)用程序?qū)⒛硞€文件的數(shù)據(jù)通過USB下傳到單片機(jī)的RAM中,本程序中單片機(jī)再將數(shù)據(jù)從串口輸出,相當(dāng)于USB轉(zhuǎn)串口,供參考 */ /* ; CH375/CH372 Bulk Data Download ; U2(AT89C51) Program ; 本程序測試收大數(shù)據(jù)塊 ; 本程序適用于時鐘頻率不高于24MHz的標(biāo)準(zhǔn)MCS-51單片機(jī) ; ; Website: http://winchiphead.com ; Email: 個人信息保護(hù),已隱藏 ; Author: W.ch 2003.09 */

/* MCS-51單片機(jī)C語言的示例程序 */

#include #include "CH375INC.H"

unsigned char volatile xdata CH375_CMD_PORT _at_ 0xBDF1; /* CH375命令端口的I/O地址 */ unsigned char volatile xdata CH375_DAT_PORT _at_ 0xBCF0; /* CH375數(shù)據(jù)端口的I/O地址 */

unsigned char xdata data_buffer[0x8000] _at_ 0x0000; unsigned char xdata *p_xram; unsigned char xdata *p_ser;

/* 延時2微秒,不精確 */ void Delay2us( ) { unsigned char i; #define DELAY_START_VALUE 1 /* 根據(jù)單片機(jī)的時鐘選擇初值,20MHz以下為0,30MHz以上為2 */ for ( i=DELAY_START_VALUE; i!=0; i-- ); }

/* 延時50毫秒,不精確 */ void Delay50ms( ) { unsigned char i, j; for ( i=200; i!=0; i-- ) for ( j=250; j!=0; j-- ); }

/* CH375初始化子程序 */ void CH375_Init( ) { unsigned char i; /* 設(shè)置USB工作模式, 必要操作 */ CH375_CMD_PORT = CMD_SET_USB_MODE; Delay2us( ); /* 如果時鐘頻率低于16MHz則無需該指令延時 */ CH375_DAT_PORT = 2; /* 設(shè)置為使用內(nèi)置固件的USB設(shè)備方式 */ for ( i=100; i!=0; i-- ) { /* 等待操作成功,通常需要等待10uS-20uS */ if ( CH375_DAT_PORT==CMD_RET_SUCCESS ) break; } /* if ( i==0 ) { CH372/CH375存在硬件錯誤 }; */ /* 下述啟用中斷,假定CH375連接在INT0 */ IT0 = 0; /* 置外部信號為低電平觸發(fā) */ IE0 = 0; /* 清中斷標(biāo)志 */ EX0 = 1; /* 允許CH375中斷 */ }

/* CH375中斷服務(wù)程序,使用寄存器組1 */ void mCh375Interrupt( ) interrupt 0 using 1 { unsigned char InterruptStatus; unsigned char length; CH375_CMD_PORT = CMD_GET_STATUS; /* 獲取中斷狀態(tài)并取消中斷請求 */ Delay2us( ); /* 如果時鐘頻率低于16MHz則無需該指令延時 */ InterruptStatus = CH375_DAT_PORT; /* 獲取中斷狀態(tài) */ if ( InterruptStatus == USB_INT_EP2_OUT ) { /* 批量端點下傳成功 */ CH375_CMD_PORT = CMD_RD_USB_DATA; /* 從當(dāng)前USB中斷的端點緩沖區(qū)讀取數(shù)據(jù)塊,并釋放緩沖區(qū) */ Delay2us( ); /* 如果時鐘頻率低于16MHz則無需該指令延時 */ length = CH375_DAT_PORT; /* 首先讀取后續(xù)數(shù)據(jù)長度 */ if ( length == 0 ) /* 如果長度為0說明計算機(jī)將要開始下傳一個新的文件 */ { p_xram=data_buffer; /* 將指針初始化以便接收 */ p_ser=data_buffer; } else /* 長度不為0則說明是下傳文件數(shù)據(jù),接收到緩沖區(qū)中,再由主程序處理串口發(fā)送 */ { do { *p_xram = CH375_DAT_PORT; p_xram++; } while ( --length); if ( p_xram >= 0x7f80 ) p_xram=data_buffer; /* 防止XRAM溢出,這是簡單處理,實際產(chǎn)品應(yīng)該處理嚴(yán)密些 */ }

} else CH375_CMD_PORT = CMD_UNLOCK_USB; /* 釋放當(dāng)前USB緩沖區(qū) */ }

main( ) { Delay50ms( ); /* 延時等待CH375初始化完成,如果單片機(jī)由CH375提供復(fù)位信號則不必延時 */ CH375_Init( ); /* 初始化CH375 */ // Init serial baudrate PCON = 0x80; SCON = 0x50; /* 8位串行數(shù)據(jù) */ TL2 = RCAP2L = 0xf6;//0 - RetLen; /* 18.432MHz, 57600bps */ TH2 = RCAP2H = 0xFF; T2CON = 0x34; /* 定時器2用于串口的波特率發(fā)生器 */ TI = 0; RI = 0; /* 清除中斷標(biāo)志 */ // ? EA = 1; /* 允許中斷 */ p_xram=data_buffer; p_ser=data_buffer; while ( 1 ) { /* 以下指令開始工作循環(huán),等待PC機(jī)命令進(jìn)行操作 */ if(p_ser { SBUF=*p_ser; while(!TI); TI=0; p_ser++; } } }

main( ) { Delay50ms( ); /* 延時等待CH375初始化完成,如果單片機(jī)由CH375提供復(fù)位信號則不必延時 */ CH375_Init( ); /* 初始化CH375 */ // Init serial baudrate PCON = 0x80; SCON = 0x50; /* 8位串行數(shù)據(jù) */ TL2 = RCAP2L = 0xf6;//0 - RetLen; /* 18.432MHz, 57600bps */ TH2 = RCAP2H = 0xFF; T2CON = 0x34; /* 定時器2用于串口的波特率發(fā)生器 */ TI = 0; RI = 0; /* 清除中斷標(biāo)志 */ // ? EA = 1; /* 允許中斷 */ p_xram=data_buffer; p_ser=data_buffer; while ( 1 ) { /* 以下指令開始工作循環(huán),等待PC機(jī)命令進(jìn)行操作 */ if(p_ser { SBUF=*p_ser; while(!TI); TI=0; p_ser++; } } }


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频