umh. i don't think you'll be able to grab the ADC data from the SPI interface. SPI is usually the control port (to read/set registers), not the data port..
Il giorno lunedì 23 ottobre 2017 09:59:26 UTC+2, [email protected] ha scritto: > > Hi Andrea, > > Thanks for your answer. > Yes, you're probably right. The data sheets for H3 and A64 explicitly > specifies support for TDM, but the A20 data sheet doesn't. > And yes, I'm right now on the legacy kernel, but will also look into the > mainline kernel. > As for the ADC, it also supports the SPI protocol, so I will try to get > that to work instead, unless there is somebody who actually > manged to use TDM on the A20 platform. > > Regards > Per > > Den fredag 20 oktober 2017 kl. 13:58:45 UTC+2 skrev Andrea Venturi: >> >> hi, >> >> it looks like your ADC is working in TDM mode and not really I2S (the >> wires are the same but the frames are different as you can see..). >> >> AFAIK the A10/A20 looks like (from datasheets) not being capable to do >> TDM; instead other Allwinner SOCs like H3 shoud be HW-wise capable. never >> check if the kernel driver is suitable anyway. >> >> your kernel, then, is my second remark.. it looks like you are talking >> about the "legacy kernel 3.4", from Allwinner "BSP", but here i suppose >> you'll find more skills on mainlinux 4.x from linux-sunxi.org where >> there's active development for an I2S driver. >> >> anyway it's your choice to evaluate and decide if stay with legacy or >> move on mainline. i can understand that if this is your first approach to >> linux kernel world, things could look like pretty "cloudy".. :-) >> >> have fun! >> >> Il giorno venerdì 20 ottobre 2017 10:36:53 UTC+2, [email protected] ha >> scritto: >>> >>> Hi, >>> >>> I'm new in this group and also pretty new with Linux, so I hope you have >>> patience we me if I'm asking stupid questions, >>> I'm currently working with an Olimex A20 Lime2 board, trying to >>> interface an 24 bit ADC (AD7768 from Analog Devices) >>> to the I2S interface. >>> >>> So far I have done the following: >>> >>> 1. I have the following drivers built into the kernel: >>> sunxi-i2s.ko >>> sunxi-i2sdma.ko >>> sndi2s.ko >>> sunxi-i2s.ko >>> >>> 2. The I2S interface also appears as an ALSA hardware device (#sudo >>> arecord -l) >>> I have briefly tested it without anything electrically connected to it, >>> using arecord and an oscilloscope, observing how for instance >>> LRCLK changes frequency when i change the sampling frequency in the call >>> to arecord. >>> >>> 3. AD7768 is an 8 channel 24bit ADC. It works in I2S master mode, so I >>> have configured my A20 as slave (I have updated the fex file). >>> The ADC outputs data from all channels in an interleaved manner, >>> 32bits/channel, on the same data line (I2S_DI). >>> Timing looks something like the following (one LRCLK data strobe per 8 >>> channels of data): >>> >>> _ >>> >>> _ >>> LRCLK: _| >>> |__________________________________________________________________| >>> |______________ >>> >>> >>> DIN: --< CH1 >< CH2 >< CH3 >< CH4 >< CH5 >< CH6 >< CH7 >< CH8 >>> >------------------------< CH1 >< CH2 >... >>> >>> >>> 6. I have written a small c code that uses the alsa/asound library to >>> interface the ADC. >>> My problem is that the sunxi I2S drivers only seems to support S16_LE >>> and S24_LE format and furthermore only up to 2 channels. >>> Given the timing above I think I'll need S32_LE and 8 channels. >>> >>> 7. My guess (please correct me I'm wrong) is that I need to update the >>> I2S drivers to accomplish this. >>> Being new to Linux and especially on Linux drivers, I really don't know >>> where to start. >>> I have looked into the source code of sunxi-i2s, sunxi-i2sdma, sndi2s >>> and sunxi-i2s and at least three of them have settings regarding >>> bit format and number of channels, should I change them all? >>> >>> 8. Furthermore I have looked into the Allwinner A20 manual and in this >>> it's stated that the I2S interface supports 16, 20 and 24 bits resolution, >>> so I'm not even sure that A20 supports 32 bit data words. >>> >>> >>> Grateful for any suggestions. >>> >>> Regards >>> Per >>> >> > -- You received this message because you are subscribed to the Google Groups "linux-sunxi" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
