?? 東方石木 spi spec.htm
字號:
<DIV class="">2006年4月</DIV></A>
<LI><A class="" id=LN_20063 title=單擊以查看在此期間發布的所有博客。
href="http://easternstone.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=amonth%3d3%26ayear%3d2006">
<DIV class="">2006年3月</DIV></A>
<LI><A class="" id=LN_20062 title=單擊以查看在此期間發布的所有博客。
href="http://easternstone.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=amonth%3d2%26ayear%3d2006">
<DIV class="">2006年2月</DIV></A>
<LI><A class="" id=LN_20061 title=單擊以查看在此期間發布的所有博客。
href="http://easternstone.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=amonth%3d1%26ayear%3d2006">
<DIV class="">2006年1月</DIV></A>
<LI><A class="" id=LN_200512 title=單擊以查看在此期間發布的所有博客。
href="http://easternstone.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=amonth%3d12%26ayear%3d2005">
<DIV class="">2005年12月</DIV></A>
<LI><A class="" id=LN_200511 title=單擊以查看在此期間發布的所有博客。
href="http://easternstone.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=amonth%3d11%26ayear%3d2005">
<DIV class="">2005年11月</DIV></A>
<LI><A class="" id=LN_200510 title=單擊以查看在此期間發布的所有博客。
href="http://easternstone.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=amonth%3d10%26ayear%3d2005">
<DIV class="">2005年10月</DIV></A>
<LI><A class="" id=LN_20059 title=單擊以查看在此期間發布的所有博客。
href="http://easternstone.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=amonth%3d9%26ayear%3d2005">
<DIV class="">2005年9月</DIV></A></LI></UL>
<DIV id=Blog></DIV>
<SCRIPT language=javascript>function Breadcrumb_Blog(breadcrumbBinding){ {var menuTemp = breadcrumbBinding.createMenu();menuTemp.addMenuItem("2007年5月", "20075", null, "http://easternstone.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=amonth%3d5%26ayear%3d2007");menuTemp.addMenuItem("2007年4月", "20074", null, "http://easternstone.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=amonth%3d4%26ayear%3d2007");menuTemp.addMenuItem("2007年3月", "20073", null, "http://easternstone.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=amonth%3d3%26ayear%3d2007");menuTemp.addMenuItem("2007年2月", "20072", null, "http://easternstone.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=amonth%3d2%26ayear%3d2007");menuTemp.addMenuItem("2007年1月", "20071", null, "http://easternstone.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=amonth%3d1%26ayear%3d2007");menuTemp.addMenuItem("2006年12月", "200612", null, "http://easternstone.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=amonth%3d12%26ayear%3d2006");menuTemp.addMenuItem("2006年11月", "200611", null, "http://easternstone.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=amonth%3d11%26ayear%3d2006");menuTemp.addMenuItem("2006年10月", "200610", null, "http://easternstone.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=amonth%3d10%26ayear%3d2006");menuTemp.addMenuItem("2006年9月", "20069", null, "http://easternstone.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=amonth%3d9%26ayear%3d2006");menuTemp.addMenuItem("2006年8月", "20068", null, "http://easternstone.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=amonth%3d8%26ayear%3d2006");menuTemp.addMenuItem("2006年7月", "20067", null, "http://easternstone.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=amonth%3d7%26ayear%3d2006");menuTemp.addMenuItem("2006年6月", "20066", null, "http://easternstone.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=amonth%3d6%26ayear%3d2006");menuTemp.addMenuItem("2006年5月", "20065", null, "http://easternstone.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=amonth%3d5%26ayear%3d2006");menuTemp.addMenuItem("2006年4月", "20064", null, "http://easternstone.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=amonth%3d4%26ayear%3d2006");menuTemp.addMenuItem("2006年3月", "20063", null, "http://easternstone.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=amonth%3d3%26ayear%3d2006");menuTemp.addMenuItem("2006年2月", "20062", null, "http://easternstone.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=amonth%3d2%26ayear%3d2006");menuTemp.addMenuItem("2006年1月", "20061", null, "http://easternstone.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=amonth%3d1%26ayear%3d2006");menuTemp.addMenuItem("2005年12月", "200512", null, "http://easternstone.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=amonth%3d12%26ayear%3d2005");menuTemp.addMenuItem("2005年11月", "200511", null, "http://easternstone.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=amonth%3d11%26ayear%3d2005");menuTemp.addMenuItem("2005年10月", "200510", null, "http://easternstone.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=amonth%3d10%26ayear%3d2005");menuTemp.addMenuItem("2005年9月", "20059", null, "http://easternstone.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=amonth%3d9%26ayear%3d2005");breadcrumbBinding.addMenu(menuTemp);}}</SCRIPT>
<Web:binding type="Live.ControlsEx.Breadcrumb.Trigger"
selector="div#Blog"><Web:references priority="Low"><Web:add
type="Script"
src="http://shared.live.com/BbN2XWNj!FpIhHcojYuNOA/js/Live.ControlsEx.js"></Web:add></Web:references><Web:defaults><Web:param
value="Breadcrumb_Blog"
name="fcn"></Web:param></Web:defaults></Web:binding></DIV></DIV></TD></TR></TBODY></TABLE></TD>
<TD class=region id=MainFocus>
<DIV class="ContainerFullView fullPageOuter SPTransparency">
<DIV class=spAToolbar style="WIDTH: 100%">
<TABLE class=spAToolbarTable style="WIDTH: 100%" cellSpacing=0>
<TBODY>
<TR>
<TD>
<UL
id=ctl00_MainContentPlaceholder_ctl00_Toolbar_Internal_LeftToolbarList>
<LI class=sppLast><A title="轉到:zzLinux 網絡的多播 IP 技術"
href="http://easternstone.spaces.live.com/blog/cns!183E62578D3C9CE!187.entry?_c=BlogPart"><IMG
class=HoverButton
style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"
src="東方石木 spi spec.files/backnext_~Left~_rest_~ContainerHeaderTextLuminance~.gif"
hb:hoversrc="http://shared.live.com/-3EG8lRmVW3tUOo3XVklRlyU!CJztKKGYcoprAXYCP4a3Vu!E-lp-TXlXKdT-Ya!5SuoH9cnsuAB2STidvblZg/Base/3403/hig/img/glyph/backnext_~Left~_hover_~ContainerHeaderTextLuminance~.gif">上一項:zzLinux
網絡的多...</A></LI></UL></TD>
<TD align=right>
<UL
id=ctl00_MainContentPlaceholder_ctl00_Toolbar_Internal_RightToolbarList>
<LI class=sppLast><A
title="轉到:Covert Channels in the TCP/IP Protocol Suite---1"
href="http://easternstone.spaces.live.com/blog/cns!183E62578D3C9CE!189.entry?_c=BlogPart">下一項:Covert
Chann...<IMG class=HoverButton
style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px"
src="東方石木 spi spec.files/backnext_~Right~_rest_~ContainerHeaderTextLuminance~.gif"
hb:hoversrc="http://shared.live.com/-3EG8lRmVW3tUOo3XVklRlyU!CJztKKGYcoprAXYCP4a3Vu!E-lp-TXlXKdT-Ya!5SuoH9cnsuAB2STidvblZg/Base/3403/hig/img/glyph/backnext_~Right~_hover_~ContainerHeaderTextLuminance~.gif"></A></LI></UL></TD></TR></TBODY></TABLE></DIV>
<DIV class=ContainerPadding><SPAN
id=ctl00_MainContentPlaceholder_ctl00_ctl00_lblEntry>
<DIV class="fixedTable bvEntry" id=entrycns!183E62578D3C9CE!188 bv:cat=""
bv:ca="true" bv:cns="cns!183E62578D3C9CE!188">
<DIV id=LastMDatecns!183E62578D3C9CE!188>11月14日</DIV>
<H4 class=TextColor1 id=subjcns!183E62578D3C9CE!188
style="MARGIN-BOTTOM: 0px">spi spec</H4>
<DIV class=bvMsg id=msgcns!183E62578D3C9CE!188>
<DIV>SPI接口-
-<BR>
</DIV>
<DIV>SPI:Serial Periphieral Interface , 串行外設接口。 <BR>RC32332/4中的SPI接口:
<BR>SPI四由個引腳:spi_miso,spi_mosi,spi_sck,spi_ss_n。
<BR>SPI支持RC32332與外部設備(E2ROM etc...)全雙工模式的,同步串行數據傳輸。
<BR>主設備通過spi_mosi發送數據給從設備,從設備通過主設備的spi_miso發送數據給主設備,兩個方向的傳輸可以同時同步進行。
</DIV>
<DIV>主設備發送數據: <BR>將發送數據寫入SPI Data Register(SPDR),這個數據將被移到shift
register后被立即發送,在8個串行時鐘周期后,SPI標識位(SPI
Flag,SPIF)被設置,表示數據傳輸完成。在進行下一次傳輸前,必須通過讀取SPI 狀態寄存器(SPI Status
Register),清除SPIF位和SPDR內容。對于打開SPI中斷,在傳輸完成后,將會產生SPI中斷信息。 </DIV>
<DIV>SPI四個寄存器,基地址0x1800 0900 <BR>SP_Clock Divisor/Prescalar
Register(SPCNT) offset:0x00 <BR>SP_Control Register SPCNTL 0x04
<BR>SP_Status Register (SPSR) 0x08 <BR>SP_Data I/O Register (SPDR) 0x0C
</DIV>
<DIV>SPCNT:設置spi_sck=system clock / [2*(SPCNT+1)*SPR]; <BR>SPCNTL:
<BR>SPIE:1-在SPIF設1時使能SPI 卡中斷;0-關SPI中斷(默認); <BR>SPE:1-打開SPI,0-關閉SPI(默認)
<BR>MSTR:1-SPI主模式;0-保留使用,RC32334/2只能為SPI主模式
<BR>CPOL:時鐘級性,0-當傳輸時spi_sck為邏輯0(Default),1-當傳輸時spi_sck為邏輯1. <BR>CPHA:
<BR>SPR:00除以2(Default);01除以4;10除以16;11除以32 <BR>SPSR:
<BR>SPIF:傳輸完成標致,0-空閑,為傳輸做好準備,1-數據傳輸完成,被隱式設置。
<BR>WCOL:寫沖突,如果為1,則出現寫沖突,此時的寫入將被忽略。 <BR>MODF:Master Error Flag,置1說明出現違例。
<BR>SPDR: <BR>數據寄存器,由主設備發起數據傳輸,當數據傳輸完成,主從SPI設備的SPIF狀態位都將被置1。
<BR>當要發送數據時,向此寄存器寫入數據,當數據傳輸完成后,SPIF狀態寄存器被置1,讀取SPSR,而后從此寄存器讀取接收到的數據。 </DIV>
<DIV>主模式編程范例: <BR>系統時鐘頻率67MHz下初始一個2MHz的SPI接口。 <BR>1.設置SPCNT寄存器為0x0000
0008,設置SPI時鐘為3.7MHz <BR>2.設置SPCR寄存器為0x0000
00F0,設置SPIE=1,使能SPI中斷,SPE=1使能SPI接口。MSTR=1,這個通常設為1。CPOL=0時鐘為低電頻表示SPI非激活,CPHA=0:在第一個活動沿采樣數據。SPR=0,將內部時鐘二分,則SPI時鐘為3.7/2=1.85MHz;
<BR>3.設置中斷掩碼寄存器14(0x1800_05E4)為0x0000 0001,打開系統SPI中斷服務。
<BR>4.讀取SPSR和SPDR寄存器,清除SPIF位。 <BR>5.設置PIO中的spi_ss_n的輸出模式,并設置為低電頻。
<BR>6.將要發送的數據寫入SPDR寄存器。 <BR>7.等待SPI中斷產生,中斷服務程序完成以下步驟
<BR>8.讀取SPSR,確保沒有任何錯誤發生。 <BR>9.讀取SPDR寄存器,獲取SPDR寄存器的內容,同時重置SPSR中的SPIF位。
<BR>10.設置SPI中斷重置寄存器(0x1800_05E8)為0x0000_0001,清除SPI中斷Pending寄存器。
<BR>11.如果完成了命令系列,拉高spi_ss_n引腳。 <BR>12.重復5-11的步驟,完成新一倫的命令。 </DIV>
<DIV><BR>//// <BR>初始化SPI應該注意幾點內容: <BR>1.正確選擇主機或從機,以及工作模式(極性),數據傳輸率。
<BR>2.注意傳送字節的順序,是低位優先(LBS First)還是高位優先(MSB First)。
<BR>3.正確設置MOSI和MISO接口的輸入,輸出方向,輸入引腳上拉電阻,可以節省總線上的吊高電阻。 </DIV>
<DIV><BR> </DIV></DIV>
<TABLE cellSpacing=0 border=0>
<TBODY></TBODY></TABLE>
<DIV class=footerLinks>18:46 | <NOBR><A id=blogAddComment0
title=單擊為此博客添加評論。
href="http://easternstone.spaces.live.com/blog/cns!183E62578D3C9CE!188.entry#post"
bvItemType="post">添加評論</A></NOBR> | <NOBR><A id=blogSendMessage0
title=給作者發送消息
href="http://spaces.live.com/api.aspx?wx_action=sendMessage&wxp_toCid=109183864602347982&wx_ru=http%3a%2f%2feasternstone.spaces.live.com%2fBlog%2fcns!1psa3gj8fHauRPc6aztLvH0w!188.entry&wxp_subject=%e7%ad%94%e5%a4%8d%ef%bc%9a%e6%82%a8%e7%9a%84%e5%8d%9a%e5%ae%a2%e2%80%9cspi+spec%e2%80%9d&wxp_body=%3cDIV%3e%3cBR+%2f%3e%3cBR+%2f%3e%3cHR%3e%e6%9f%a5%e7%9c%8b%e5%8d%9a%e5%ae%a2%ef%bc%9a%3cA+href%3d%22http%26%2358%3b%26%2347%3b%26%2347%3beasternstone.spaces.live.com%26%2347%3bblog%26%2347%3bcns%26%2333%3b183E62578D3C9CE%26%2333%3b188.entry%22%3ehttp%26%2358%3b%26%2347%3b%26%2347%3beasternstone.spaces.live.com%26%2347%3bblog%26%2347%3bcns%26%2333%3b183E62578D3C9CE%26%2333%3b188.entry%3c%2fA%3e%3c%2fDIV%3e"
bvItemType="">發送消息</A></NOBR> | <NOBR><A id=blogTrackbacks0
title=單擊以顯示此博客的引用通告。
href="http://easternstone.spaces.live.com/blog/cns!183E62578D3C9CE!188.entry#trackback"
bvItemType="trackback">引用通告 (0)</A></NOBR> | <NOBR><A id=blogThis0
title=將此寫入您的共享空間博客。 href="javascript:BlogIt('cns!183E62578D3C9CE!188');"
bvItemType="">寫入博客</A></NOBR></DIV>
<DIV class=footer></DIV></DIV></SPAN>
<SCRIPT type=text/javascript>
/*<![CDATA[*/
var g_spLastMTime = "2007/1/12 10:44:44zh-CN2007-04-13_21.29";
if (Spaces.LoadMonitor)
{ Spaces.LoadMonitor.RegisterComponent("BlogPermalink", "sp_pct_blogpermalink");
}
/* ]]> */
</SCRIPT>
<DIV
style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px">
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -