hello. I want use I2C program. so, I used twi_master_using_app_twi example. SDA is output only 1byte(0x21). I need to output a continuous 5byte. Where do I need to modify the part. thank you.
hello. I want use I2C program. so, I used twi_master_using_app_twi example. SDA is output only 1byte(0x21). I need to output a continuous 5byte. Where do I need to modify the part. thank you.
Hi,
On the image in your comment you are sending a 7 bit address (0x98 >> 1) with a write bit. You also get a Not Acknowledge (NACK) bit in the end. The 9th bit on the SCK is for the NACK bit.
Read about NACK and addresses in the I2C spec here: I2C Bus Specification. Read about the difference between 8 and 7 bits addresses and why you right shift some addresses here.
The NACK you get is important to note. It signifies that you are trying to transfer a byte, but no slave is responding. This is often due to one of the following reasons:
Hi,
On the image in your comment you are sending a 7 bit address (0x98 >> 1) with a write bit. You also get a Not Acknowledge (NACK) bit in the end. The 9th bit on the SCK is for the NACK bit.
Read about NACK and addresses in the I2C spec here: I2C Bus Specification. Read about the difference between 8 and 7 bits addresses and why you right shift some addresses here.
The NACK you get is important to note. It signifies that you are trying to transfer a byte, but no slave is responding. This is often due to one of the following reasons:
thank you for your support. I want master communication. so, set 0x98>>1 with a write bit. I wrong master address? SCK and SDA pin is right.
You need 8 bits to write 0x98 (b1001 1000) and the drivers expect a 7 bit address. Hence we can definitely say that you need to right shift the address 1 bit as you do. The drivers will take care of assembling the 7 bit address and the R/W bit. This means that as far as I can see you are doing everything right with regards to the address and R/W bit. What kind of slave do you use? What is the part number? Are you sure it has power?
I understand 7bit address. thank you. I will use slave name is TM1640 (Led).
As far as I can see from the datasheet found here the TM1640 does not use TWI. It uses Dual-line Serial Interface, which is similar, but not compatible. I don't think you can use SPI either. Hence you will have to write your own software driver based on the timing diagrams in the datasheet, Chapter VI. "Description the interfaces". You can do some google searching for TM1640 drivers and you will probably find some inspiration.
TM1640 is not compatible? I just want to send continuous data. So, if possible use the SPI example?