I am wondering about the experience of users in this site with the 1-Wire interface as far as reliability in communications and ease of use.
From my perspective, the main issue I see is the lack of native 1-Wire modules in microcontrollers, which means it has to be done in software with some timers. I've even used it a little bit with FPGAs using Maxim's own 1-Wire FPGA syntesizable module, but the results were pretty horrendous since it didn't work and I ended up using a software solution (which requires careful timing). Perhaps using an actual timer with capture/compare would have made a few things easier.
So, from your perspective:
1) Has it been reliable and useful in your projects?
2) How did you implement the communications interface?
Any tips/tricks that make it easy to use would be greatly appreciated.
Answer
I've had bad experience with 1-wire too. 1-wire performs poorly in presence of EMI**.
IMHO, the only reasonable niche for 1-wire are applications where every wire and connector pin is very precious, and slow communication rate is acceptable. These are usually low cost and high volume products, for example: disposable medical applicators, printer ink cartridges, meshes of wired peripherals in non-trivial numbers.
Generally, I don't see a point for choosing 1-wire over I2C, when peripherals are on the same PCB as the master. Wiring is affordable within PCB.
There are I2C to 1-wire bridge ICs, which can take low-level burden from the main controller.
** I2C is not the most EMI-resilient bus either. Still, I2C works better than 1-wire in presence of EMI.
No comments:
Post a Comment