pos機萬能驅動下載

 新聞資訊2  |   2023-07-20 09:44  |  投稿人:pos機之家

網上有很多關于pos機萬能驅動下載,PIC32MZ芯片spi驅動開發的知識,也有很多人為大家解答關于pos機萬能驅動下載的問題,今天pos機之家(www.www690aa.com)為大家整理了關于這方面的知識,讓我們一起來看下吧!

本文目錄一覽:

1、pos機萬能驅動下載

pos機萬能驅動下載

最近在項目開發過程中用的了PIC32MZ1024EFE144芯片,其中一個功能是通過SPI接口控制SI4438實現無線通信。具體的調試步驟分享如下。

1、PIC32MZ芯片SPI接口引腳配置

PIC32MZ芯片有6路SPI接口,在項目中使用SPI2。

SPI2的SCK是固定引腳,不可更改;SDI2/SDO2/SS2是通過端口映射來配置。

//SI4438 SPI管腳選擇 PLIB_PORTS_PinModePerPortSelect(PORTS_ID_0,PORT_CHANNEL_G,PORTS_BIT_POS_1,PORTS_PIN_MODE_DIGITAL);//SDO2 PLIB_PORTS_PinModePerPortSelect(PORTS_ID_0,PORT_CHANNEL_B,PORTS_BIT_POS_3,PORTS_PIN_MODE_DIGITAL);//SDI2 PLIB_PORTS_PinModePerPortSelect(PORTS_ID_0,PORT_CHANNEL_G,PORTS_BIT_POS_6,PORTS_PIN_MODE_DIGITAL);//SCK2 PLIB_PORTS_ChangeNoticePullUpPerPortEnable( PORTS_ID_0, PORT_CHANNEL_B, PORTS_BIT_POS_3 ); // PLIB_PORTS_RemapOutput(PORTS_ID_0,OTPUT_FUNC_REFCLKO3,OUTPUT_PIN_RPG6); /* PPS Input Remapping */ SDI2R=8;//RPB3 SDI2 /* PPS Output Remapping */ RPG1R = 6;// RPG1 SDO2 PLIB_PORTS_PinDirectionOutputSet( PORTS_ID_0, PORT_CHANNEL_G, PORTS_BIT_POS_1 );//SCK2 PLIB_PORTS_PinDirectionOutputSet( PORTS_ID_0, PORT_CHANNEL_G, PORTS_BIT_POS_6 );//SDO2 PLIB_PORTS_PinSet( PORTS_ID_0, PORT_CHANNEL_B, PORTS_BIT_POS_2 );//SI4438 SS2 PLIB_PORTS_PinDirectionOutputSet( PORTS_ID_0, PORT_CHANNEL_B, PORTS_BIT_POS_2 );// SS2

2、PIC32MZ芯片SPI模塊時鐘選擇

CPU內部任何一個模塊都需要時鐘才能工作,需要給SPI模塊配置時鐘源。項目中芯片的系統時鐘是120M,使用PBCLK2作為SPI的時鐘源。

/* usart、I2C、PMP use clock PBCLK2 set this to sys clk*/ PLIB_OSC_PBClockDivisorSet(OSC_ID_0, OSC_PERIPHERAL_BUS_2, 2 );

SPIxCON: SPI Control Register

3、PIC32MZ芯片SPI模塊參數配置

SPI參數初始化比較簡單,沒有使用中斷收發,根據功能寄存器進行參數配置即可。SPI的通信模式需要和SI4438匹配,這個通信模式一定要正確,否則無法通信。

void SPI2_Initialize ( void ){ uint32_t rdata; /* STOP and Reset the SPI */ SPI2CON = 0; /* Clear the Receiver buffer */ rdata = SPI2BUF; rdata = rdata; /* BAUD Rate register Setup */ SPI2BRG = 3; /* CLear the Overflow */ SPI2STATCLR = _SPI2STAT_SPIROV_MASK; /* MSTEN = 1 CKP = 0 CKE = 1 MODE<32,16> = 0 ENHBUF = 1 MSSEN = 0 MCLKSEL = 0 */ SPI2CON=0x8020|SPI_CLOCK_PHASE_LEADING_EDGE|_SPI2CON_ENHBUF_MASK; // SPI ON, 8 bits transfer, SMP=0, Master mode}

4、PIC32MZ芯片SPI模塊收發驅動

這里收發函數分開是為了方便閱讀,實際上,由于和SI4438進行SPI通信時是半雙工,收發完全可以寫到一個函數里。

bool SPI2_Write(void* pTransmitData, size_t txSize){ uint32_t i; uint32_t rdata; for( i=0;i<txSize;i++) { SPI2BUF = *((uint8_t*)pTransmitData + i); while((SPI2STAT & _SPI2STAT_SRMT_MASK) == 0); while ((bool)(SPI2STAT & _SPI2STAT_SPIRBE_MASK) == true); rdata = SPI2BUF; }}bool SPI2_Read(void* pReceiveData, size_t rxSize){ uint32_t i; for( i=0;i<rxSize;i++) { SPI2BUF = 0xFF; while((SPI2STAT & _SPI2STAT_SRMT_MASK) == 0); while ((bool)(SPI2STAT & _SPI2STAT_SPIRBE_MASK) == true); *((uint8_t*)pReceiveData+i) = SPI2BUF; }}

總結

在產品開發中,SPI功能用的非常多,邏輯相對簡單,雖然每顆芯片的配置都不一樣,但是總體上都是要從管腳配置、時鐘選擇、寄存器初始化、收發驅動這些方面著手。

芯片手冊下載地址:

Section 23. Serial Peripheral Interface (SPI):http://ww1.microchip.com/downloads/en/DeviceDoc/61106G.pdf

PIC32MZ EF Family Datasheet_DS60001320G:http://ww1.microchip.com/downloads/en/DeviceDoc/PIC32MZ EF Family Datasheet_DS60001320G.pdf

以上就是關于pos機萬能驅動下載,PIC32MZ芯片spi驅動開發的知識,后面我們會繼續為大家整理關于pos機萬能驅動下載的知識,希望能夠幫助到大家!

轉發請帶上網址:http://www.www690aa.com/newsone/87296.html
上一篇:pos機專用收銀紙 下一篇:pos機的發展

你可能會喜歡:

版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 babsan@163.com 舉報,一經查實,本站將立刻刪除。