Questions tagged «slave»

7
I2C从站地址未确认(有时)
我正在尝试使用I2C与远程连接的FRAM(Ramtron的FM24C04)进行通信。此内存嵌入在板上,可以随时将其插入系统或从系统中卸下(在卸下内存之前,通信已正确终止)。 问题是:刚插入包含FRAM的卡后,有时,它不确认地址。 信号测量 我测量了信号以查看发生了什么,看来在两种情况下(工作和不工作)的计时都可以。 正确的I2C通信(读取3个字节): I2C FRAM地址未确认(从机地址已正确发送): 为了解决这个问题已经采取的行动(没有成功) 插入带有嵌入式FRAM的卡后添加的延迟,以确保遵守电源顺序。 检测到未确认从站地址后,I2C停止生成 I2C总线配置 一个主机(ST的STM32F205微控制器) 三个从机(Microchip的EEPROM 24AA1025,Maxim IC的RTC DS1339C和Ramtron的远程FRAM FM24C04 一个I2C电平转换器(Maxim IC提供的MAX3373E)用于允许主机与FRAM之间的通信 总线频率设置为100 kHz 编辑(2013-04-17) 首先,谢谢大家的评论。 由于有很多建议,所以这里是我所做调查的描述。 原理图 下图显示了I2C总线的简化原理图: I2C_SDA和I2C_SCL信号直接连接到微控制器,FRAM_SDA和FRAM_SCL信号连接到FRAM。请注意,使用村田制作所的BLM18铁氧体对连接到FRAM的SDA和SCL信号进行滤波。 FRAM的连接方式如下: NC(引脚1)->未连接 A1(引脚2)-> GND A2(引脚3)-> GND VSS(引脚4)-> GND SDA(引脚5)-> FRAM_SDA SCL(引脚6)-> FRAM_SCL WP(引脚7)-> GND(无写保护) VDD(引脚8)-> + 5V FRAM卡说明 该卡是仅嵌入FRAM的“类似ISA”卡。 调查 减慢频率 我在将SCL频率设置为50kHz和10kHz的情况下进行了测试。我用示波器测量了SCL信号,以确保它处于预期的频率。 这些修改不能解决问题。我检查了时序,它们在FRAM数据表的规格之内。 …

5
多个arduino通信(1个主设备,n个从设备)
我想开发一个包含以下内容的主/从网络: 1个Arduino主机,可读取传感器并根据传感器信号生成速度斜坡曲线,然后将这些斜坡发送给从机 3个(或更多)Arduino从设备,它们按照主设备发送的斜坡控制12V伺服电机的速度 什么是实现此目的的良好通信协议?串行(SPI)?I2C?还有吗 如果是串行的,那么新的Arduino Leonardo是一个不错的选择吗?选择协议时应考虑哪些问题? 我在想类似的东西: 主: void loop() { update_ramps() for(int i=0; i< num_slaves; i++) { send_to_all(i, ramps[i]); } } 从站1: const int id = 1; int recived_id, recived_value; void loop() { read_data(); if(recived_id == id) { do_motor_step(recived_value); } } 串行通信,其中主机的RX / TX发送到所有从机。 这似乎是一个合理的解决方案吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.