Re: iio channel sync

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 03/09/16 21:52, Joshua Clayton wrote:
> On Saturday, September 03, 2016 03:37:50 PM Jonathan Cameron wrote:
>> On 31/08/16 23:47, Joshua Clayton wrote:
>>> Greetings,
>>>
>>> On 08/30/2016 09:26 AM, Jonathan Cameron wrote:
>>>>
>>>> On 30 August 2016 08:41:18 BST, Matt Ranostay <mranostay@xxxxxxxxx> wrote:
>>>>> On Mon, Aug 29, 2016 at 10:03 AM, Joshua Clayton
>>>>> <stillcompiling@xxxxxxxxx> wrote:
>>>>>> Jonathan,
>>>>>>
>>>>>> I have an out-of tree driver I am working on mainlining.
>>>>>>
>>>>>> The device is a sensor that gets phase and amplitude (x and y) data
>>>>>>
>>>>>> on multiple physical and/or time multiplexed channels.
>>>>>>
>>>>>> It also has up to 4 optical encoders to get physical location.
>>>>>>
>>>>>> The existing driver bundles x and y together with a snapshot
>>>>>>
>>>>>> of the encoder sums at that moment.
>>>>>>
>>>>>>
>>>>>> This seems like a good fit for iio, but one item is bothering me.
>>>>>>
>>>>>> How is synchronization between streams usually handled with
>>>>>>
>>>>>> iio drivers? Timing can be important.
>>>>> Wouldn't the trigger buffer framework be good enough for this?
>>>> Perhaps you could describe your usecase a little more?
>>>>
>>>> Is the interesting bit that you want to sync streams with different
>>>> sampling frequencies? Are those encoders better represented by a
>>>> separate driver? (In which case I have some thoughts on simple
>>>> additions to IIO trigger handling that might help - basically a
>>>> hold off on triggers until all relevant devices are attached)
>>
>>> Thanks for responding.
>>>
>>> The encoders (often a pair of them, could be up to 4) represent the position
>>> of the sensor in relation to an object to be tested. (linear movement or
>>> rotation around an axis).
>>> The Maximum sample rate of the encoders is much higher than the sensor,
>>> but they are moved by a motor or by hand, so the actual sample rate is
>>> variable and may be higher or lower that the sensor sample rate.
>>>
>>> The encoders are sometimes used as a trigger for data collection,
>> It would certainly be possible to do this by having a slightly unusual type
>> of trigger.
>>> but
>>> the encoders are also used as positional data alongside the sensor data.
>> Makes sense.
>>>
>>> The way we get around this now is to bundle a snapshot of the encoder
>>> with the sensor data and discard it later if the encoder hasn't changed and
>>> the trigger function is enabled.
>> The only slight change I'd suggest is that if the encoders are read by
>> separate hardware (presumably they are into a capture unit of some type?)
>> then you may need to have the encoder capture triggered off the same
>> trigger as the sensor data.  Thus you'd end up with two buffers that
>> could be easily fused in user space.
>>
>> That would allow  generic drivers for other users of either the sensor
>> or the encoder capture hardware.
>>
>> If they come in through the same bit of hardware (e.g. you are routing
>> them both through an fpga or similar) then fine as you have it currently.
>>
> 
> Thanks for responding to my questions. It is always hard to visualise how
> something that already exists might be re-architected, and you've given me
> enough to get my mind working on it.
>  
>> Sounds like an interesting bit of hardware ;) Some sort of radio test kit
>> around an antenna? (feel free to not answer, I'm always curious)
>>
>> Jonathan
>>>
> Haha. Yeah, its a bit of a tightrope walk trying to upstream code while
> keeping the "secret sauce" safe.
> 
> I thinks its ok to tell you it is eddy current testing equipment, used in
> non-destructive testing of metal items.
> 
> We set up a standing wave using a high speed A/C current in a coil,
> and measure distortion in the amplitude and phase of secondary
> A/C currents induced in another coil.
> 
> It can be used to find defects near the surface, such as hairline cracks,
> as well as to indirectly measure thickness and conductivity that might
> indicate metal fatigue.
> 
> Google "eddy current" if you are still curious.
> 
Cool, you learn something new every day ;).  Thanks for the info.
Looking forward to seeing the code ;)

Jonathan
> Joshua
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux