Post reply

Name:
Email:
Subject:
Message icon:

Verification:
Unregistered users must pass a verification.

Please enter the number from the picture :

shortcuts: hit alt+s to submit/post or alt+p to preview


Topic Summary

Posted by: drlucas
« on: March 25, 2014, 01:56:13 am »

Just a quick update.... with some help from the author or PIGPIO over on the raspberrypi.org forums I was able to get the mini to write out to the chip. So far, I have just changed the data from address 0x02 to 0x09 to display something festive. The physical connection on the Pi was I had to connect pin 6 and 7 on the chip to a pair of pins on the Pi. I'm amazed, and happy to see this working. Just google raspberry pi bit bang RDS and you'll see what is needed to get this to work. 
   
   s.S()
   s.TX(214)
   s.TX(02)
   s.TX(72)
   s.TX(79)
   s.TX(72)
   s.TX(79)
   s.TX(72)
   s.TX(79)
   s.TX(72)
   s.TX(79)
   s.E()
   s.cancel()
Posted by: Jan
« on: March 10, 2014, 11:27:10 am »

Yes, that's the document. An example of control is at http://pira.cz/rds/miniiicex.gif
Posted by: drlucas
« on: March 10, 2014, 11:07:42 am »

Thanks Jan for the quick response.

Is this the document you are referencing - http://pira.cz/rds/mrds192.pdf ?

I ask because it looks really promising - The I2C bus implemented fully meets the I2C specification with respect to the bus timing specified in section 2.0. It’s also compatible with I2C serial EEPROM’s so the control algorithms can be the same. That said, I'll consider myself new with interfacing to devices over i2c (my limited knowledge of serial interfaces come from either out of band management through old USR modems or cisco 2501 router).

My main objective is only to write out data to the chip (not so much to read RDS data stream) so I'll go over the pdf a few times and see what this is going to take to get going on this device...it has general purpose IO ports, so maybe after I watch a few videos too I'll be able to figure this out - this one still is a bit technical for me...but I hope I'll get there. http://www.raspberrypi.org/archives/1417

Thanks!
Ryan

The MRDS192 address is 0xD6 for write and 0xD7 for read. This old chip however has some clock timing limitations (see the pdf) so you'll probably not be able to control it using hardware based I2C peripheral. If you can access some kind of parallel port on your device, it would be possible to create the control waveforms programmatically.
Posted by: Jan
« on: March 10, 2014, 08:15:22 am »

The MRDS192 address is 0xD6 for write and 0xD7 for read. This old chip however has some clock timing limitations (see the pdf) so you'll probably not be able to control it using hardware based I2C peripheral. If you can access some kind of parallel port on your device, it would be possible to create the control waveforms programmatically.
Posted by: drlucas
« on: March 10, 2014, 04:24:43 am »

sorry to add to this post (maybe better I started a new one? - my first post on this forum - so if need be let me know).

My question is similar but I'm looking for the address for the MRDS192 and not the 1322. I scanned my i2c bus and found a device at 0x49 (see below). Is this the MiniRDS? I'm trying to send commands from the raspberry pi on my EDM transmitter which uses the mini RDS chips.

Let me know if that 0x49 sounds right, or if I'm going down the wrong path. Thanks.
Ryan

pi@FPP /var/log $ sudo i2cdetect -a 0
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-0.
I will probe address range 0x00-0x7f.
Continue? [Y/n] y
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- 49 -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Posted by: Jan
« on: October 21, 2013, 09:41:04 am »

ECC is a fixed content so you may put that group (1A) to UDG1 so the encoder will transmit that group automatically with no more support from your application.
Posted by: Ken
« on: October 21, 2013, 09:29:40 am »

Hi,

Can I send ECC with UDG1 or UDG2, if so do you have any suggestions how to send..?

/Ken
Posted by: Jan
« on: October 16, 2013, 07:53:41 pm »

CT is not supported directly by the MicroRDS. You can send CT using the same way like the RT+. That is, by sending one 4A group each minute.
Posted by: Ken
« on: October 16, 2013, 05:17:35 pm »

Hi,

I don't find any CT in the manual.  Does MicroRDS don't have CT or can I set that via i2c ?

/Ken
Posted by: Ken
« on: October 14, 2013, 09:41:45 am »

Thanks Jan, just what I needed!

It's a while since I looked into RT+ so there may be some new recomendations, please email me the info.

/Ken
Posted by: Jan
« on: October 14, 2013, 09:27:41 am »

Look at the PIRA32 manual, section 15.3.6. An example of RT+ coding is given here.

Since the MicroRDS does not accept ASCII command UDG1=, the resulting command UDG1=301600004BD7,B00824A02005 valid for PIRA32 must be sent to the MicroRDS as an infinite loop like

1) Start - Control byte - 0x67 - 0x30 - 0x16 - 0x00 - 0x00 - 0x4B - 0xD7 - 0x01 - Stop
2) wait for 1 sec.
3) Start - Control byte - 0x67 - 0xB0 - 0x08 - 0x24 - 0xA0 - 0x20 - 0x05 - 0x01 - Stop
4) wait for 1 sec.
5) go to step 1

There are some recommendations related to the RT+ transmission published by 3rd party, I think you already know them, let me know otherwise, I'll provide that information via email.
Posted by: Ken
« on: October 13, 2013, 08:35:00 pm »

Hi,

I think I need some more help on filling UDG2 group...

I know I must send content type, start marker and a length marker. And use adress 67-6C but how to set the data..?

/Ken
Posted by: Jan
« on: October 13, 2013, 06:46:44 pm »

RT+ is possible but the application must send appropriate groups in real time, that means at the same rate you need them on the RDS output. This can be done via UDG2:
1) Fill UDG2 group (3A or 11A)
2) Set UDG2CNT to 1. The group will occur on the output.
3) Wait for some time, depending on the group rate required. Typically 1 second.
4) Repeat from step 1.
Posted by: Ken
« on: October 13, 2013, 05:35:53 pm »

OK but I got everything working now even PS and RT.

Is it possible to sent RT+ with use of User Defined Group, or is RT+ only working with Pira32 and Pira132?

/Ken
Posted by: Jan
« on: October 13, 2013, 04:38:22 pm »

0x6B is 0xD6 shifted right by one bit, i.e. not including the read/write bit. Physically the hardware must send 0xD6 as a control byte. Thus the argument of the Wire.beginTransmission function seems to be the 7-bit device address only, without read/write selection. A documentation for this function should tell more.