Go Down

Topic: RDA5807SP FM Radio Receiver - i2C (Read 8112 times) previous topic - next topic

Grumpy_Mike

Yes it is an odd ball chip alright.
Here is a useful snippet
Quote
When reading use an address byte. When writing do not use an address byte.

This is from:- http://forums.parallax.com/showthread.php?131976-FM-Receiver-Module-documentation

Also
Quote
When in write transfer, data bytes is written out from MCU, and when in read transfer, data bytes is read out from RDA5807SS. There is no visible register address in I2C interface transfers.

Quote
For read transfer,
after command byte from MCU, RDA5807SS sends out the first register high byte, then the first register low byte, then the second register high byte, till receives NACK from MCU. MCU gives out ACK for data bytes besides last data byte. MCU gives out NACK for last data byte, and then RDA5807SS will return the bus to MCU, and MCU will give out STOP condition. The RDA5807SS supported two type I2C interface:RDA5807SS Mode and TEA5767 Mode. The different register defined in different interface Mode. Details refer to RDA5807SS Programming Guide.


From:-
http://www.google.co.uk/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CDYQFjAA&url=http%3A%2F%2Fwww.thebackshed.com%2Fforum%2Fuploads%2Fjman%2F2012-03-01_165913_RDA5807SS_datasheet_v1.0.pdf&ei=TwmeT9H0OsTL0QXsv_SGDw&usg=AFQjCNEqEDFHkiZATCakxMKhydZ4MHNVfA&sig2=MkxoY3MabKsvyTu_niEuTA

KC8OZA

I see what you're referencing.... but I'm not sure I understand how to implement it.  How does it know what register I'm trying to write to if I don't specify the address?

Code: [Select]


When reading use an address byte. When writing do not use an address byte.

The following snip-it works:
'========================[Write/Read data to/from FM module ]=====================
Write_ConfigRegs: ' Write Data to Configure Registers
I2COUT SDA, WrFM, [Conf2.Highbyte, Conf2.Lowbyte, Conf3.Highbyte, Conf3.Lowbyte, Conf4.Highbyte, Conf4.Lowbyte, Conf5.Highbyte, Conf5.Lowbyte, Conf6.Highbyte, Conf6.Lowbyte]
RETURN

Read_Status:
I2CIN SDA, RdFM, 0, [Status1,Status2,status3,status4]
DEBUG CRSRXY,10,1,"Status : ", HEX2 status1, " ", HEX2 status2, " ", HEX2 status3, " ", HEX2 status4, " "
RETURN
'================================================= =========================

Grumpy_Mike

I am not sure, it seems to imply it starts at zero and successive pairs of bytes go in the next register up.

ishimcity

Hello friends! I am also interested in this chip, tell me and how to record the frequency of the chip? thanks

Go Up