adrianhudson wrote:
Can someone tell me please - do I need to do anything to tell the devices which mode I am using? I have never come across and mode switching commands for any device I have looked at. Datasheets just give timings for the modes the device supports and say little else.
If you don't have to do anything to select the faster modes why do the datasheets seem to quote them as discreet modes - surely the device would support any speed up to the fasted mode it supports.
Above 1.2Mhz (I think) it stops being a pull-down/float up bus and really needs to be driven low and driven high. I recall something else when over about 3Mhz too, but I've never had anything that worked that fast.
The protocol is a PITA to do in software and often hardware gets it wrong but it can be handy for some devices. The only thing I've ever really used it with the ATmegas in both master and slave modes and Raspberry Pis (where the hardware gets it wrong, but it's right enough for most stuff). I've driven devices off a Pi at 800Mhz but the waveform is shockingly bad and even though the devices could work up to 1.2Mhz they didn't on the Pi.
-Gordon
_________________
--
Gordon Henderson.
See my
Ruby 6502 and 65816 SBC projects here:
https://projects.drogon.net/ruby/