pos机万能驱动下载

 新闻资讯2  |   2023-07-20 09:44  |  投稿人:pos机之家

网上有很多关于pos机万能驱动下载,PIC32MZ芯片spi驱动开发的知识,也有很多人为大家解答关于pos机万能驱动下载的问题,今天pos机之家(www.poszjia.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.poszjia.com/newsone/87296.html
上一篇:pos机专用收银纸 下一篇:pos机的发展

你可能会喜欢:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 babsan@163.com 举报,一经查实,本站将立刻删除。