Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronic 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.

Register Log in

how its possible to insert informations in a bus I2c.

Status
Not open for further replies.

CHESS

Member level 1
Joined
May 23, 2001
Messages
40
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,286
Activity points
133
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.
???
 

shawndaking

Full Member level 3
Joined
Jun 20, 2001
Messages
187
Helped
12
Reputation
24
Reaction score
6
Trophy points
1,298
Activity points
1,077
i2c

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.
 

Antharax

Full Member level 4
Joined
Dec 31, 1999
Messages
208
Helped
14
Reputation
28
Reaction score
1
Trophy points
1,298
Activity points
2,865
Perhaps you should read the I²C-bus specification.
h**p://w*w.semiconductors.philips.com/buses/i2c/facts/

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)

Antharax
 

CHESS

Member level 1
Joined
May 23, 2001
Messages
40
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,286
Activity points
133
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
 

Antharax

Full Member level 4
Joined
Dec 31, 1999
Messages
208
Helped
14
Reputation
28
Reaction score
1
Trophy points
1,298
Activity points
2,865
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.
 

Status
Not open for further replies.
Toggle Sidebar

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Top