| | Re: Brainstorms
|
|
Steve: Everything is a compromise. Here is a discussion of the issues that caused us to pick 2400 baud for RoboBricks: 1) Most of the various PIC's that we use (PIC12C509A, PIC12C672, PIC16C505) run at 4MHz. The 4MHz clock rate is divided by 4 to (...) (22 years ago, 11-Aug-02, to lugnet.robotics)
|
|
| | Re: Brainstorms
|
|
(...) <snipped some reasonable arguments> This is why I recommend that 'brainstorms' goes with something like I2C. That protocol is fast and built into the chip. No software serial I/O is ever needed and every chip already speaks the protocol so (...) (22 years ago, 11-Aug-02, to lugnet.robotics)
|
|
| | Re: Brainstorms
|
|
(...) The RoboBricks project was started 2-1/2 years ago. At that time, there were no readily available and 8-pin microcontrollers with built in I2C support. The Atmel tinyAVR series had some I2C support, but the chips were extremely difficult to (...) (22 years ago, 11-Aug-02, to lugnet.robotics)
|
|
| | Re: Brainstorms
|
|
(...) Are you sure? I thought Philips had teeny-tiny microprocessors with I2C at least 10 years ago...before the I2C bus switched speeds from 100kbps to 400kbps. I2C is about 20 years old. (...) Address pins? What address pins? ---...--- Steve Baker (...) (22 years ago, 11-Aug-02, to lugnet.robotics)
|
|
| | Re: Brainstorms
|
|
(...) They may have had them, but they didn't show up in any of the catalogs I was looking at. Semiconductor companies are quite notorious for deciding to stop production on various chips. Lot's of people tried to standardize on the Motorola HC11 (...) (22 years ago, 12-Aug-02, to lugnet.robotics)
|
|
| | Re: Brainstorms
|
|
(...) I did a project with the Philips chips several years ago. I2C worked very well, the smallest chip I used was a 87C751. A little bit bigger than an 8-pin chip, but available in surface mount packages. Also, a friend of mine used a 751 as an I2C (...) (22 years ago, 12-Aug-02, to lugnet.robotics)
|
|
| | Re: Brainstorms
|
|
(...) [snip Philips uC] (...) The I2C bus is not really designed to support a bus scan. I'm not saying it can't be done, but I certainly haven't figured out how to do it. Until I see somebody who gives an extremely detailed description of how they (...) (22 years ago, 13-Aug-02, to lugnet.robotics)
|
|
| | Re: Brainstorms
|
|
Matt Lawrence wrote: > I think the addressing problem can be solved with random numbers and some > serious bus scanning. Failing that, burning a serial number into each > chip isn't that hard either. It would still require quite a bit of bus > (...) (22 years ago, 13-Aug-02, to lugnet.robotics)
|
|
| | Re: Brainstorms
|
|
(...) Since I had to support hot-pluggable devices on the bus (not my idea), I had to continually scan the bus. Unfortunately, that was several years ago and I don't remember all of the details. It took either a zero-length read or a zero-length (...) (22 years ago, 13-Aug-02, to lugnet.robotics)
|
|
| | Re: Brainstorms
|
|
Hi, (...) Weird idea ... (...) It's way simpler: You just send the address and wait for the acknowledged via the data line. Then you just don't continue ... you don't even need read access to the clock line for this. IMHO something that can carry (...) (22 years ago, 13-Aug-02, to lugnet.robotics)
|
|
| | Re: Brainstorms
|
|
(...) [snip hot pluggable] (...) That is only a partial bus scan. It does not tell you what is at each address. A full bus scan allows people to plug arbitrary devices into the bus and allows the bus master to to reliably figure out what has been (...) (22 years ago, 13-Aug-02, to lugnet.robotics)
|
|
| | Re: Brainstorms
|
|
(...) I have read this dicsussion, and have been most interested. From what I can understand (I have no current desire to read the I2C spec) the random ID number will identify that device on the bus once it is detected (or the permenant number, (...) (22 years ago, 13-Aug-02, to lugnet.robotics)
|
|
| | Re: Brainstorms
|
|
(...) I thought Philips kept a master registry of all the hardwired I2C addresses allocated to each chip vendor? That should mean that just reading the hardwired address is enough to tell you what *kind* of device you've found. ---...--- Steve Baker (...) (22 years ago, 13-Aug-02, to lugnet.robotics)
|
|
| | Re: Brainstorms
|
|
(...) There are only 1024 maximum addresses. There are more than 1024 I2C chips out there. Ergo, there are address conflicts between some of the chips out there. Unfortunately, there is no requirement that 2 chips at the same address implement the (...) (22 years ago, 13-Aug-02, to lugnet.robotics)
|
|
| | Re: Brainstorms -- A Simple Unique Addressing Scheme
|
|
There's been a lot of messages on how to determine unique addressing for intelligent peripherals. Model railroading has solved this problem in a fairly easy way. THe NMRA (National Model Railroading Association) defined the DCC (Digital Command (...) (22 years ago, 14-Aug-02, to lugnet.robotics)
|
|
| | Re: Brainstorms
|
|
(...) Andy: I can understand not wanting to read the I2C spec., I haven't done it in a while myself. However, you are going to have to do a little homework on I2C. There is no real way around it, the bus is sufficiently complex that one's intuition (...) (22 years ago, 14-Aug-02, to lugnet.robotics)
|
|
| | Re: Brainstorms -- A Simple Unique Addressing Scheme
|
|
(...) [snip DCC references] (...) That might be workable. I2C does not really have a broadcast message (General Call is close, but not quite). However, just scanning the I2C bus for 1024 addresses to find what the current address of the module is (...) (22 years ago, 14-Aug-02, to lugnet.robotics)
|