<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于MCU的室外移動(dòng)機器人組合導航定位系統

基于MCU的室外移動(dòng)機器人組合導航定位系統

——
作者: 時(shí)間:2015-05-08 來(lái)源:網(wǎng)絡(luò ) 收藏

  2.5 SPI轉UART電路

本文引用地址:http://dyxdggzs.com/article/273857.htm

  由于的片上UART資源都被IMU器件和接收機占用,因此需要擴充一個(gè)UART接口才能滿(mǎn)足定位系統與PC機間的通信。為此將上的GPIO模擬SPI,再通過(guò)MAX3111E芯片轉成UART接口。

  MAX3111E是MAXIM公司推出的全功能收發(fā)器,內部包含UART和RS232電平轉換兩個(gè)獨立的部分。UART部分包括兼容于SPI的串行接口、可編程波特率發(fā)生器、發(fā)送移位寄存器、接收移位寄存器、8字長(cháng)的FIFO以及4種可屏蔽中斷發(fā)生器;RS232部分包括電泵電容、硬件關(guān)斷(SHDN管腳),具有±15kV靜電保護作用。它可以選擇1.8432MHz或3.6864MHz兩種晶振作為外部晶振,芯片能夠工作在300bps~230kbps波特率,本文使用的是3.6864MHz晶振。MAX3111E與連接電路如圖5.

  

 

  圖5 SPI轉UART電路

  MAX3111E的控制命令分為寫(xiě)配置命令、讀配置命令、寫(xiě)數據命令以及讀數據命令四種。本文寫(xiě)入芯片的配置命令是0xE809,8bit數據長(cháng)度、使能FIFO、發(fā)送中斷使能、波特率38400bps.數據的寫(xiě)入需要在每個(gè)字節前面加上0x81,例如若要發(fā)送字節0x55,則需要從DIN端移位輸入0x8155.

  下面是連續發(fā)送n個(gè)字節的C語(yǔ)言代碼:

  SPI_WRITE_16BIT(0xE809);//寫(xiě)配置命令

  delay_ms(10);//延時(shí)10ms

  SPI_WRITE_16BIT(0x8100+DATA1);//發(fā)送第1個(gè)數據DATA1

  delay_ns(250);//延時(shí)250ns

  SPI_WRITE_16BIT(0x8100+DATA2);//發(fā)送第2個(gè)數據DATA2

  ……

  delay_ns(250);//延時(shí)250ns

  SPI_WRITE_16BIT(0x8100+DATAn);//發(fā)送第n個(gè)數據DATAn

  使用MAX3111E時(shí)需要注意:

  1、片選信號CS的下降沿到時(shí)鐘SCLK信號的第一個(gè)上升沿至少要有100ns的時(shí)間延遲;

  2、芯片判定片選信號CS失效時(shí),需要CS管腳保持高電平的時(shí)間至少為200ns.因此當需要連續發(fā)送數據時(shí),兩個(gè)寫(xiě)數據命令之間至少需要200ns,建議間隔250ns;

  3、寫(xiě)配置命令需要晶振工作穩定,因此可以在寫(xiě)配置命令后再讀配置,直到寫(xiě)入和讀出的配置數據相應位相同時(shí)才保證芯片按需求配置完畢。

  3軟件設計

  3.1 GPIO模擬SPI實(shí)現方法

  使用GPIO模擬SPI,對選定的IO口進(jìn)行時(shí)序上的電平操作,模擬出SPI時(shí)序。本文將SPI的電平操作采用宏定義的方式,可參考表3中的源代碼。

  

 

  程序按照SPI邏輯關(guān)系使用上述的宏定義,可以在選定的IO端口產(chǎn)生SPI信號,并且可以靈活的控制每個(gè)CS有效期間的時(shí)鐘數。使用GPIO模擬的SPI具有操作直觀(guān)、靈活可變等優(yōu)點(diǎn)。相比較模擬得到的SPI,控制器上自帶的SPI接口基本不占用控制器資源,發(fā)送和接收的移位、時(shí)鐘信號的產(chǎn)生都交由內部SPI模塊處理。而GPIO模擬的SPI需要控制器不斷對IO進(jìn)行操作,因此會(huì )占用控制器處理時(shí)間。時(shí)鐘信號也因對電平操作消耗機器周期,導致時(shí)鐘信號速度有限。

c語(yǔ)言相關(guān)文章:c語(yǔ)言教程


加速度計相關(guān)文章:加速度計原理


關(guān)鍵詞: MSP430F149 GNSS

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>