Hallo,
Ik wil een I2C protocol implementeren in mijn ATMEGA8. Nu zie ik dat SCL en SDA respectievelijk op PORTC.4 en PORTC.5 zich bevinden. Mijn design van mijn print laat dit echter niet toe, en ik zou deze willen hebben op PORTC.0 en PORTC.1 .
Is dit mogelijk?
Het zou dienen om een DS1621 uit te lezen, aangezien mijn LM335 helemaal niet precies is, en als ik een poort aan of uitzet dit invloed heeft op de waarde uitgelezen van m'n ADC (soms wel tot 4 bits, 100mV).

Iemand ook ervaring met het uitlezen van DS1621's? Kan ik deze in serie zetten met een DS1307?

Bedankt!

SCL en SDA op andere pinnen kan wel maar dan moet je software I2C gebruiken. De interne I2C hardware gebruik je dan niet...

Je kunt 8x DS1621 aansluiten op dezelfde I2C bus en dan kan de DS1307 er nog gewoon bij...

Oké, bedankt.
Nu heb ik volgende code, van ergens hier op het forum


'start convert
I2cstart
I2cwbyte &H9E
I2cwbyte &HEE
I2cstop
'-------------
'read temperature
I2cstart
I2cwbyte &H9E
I2cwbyte &HAA
I2cstop

I2cstart
I2cwbyte &H9F
I2crbyte Tempmsb , Ack
I2crbyte Templsb , Nack
I2cstop
If Templsb = 128 Then Templsb = 5 Else Templsb = 0

Nu, waar ergens wordt het adres geselecteerd, aangezien ik er 8 kan aansluiten, en ik er nog iets bij wil aansturen.
Wordt die software I2C ook automatisch geselecteerd, of moet ik iets speciaals doen in m'n bascom code?

Nee, die &H9E is kennelijk het adres van de eerste DS1621.

Het LSB is een lees/schrijf bit R/W, vandaar de &H9E en &H9F die je ziet. De volgende 3 bits is het adres, bij &H9E zijn die allemaal hoog dus je A0/A1/A2 moeten bij dit adres allemaal aan de Vcc hangen. Je adres ziet er als volgt uit:

1001AAAR

1001 is fixed, AAA is het adres op A0/A1/A2 en R is het R/W bit...

Hoe kan je eigenlijk bij die I2C IC's het adres instellen waarop ze reageren?

Ik snap er niet veel van ...

Dus:

IC1 heeft bv adres 0
IC2 heeft bv adres 1
IC3 heeft bv adres 3

Om IC1 aan te spreken moet ik adres 0 doorsturen.

Maar hoe geef ik IC1 adres 0? Als deze IC's van de fabriek komen hoe staan die ingesteld?

Thx!

Als het maar om 2 poorten gaat --- draadjes?

Of is dat te simpel?

Op 20 juni 2010 23:05:04 schreef Scheef_schaap:
Hoe kan je eigenlijk bij die I2C IC's het adres instellen waarop ze reageren?

Ik snap er niet veel van ...

Dus:

IC1 heeft bv adres 0
IC2 heeft bv adres 1
IC3 heeft bv adres 3

Om IC1 aan te spreken moet ik adres 0 doorsturen.

Maar hoe geef ik IC1 adres 0? Als deze IC's van de fabriek komen hoe staan die ingesteld?

Thx!

Kan vaak door adres pinnen laag of hoog te trekken.

Soms zitten er adres pinnen aan, soms hebben ze een vast adres. RTFM