Microchip
直播中

丁冬芹

7年用户 1289经验值
私信 关注
[问答]

如何应对硬件缺陷?

嗨,我正在尝试熟悉I2C数据传输,以便驱动从4×20液晶显示器。据我目前所见,18F部分的嵌入式硬件支持似乎不会在主数据缓存在发送时为空(或在接收时为满)时产生中断。我想我能理解协议,但是这个关键点仍然没有提到。我是否错过了一个技巧,或者是否有必要查看,比如说,ACK情况,看看是否有时间写入或读取新数据。另外,我认为时钟脉冲可以被计数,以达到相同的目的,并产生一个中断到议价。其他用户如何应对硬件缺陷?嵌入式RS232硬件以RCxIF和TXxIF位的标准提供这种基本的中断功能。任何指针和建议都非常感谢,因为我相信肯定有一个简单的答案。不幸的是,我不是“C识字”(到目前为止)!!如果可能的话,请在汇编程序中使用任何有用的代码片段。谢谢。

回帖(5)

李维兴

2019-10-10 13:11:39
看一下微芯片应用笔记AN58.
举报

邹先莹

2019-10-10 13:26:32
嗨,这是荒山亮提到的PIC18F45 K22数据表的描述吗?我必须说实话,我并没有把这解释为引用每个单独的数据字节——如果是这样,那么问题就解决了。听起来Mysil已经解决了这个问题。“REGISTER 9-4:PIR1:PERIPHERAL INTERRUPT REQUEST(FLAG)REGISTER 1bit 3 SSP1IF:Master Syn.Serial Port 1 Inter.Flag bit 1=发送/接收完成(必须由软件清除)”0=等待发送/接收“第八”更有趣的数据表注释是:“15.4.8 START/STOP Condition InterRRUPTMASKINGG1 SSPxCON3寄存器的SCIE和PCIE位允许在不支持此功能的从模式中生成中断”,寄存器定义是:-SSP1CON3 ACKTIM|PCIE|SCIE|BOEN|SDAHT|SBCDE|AHEN|DHEN所以这些“IE”启用SSPxIF以及SSP1IE,在这种情况下数据表似乎也不会出现——我只能假设它们不会出现。我还没有开始编写I2C,因为它将替换现有应用程序中的RS232 comms。一旦我知道我在做什么!我必须很快地进行编码,看看到底发生了什么。彼得。
举报

李铭鑫

2019-10-10 13:34:11
嗨,在主模式下,当软件需要参与通信时,I2C模块为那些事件生成中断。I2C硬件分别设置中断请求标志SSP1IF或SSP2IF,当一些操作完成时,它们自然需要软件注意。总线冲突事件的向上请求标志:BCL1IF和BCL2IF。所有中断请求标志位都已设置,并且可以通过软件进行测试或清除,不管中断处理是否被启用。另一方面,中断允许位、SSP1IE和SSP2IE、BCL1IE和BCL2IE都属于。在中断控制器中,确定应该对哪些中断信号作出响应。除了这些特定的中断启用设置之外,还有两个启用位INTCON寄存器:GIE/GIEH(全局中断启用/全局中断启用高优先级)和PIE/GIEL(外围中断启用)/全局中断启用低优先级)。这些值还必须适当地设置以便输入中断服务(ISR)功能。对于I2C从模式,通常在接收到与从站自身地址匹配的地址时生成中断,并且对于直到传输完成之前接收的每个数据字节,生成中断。pleted,当从机发送数据时,每个字节发送后都会有中断。除此之外,还有一些其他情况,可以通过设置控制位SSPxCON3寄存器和SSPxCON1.SSPxM模式选择字段来设置中断标志。与数据表中的时序图不一致的东西:DS41412F?图15-14:通过图15-39,它们非常详细。表15-3概述了与I2C操作相关的所有寄存器。除了研究PIC18F45K22的数据表之外,您还可以使用MCC微芯片代码配置器。对于I2C,它可以为I2C、b创建简单的中断驱动程序。不是主模式,也不是从模式。您可以查看它创建了什么代码。MSSP外围设备必须作为I2C主或从操作。PIC18...K22设备有两个MSSP模块,所以您可以将这两个模块连接在一起,并在相同的调试会话中测试从和主操作。请注意Mysil
举报

陈晨

2019-10-10 14:14:27
如果您正在使用PIC18GET MPLAB X和代码配置器,并制作I2C项目并查看代码。或者下载一个应用笔记。你有一个适用范围吗?I2C不是一个论坛上的几个句子。从调查开始。你可以切换到中断,如果你需要在它工作之后。主模式为列出的事件生成一个IUPUT标志。通常开始完成,停止完成,读取完成,写入完成。您可以通过禁用I2C中断来查询该标志。或者使用中断。你不能排队的步骤,你必须完成一个,然后开始下一个。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分