Continue to Site

Welcome to

Welcome to our site! is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

how its possible to insert informations in a bus I2c.

Not open for further replies.


Member level 1
May 23, 2001
Reaction score
Trophy points
Activity points
p90ce201 problem

i have a problem
i need to solve a question : how it's possible to insert informations in a bus I2c.
When bus is in fonction, the microcontroller is dialing with all circuits that have I2c , if i want to ask with a circuit, how can i do ?
The microcontroller don't know me, i dont have adress II2.
When differents circuits want to ask to the bus they have to put the bus in that way "0" or "1" i don't remember exactly and after they can talk to the micro. I want to ask to circuits , to execute a command , and i don't want that the microcontroller know's me.


you need to gain ownership on the bus by arbitrating it.

when you will gain ownership yuo can write or read to any device on the bus.

Perhaps you should read the I²C-bus specification.

It depends on what type the other microcontroller is (Hardware I²C or Software). If hardware you should try to win bus arbitration. If software there's a big chance that the µC doesn't take into account whether there are other masters (I didn't in my designs ;-)) I guess, in that case, the µC is only transmitting a clock on the SCL wire when it has data to transmit. If it isn't too frequent you can send your data when he's silent.

I hope it helps (I'm not sure i understood the problem)


Maybe its not easy to understand
I have an tv set that dials with a lot of ci's
i need only to talk to one circuit , i want him to do a command that's all.
the type of micro is per force hardware
the type is family p90ce201
i don't want a complicate solution

In that case you just need to know the adress of the component. (should be easy to find in the datasheets from the component. When it's adjustable you could use a multimeter to detemine the extra bits on the chip)

Just send I²C data over the wire. (I guess you're gonna do it with another µC??)
You can check with a scope whether there's always a clock on the SCL-wire.

If not, generate your own and send some data in the meanwhile.

First a start condition.
Next the first byte (adress of the component)
Wait for a ack
Next byte

This is how the I²C bus works (I got some I²C code or a link for 8051 µC)

If the other µC is always generating a clock it might be a bit more difficult.
*When he allows arbitration for the bus you could try to gain busmaster access.
*You could try to send data as a slave (just use a µC that's fast enough)
*You could always use a PLL to lock on the SCL signal and use a divider in it's feedback loop. In that way you generate a clock signal for your microcontroller that's a multiple of the SCL signal. It's now easy to send data when the other µC is not using the bus.

Not open for further replies.

Part and Inventory Search

Welcome to