How to use Attiny85 as I2C programmer for SDA3302-5

Hello,
I'm trying to program a Siemens SDA3302-5 chip with an Attiny85 via I2C.
But the data coming out of the I2C Bus doesn't look like expected and the 3302 chip does not do what is should.... Does anybody have an idea?

This is what I have so far:

#include <TinyWire.h>
#define I2C_ADDR     B011000000                // I2C Address selection on SDA3302-5 chip byte:  1 1 0 0 0 MA1 MA0 0 A

void setup(){
  TinyWire.begin();                          // initialize I2C lib

  TinyWire.beginTransmission(I2C_ADDR);  
  TinyWire.send(B01100111);                // Prog. divider byte 1     
  TinyWire.send(B01001101);                // Prog. divider byte 2   
  TinyWire.send(B10101110);                // Control info. byte 1    
  TinyWire.send(B00000000);                // Control info. byte 2
  TinyWire.endTransmission();              // Send to the slave 

}

void loop(){
}

.
.
.
The description of the I2C bus on Siemens side is the following:

SCL, SDA

Data are exchanged between the processor and the PLL on the I2C bus. The clock is produced by the processor (input SCL), while pin SDA works as an input or output depending on the direction of the data (open collector; external pullup resistor). Both inputs have hysteresis and a low pass characteristic, which enhances the noise immunity of the I2C bus.

The data from the processor are applied to an I2C bus controller and filed in registers according to their function. When the bus is free, both lines are in the marking state (SDA, SCL are high). Each telegram begins with a start condition and ends with the stop condition.
Start condition: SDA goes low while SCL remains high;
Stop condition: SDA goes high while SCL remains high.

All further data exchanges occur while SCL is low and are accepted by the controller with the positive clock edge. For what follows, refer to the table of logic allocations. All telegrams are transmitted byte by byte, followed by a ninth clock pulse, during which the controller puts the SDA line on low (acknowledge condition). The first byte consists of seven address bits, with which the processor selects the PLL from a number of peripheral devices (chip select). The eighth bit is always low. In the data portion of the telegram the first bit of the first or third data byte determines whether a divider ratio or control information follows. In each case the byte following the first byte must be of the samedata type (or a stop condition).

.
.
The only signal I see is:
https://i.ibb.co/c3W61WJ/MAP001.png

Does anybody know if this is possible?

Best regards
Sebastian

The I2C address is a 7bit value, try B01100000 as the value of I2C_ADDR (as you failed to post a wiring diagram I simply assume you connected CAS to GND).

Thank you..
It was a typo in this thread. In my Code it was correct.

I will check the wiring tomorrow.

TY

Hi!
I found the wiring diagram. I would like to swap the PIC (button left) with the Attiny85 as an I2C programmer for the SDA3302-5 chip.

That means you didn't copy/paste the code. What else might be different between what you actually used and what you posted? Don't waste out time, post exactly that code that you use for testing!

If you actually use that wiring the I2C access is either 0x63 or 0x62 depending on the status of jumper 1.
I would not use R29 and R30 but use external pull-ups instead.

Thank you very much and sorry for my late response.
I didn't find the time to reply or test until now.

But i will let you know if I tested it.

PS: I was copying the code, but accidentely grabbed a version I was testing with. I wanted to see if there is anything changing on the oscilloscope when changing the address.