如何将 pcf8563 rtc 和 24lc512 eeprom 与 sda 和 scl 上的 1K 上拉电阻连接起来
how interface both pcf8563 rtc and 24lc512 eeprom with 1K pullup resistor on sda and scl
我一直在研究将 24lc512
和 pcf8563
连接在一起的代码。在 pcf8563
的分线板上,SDA
和 SCL
线上有两个 1K 上拉电阻,因此我计划对 eeprom 使用相同的电阻。
我有一个用于 eeprom 的代码,它在使用 4.7K 上拉电阻之前工作得很好,所以为了使代码适用于 1K 上拉电阻,我做了以下更改。(编码是用 XC8 编译器为 PIC16f877a
完成的)
SSPSTAT=0x80
SSPADD=(_XTAL_FREQ/(4*c))-1 //where c is 400,000
但遗憾的是,代码无法正常工作,因为 expected.Could 有人请帮我说说我应该在早期代码中进行哪些更改,以便它可以与 1K 上拉电阻一起工作。
提前致谢:)
数据表说
R = tr/Cb
在哪里
tr 是上升时间(最大指定为 1us)
Cb 是每条总线线路的容性负载,具有指定的最大值。 400 pF.
1x10^6 / 400x10^12 = 2500,所以如果接近最大电容,2.7K 是最佳选择。
1K 欧姆虽然听起来有点低,但我会尝试拆下电阻器并使用 2.7 至 4.7k 欧姆代替。如果总线线路短,只需要一套。
使用示波器检查信号形状。如果痕迹不是很好和方形,那么您需要调整电阻器或缩短总线线。如果上升时间超过1us也可能有问题。
使用低得多的总线速度会更有意义,电容不会有什么大不了的。对于压延机和小型 eeprom,100K 甚至更低的速度在大多数情况下已经足够快了。
我一直在研究将 24lc512
和 pcf8563
连接在一起的代码。在 pcf8563
的分线板上,SDA
和 SCL
线上有两个 1K 上拉电阻,因此我计划对 eeprom 使用相同的电阻。
我有一个用于 eeprom 的代码,它在使用 4.7K 上拉电阻之前工作得很好,所以为了使代码适用于 1K 上拉电阻,我做了以下更改。(编码是用 XC8 编译器为 PIC16f877a
完成的)
SSPSTAT=0x80
SSPADD=(_XTAL_FREQ/(4*c))-1 //where c is 400,000
但遗憾的是,代码无法正常工作,因为 expected.Could 有人请帮我说说我应该在早期代码中进行哪些更改,以便它可以与 1K 上拉电阻一起工作。
提前致谢:)
数据表说 R = tr/Cb 在哪里 tr 是上升时间(最大指定为 1us) Cb 是每条总线线路的容性负载,具有指定的最大值。 400 pF.
1x10^6 / 400x10^12 = 2500,所以如果接近最大电容,2.7K 是最佳选择。
1K 欧姆虽然听起来有点低,但我会尝试拆下电阻器并使用 2.7 至 4.7k 欧姆代替。如果总线线路短,只需要一套。
使用示波器检查信号形状。如果痕迹不是很好和方形,那么您需要调整电阻器或缩短总线线。如果上升时间超过1us也可能有问题。
使用低得多的总线速度会更有意义,电容不会有什么大不了的。对于压延机和小型 eeprom,100K 甚至更低的速度在大多数情况下已经足够快了。