I wonder if someone can point out my mistake. I am trying to use I2C to communicate. My Master is the Panda II and Slave is DS1077 Programmable Oscillator.
So you’re not addressing this device correctly - the device address (in 7-bit nomenclature) is 1011xxx, where the XXX is A2, A1, A0 in order. If they’re all grounded, then it’s address would be 0x58.
I’m surprised that running at a slower clock speed made a difference; although this device may be sensitive to that (you could check the datasheet if you wanted)
I2C is described https://www.ghielectronics.com/docs/12/i2c and is really the key here. I2C addresses are always represented as a 7-bit address, whereas many places (like the bus pirate example you showed from HaD) explain them with TWO full 8-bit addresses, one for reading and one for writing - while technically correct when considered from a bit-banging perspective or from a logic analyser, the abstraction layer should always represent this as the 7-bit address without the R/W bit. Checking the datasheet showed me the address should be the bit pattern I showed earlier, and you simply omit the 8th read/write bit. That’s how I established that 0x58 would be one of the possible addresses (the “default” if no address lines on the chip are tied high).