> I am curious about what the design goals were with this project. > > 4 zones, why the R8C per zone, etc etc.
There were a couple. In no particular order: Speed - The 1wire interface is timing sensitive, and polling four zones resulted in a 15 second cycle with the old system. Responding to button presses wasn't as fast as I'd like, and the whole system was slowed down because I was doing 1wire timing in an interrupts-disabled busy loop. I was also doing serial out in software, again with busy loops. Isolation - the R8Cs are a couple bucks each. The gumstix is $120. I'd rather blow an R8C than a gumstix, although I'd rather blow the cheap discretes protecting the r8c first ;-) Protocol hiding - if I add new types of thermostats or whatnot, I only need to update the R8C programming; the I2C protocol remains the same. Timing - the 1wire protocol is timing sensitive, so I let the R8C's hardware timers manage it. The gumstix is not a real-time kernel. Fun - no description needed. The net result is that I'm using the R8C as cheap programmable peripherals, not computation units. They're only 20 pin SSOPs anyway. The gumstix does all the math and decision making, and the R8Cs do the timing sensitive stuff - each one provides a serial port, 1wire interface, and the polling logic, and just reports on what it found. Think of them as "i2c to serial+1wire converters" :-) The cheapest R8C/1A (1B has extra data flash) at digikey is $3.15 (4K flash, 384b ram). For that you get an I2C (or SPI) to pretty much *anything* converter, as the chip has two serial ports, four LED drivers, four 10bit ADC, three timers, and the usual collection of GPIO pins. The fifth R8C, the one that controls the furnace, monitors the AC phase and switches everything at zero crossings (and keeps reloading them to keep them from glitching). The voltage is too low for commodity ZC chips, which expect 120V. It's also responsible for power loss detect. _______________________________________________ geda-user mailing list [email protected] http://www.seul.org/cgi-bin/mailman/listinfo/geda-user

