Documentation about DMA

Hi everyone!

I would like to design a custom serial interface to a GPS-Chip. This chip provides the data with 4 data lines and one clock line. In order to do that, I would like to set up a DMA (or something similar) to read the data from a GPIO Port whenever the clock-pin changes state. Unfortunately I have found no proper documentation about a DMA on the Snapdragon 410 (only about BAM in combination with the standard serial interfaces).
Could someone please tell me if that is possible at all and where to find documentation about that?
Thank you!

Cheers
Raphael

Hi @Raphael

Sorry for any delayed responsses, I am out of the office this week on business travel. Can you point me to a datasheet or something showing the data protocol please. Unfortunately your problem description doesn’t give me quite enough information to understand the problem and to help us figure out a potential solution. What is the clock rate? How are the packets framed (example 0x5, 0xA start and stop), what is the data polarity (high or low), do you need to capture data on both edges of the clock, etc.?

Full Disclosure: I am an employee of Qualcomm Canada, any opinions I might have expressed may not reflect the opinions of my employer…

Thank you for your fast response!

We would like to use a MAX2769 (https://www.maximintegrated.com/en/products/comms/wireless-rf/MAX2769.html). However we just found out, that it also supports a serial interface that is mainly a SPI operating in master mode (see paragraph DSP Interface in the datasheet).
This is already very helpful but there are still some problems since the Snapdragon can’t operate in SPI slave-mode.
Do you have a good solution?
A possible solution we are thinking about is to use UART and operate it asynchronously (operating the MAX-chip with a crystal). Do you think that might work?

After a lot of googling, the only possibility we see to use the DragonBoard is that we somehow manage to configure the DMA such that it reads four GPIO-Pins (or more) on every rising edge of a GPIO on which the clock signal is put.
The data are not Byte-based: Over a period of 2ms there come 4 Bit in parallel with a frequency of 8MHz.
Could you please help us with that? If it is not possible, I think we have to search for another development board…

Hi @Rafael

You do realize that the 410c DragonBoard already has Location circuitry on board, and that it supports GPS, GLONASS and BieDou, so I am not quite sure why you want to add another GPS circuit. If you need higher speed location fixes then you could also use a Telit SE868 V3 module which is a GPS receiver with a simple UART interface (available from Arrow.com). If you just want an external GPS antenna, then take a look at the App Note: Adding U.FL Antenna Connectors to DragonBoard 410c and Validating GPS on Android http://linaro.co/1XtcfSr

If you must use the Maxim GPS part, then you will need a bridge chip between the Maxim part and the host processor. I believe that the FTDI FT4222H would be a good choice. The FT4222H would connect to the USB port on the High speed connector (no need for an external USB cable, and it will not use up one of the USB ports on the DragonBoard 410c) and the Maxim receiver. The FT4222H runs Slave SPI at up to 20Mbps.

Full Disclosure: I am an employee of Qualcomm Canada, any opinions I might have expressed may not reflect the opinions of my employer…

We need specifically this chip because we want to implement our own GPS-algorithm and compare it to the standard GPS module.
Your tip with the FT4222H was very helpful, thank you so much!!
However we found an even better chip, the FT232H which supports input on 4 parallel lines. What do you mean by “it will not use up one of the USB ports on the DragonBoard 410c”? Which port should we connect it to if not to the USB type-A-connector?

Hi @Raphael:

You asked

What do you mean by “it will not use up one of the USB ports on the DragonBoard 410c”? Which port should we connect it to if not to the USB type-A-connector?

Please read the 96Boards documentation here: Consumer Edition (CE) you will find that there is a 4th USB port on the High Speed Connector (Pins 51 and 53) on every board. When you design your mezzanine card, connect the FT232H data lines (or whatever bridge chip you end up with) directly to the USB pins on the High speed connector.

I had a quick read through the FT232H and the MAX2769 datasheets, I don’t think that the two 4-bit parallel protocols are compatible, however this is your design and you may find a way to make it work.

I am assuming that you are laying out your own circuit board. You will not be able to hand wire this circuitry and expect it to work. The GPS signal is very small (~ -160dBm) and very sensitive to external noise sources, the USB signals are very high speed (480mbps), your circuitry will require very careful PCB design and layout in both the RF and USB sections.

Full Disclosure: I am an employee of Qualcomm Canada, any opinions I might have expressed may not reflect the opinions of my employer.

We are aware of the issues you pointed out and I think we know how to address them.

But we just realized, that the GPS-receiver on the SOM is a very similar chip to the MAX we were thinking of. This means that if we could access the raw-data it provides directly with android as OS, we wouln’t even need any additional hardware.
Could you tell us if and how that is possible?

I am not sure what GPS receiver you are talking about (the word SOM is confusing, do you mean the Dragonboard 410c, or do you mean the Telit module we discussed earlier?), but I think you mean the WGR7640 that is on the DragonBoard 410c. The WGR7640 is just an RF front-end, it does not have an A2D conversion stage, the analog information that it outputs on the I/Q signal pairs is similar the digital information that is coming from the MAX2769. The majority of the GPS processing (A2D conversion, carrier detection, noise jammer suppression, etc.) is performed in dedicated hardware inside the 410c chip. There is no access to any of the intermediate information, all you get is the fully processed GPS results out. I don’t think you will be able to use this for your research.

Full Disclosure: I am an employee of Qualcomm Canada, any opinions I might have expressed may not reflect the opinions of my employer.

Sorry for confusing you, I indeed meant the WGR7640. I see that it is not possible to get the raw data with Android but would it be possible to get the analog information of the I/Q signal pairs with a custom ROM?
Thank you very much for your help so far!!