Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.arch.embedded > #26794

Re: MCU mimicking a SPI flash slave

From David Brown <david.brown@hesbynett.no>
Newsgroups comp.arch.embedded
Subject Re: MCU mimicking a SPI flash slave
Date 2017-06-15 23:37 +0200
Organization A noiseless patient Spider
Message-ID <ohuuft$lm1$1@dont-email.me> (permalink)
References (1 earlier) <ohsp5r$79v$1@dont-email.me> <8hq0B.195995$B23.172267@fx37.am4> <ohubh3$a2g$1@dont-email.me> <q3z0B.72490$wG6.62543@fx38.am4> <ohurrv$bbq$1@dont-email.me>

Show all headers | View raw


On 15/06/17 22:52, rickman wrote:
> Tom Gardner wrote on 6/15/2017 1:01 PM:
>> On 15/06/17 17:13, rickman wrote:
>>> Tom Gardner wrote on 6/15/2017 3:01 AM:
>>>> On 15/06/17 02:54, rickman wrote:
>>>>> John Speth wrote on 6/14/2017 1:44 PM:
>>>>>> Hi folks-
>>>>>>
>>>>>> I'm hoping to tap into your various experiences to see if what I'm
>>>>>> thinking
>>>>>> is practical.
>>>>>>
>>>>>> Our customer has a device into which a Datakey is plugged to 
>>>>>> extract data
>>>>>> stored in the device.  The Datakey is a really just a trade name 
>>>>>> for a SPI
>>>>>> flash with ergonomic features that resemble a real key (see 
>>>>>> datakey.com).
>>>>>> Our customer would like to replace the Datakey with a new design 
>>>>>> that will
>>>>>> transmit the data wirelessly instead of storing it to the Datakey SPI
>>>>>> flash.
>>>>>>
>>>>>> We're proposing a design based on an MCU which will appear as a 
>>>>>> SPI slave
>>>>>> flash device, store the data pumped to it from the customer's 
>>>>>> device, and
>>>>>> forward it wirelessly.  I'm wondering if it's practical to 
>>>>>> accomplish it.
>>>>>> The firmware would have to be totally responsive temporally and in 
>>>>>> data
>>>>>> content.  That sounds like a tough hill to climb that requires 
>>>>>> getting the
>>>>>> interface just right, nearly perfect.  I see a lot of pitfalls 
>>>>>> that could
>>>>>> make the effort a dead end.
>>>>>>
>>>>>> Does anybody have any success or failure stories to relate that 
>>>>>> would help
>>>>>> us gauge the feasibility of the proposed design?
>>>>>
>>>>> I have no experience in building such a product, but why not use an 
>>>>> actual
>>>>> SPI
>>>>> data flash as the intermediate storage while the MCU monitors the 
>>>>> action
>>>>> and
>>>>> forwards the data?  This would require periods when the MCU could 
>>>>> read the
>>>>> data
>>>>> flash.  Is that possible or practical?
>>>>>
>>>>> I had a design that needed a 30 MHz SPI like interface (not entirely
>>>>> compatible
>>>>> though) which was designed to read/write registers.  I considered 
>>>>> using a
>>>>> fast
>>>>> CPU to emulate the interface in software, but it just couldn't meet 
>>>>> the
>>>>> timing.
>>>>> Even with a 700 MIPS processor I wasn't sure it could receive the
>>>>> command to
>>>>> read a register and then get the data onto the output fast enough.  
>>>>> I'm
>>>>> not sure
>>>>> of the timing of the SPI interface you have, but it will likely be 
>>>>> hard to
>>>>> emulate the SPI in software.
>>>>
>>>> That sounds easy for the XMOS processors:
>>>>  - multicore (up to 32 100MIPS cores)
>>>>  - FPGA-like i/o, e.g. SERDES, buffers, programmable
>>>>    clocks to 250Mb/s, separate timer for each port
>>>>  - i/o timing changes can be specified/measured in
>>>>    software with 4ns resolution
>>>>  - guaranteed latencies <100ns
>>>>  - *excellent* programming model based on CSP
>>>>    (summary: of "Occam in C")
>>>>  - Eclipse-based dev environment
>>>
>>> Any yet the XMOS can't run fast enough to return a result in the time
>>> available.  What a pity, all dressed up an nowhere to go.
>>
>> You'll have to explain that, because I don't understand
>> what you are referring to.
> 
> Maybe I don't understand the speed of the XMOS.  Nothing you write above 
> says to me it is any faster than the 700 MIPS processor I considered. 
> Nothing written above would allow it to perform the task any differently 
> than the bit banging approach I initially considered.

The XMOS devices clock at 500 MHz, with a dual-issue CPU for 1000 MIPS. 
And it really is 1000 MIPS - all code in data is in single-cycle SRAM. 
There is no cache, no prefetches, no branch prediction - everything is 
as fully deterministic as on a simple 8-bit microcontroller.  But that 
does require at least 5 hardware threads - the maximum for a single 
thread is 100 MHz, 200 MIPS.  (Some devices run at 400 MHz, and 
therefore fewer MIPS.  And older devices have only single-issue CPUs.)

The hardware timers, input/outputs, and serial-to-parallel and 
parallel-to-serial converters attached to the IO pins can handle 10 ns 
timing.

Of course, no one had mentioned that so far in this thread - so unless 
you were familiar with the devices, you would not know that.

> 
> So what are you confused about?
> 
> Maybe you don't understand the problem.  A bit serial data port (two 
> bits wide actually, but that is not relevant) provides data, address and 
> a two bit command word serially.  The last bit of the command work is 
> indicated by a "command" signal going high during that bit.  Data is 
> clocked in on the rising edge of the clock.  When the command word is a 
> read, the read data is provided serially starting on the subsequent 
> falling edge.  This provides 15 ns from rising edge to falling edge.  It 
> is possible to prefetch the read data based on the shifted address on 
> each rising edge until the command signal is asserted.  This helps with 
> timing of the memory fetch, but still, that data has to be presented to 
> the serial port output in 15 ns and updated every 30 ns.
> 
> I'd like to see code that will make this work.  Or maybe you weren't 
> addressing my previous application?  For the OP, can the XMOS emulate a 
> 30 Mbps SPI port?

The XMOS has parallel/serial converters for every GPIO pin.  For an 
application like this, you would use an 8-bit SERDES on the MISO and 
MOSI pins, and use the clock pin to trigger the transfers.

> 
> 
>>>> Currently I'm managing to count transitions in
>>>> software on two 50Mb/s inputs, plus do
>>>> simultaneous USB comms to a host computer.
>>>
>>> Can you output a result before the next input transition?
>>
>> Yes and no.
>>
>> Yes: the output (to a host processor and/or LCD)
>> proceeds in parallel with the next capture phase.
> 
> I'm referring to bit I/O using the same 50 MHz clock.
> 
> 
>> No: in the current incarnation there is a short gap
>> between capture phases as the results are passed
>> from one core to another and the next capture phase
>> is started. While it isn't important in my application,
>> I may be able to remove that limitation in future
>> incarnations.
> 
> That's a lot more than a "short" gap in the context of a fast clock.
> 
> 
>>>> Processors plus £10 devkit available from Farnell
>>>> and DigiKey.
>>>
>>> Not a very good processor to use in cost conscious applications.  The 
>>> lowest
>>> price at Digikey is $3 at qty 1000.  They can't make a part in the 
>>> sub-dollar
>>> range?
>>
>> Don't presume everybody has your constraints.
> 
> I don't, but not everyone has *your* constraints.  If a processor can't 
> be sold in a low cost product, it cuts off the largest volume parts of 
> the market including the app I am looking at presently.
> 

You get a lot for your money with an XMOS - but not every application 
needs that power, and then your money is wasted.  They are certainly not 
as cheap as a small microcontroller, but if the alternative is an FPGA, 
they suddenly look much better value.

Back to comp.arch.embedded | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

MCU mimicking a SPI flash slave John Speth <johnspeth@yahoo.com> - 2017-06-14 10:44 -0700
  Re: MCU mimicking a SPI flash slave Don Y <blockedofcourse@foo.invalid> - 2017-06-14 16:30 -0700
  Re: MCU mimicking a SPI flash slave rickman <gnuarm@gmail.com> - 2017-06-14 21:54 -0400
    Re: MCU mimicking a SPI flash slave Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-06-15 08:01 +0100
      Re: MCU mimicking a SPI flash slave rickman <gnuarm@gmail.com> - 2017-06-15 12:13 -0400
        Re: MCU mimicking a SPI flash slave Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-06-15 18:01 +0100
          Re: MCU mimicking a SPI flash slave rickman <gnuarm@gmail.com> - 2017-06-15 16:52 -0400
            Re: MCU mimicking a SPI flash slave David Brown <david.brown@hesbynett.no> - 2017-06-15 23:37 +0200
              Re: MCU mimicking a SPI flash slave rickman <gnuarm@gmail.com> - 2017-06-15 18:15 -0400
                Re: MCU mimicking a SPI flash slave David Brown <david.brown@hesbynett.no> - 2017-06-16 09:25 +0200
                Re: MCU mimicking a SPI flash slave rickman <gnuarm@gmail.com> - 2017-06-16 13:52 -0400
                Re: MCU mimicking a SPI flash slave David Brown <david.brown@hesbynett.no> - 2017-06-18 22:56 +0200
                Re: MCU mimicking a SPI flash slave rickman <gnuarm@gmail.com> - 2017-06-19 00:21 -0400
                Re: MCU mimicking a SPI flash slave David Brown <david.brown@hesbynett.no> - 2017-06-19 09:02 +0200
                Re: MCU mimicking a SPI flash slave rickman <gnuarm@gmail.com> - 2017-06-19 08:36 -0400
                Re: MCU mimicking a SPI flash slave David Brown <david.brown@hesbynett.no> - 2017-06-19 14:47 +0200
                Re: MCU mimicking a SPI flash slave rickman <gnuarm@gmail.com> - 2017-06-19 09:23 -0400
                Re: MCU mimicking a SPI flash slave David Brown <david.brown@hesbynett.no> - 2017-06-19 15:34 +0200
                Re: MCU mimicking a SPI flash slave rickman <gnuarm@gmail.com> - 2017-06-20 00:16 -0400
                Re: MCU mimicking a SPI flash slave David Brown <david.brown@hesbynett.no> - 2017-06-20 09:49 +0200
                Re: MCU mimicking a SPI flash slave rickman <gnuarm@gmail.com> - 2017-06-20 22:44 -0400
                Re: MCU mimicking a SPI flash slave David Brown <david.brown@hesbynett.no> - 2017-06-21 12:10 +0200
                Re: MCU mimicking a SPI flash slave rickman <gnuarm@gmail.com> - 2017-06-21 12:40 -0400
                Re: MCU mimicking a SPI flash slave Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-06-21 18:19 +0100
                Re: MCU mimicking a SPI flash slave rickman <gnuarm@gmail.com> - 2017-06-21 14:34 -0400
                Re: MCU mimicking a SPI flash slave Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-06-21 21:41 +0100
                Re: MCU mimicking a SPI flash slave rickman <gnuarm@gmail.com> - 2017-06-21 17:14 -0400
                Re: MCU mimicking a SPI flash slave edward.ming.lee@gmail.com - 2017-06-21 13:54 -0700
            Re: MCU mimicking a SPI flash slave Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-06-15 23:33 +0100
              Re: MCU mimicking a SPI flash slave rickman <gnuarm@gmail.com> - 2017-06-15 23:12 -0400
                Re: MCU mimicking a SPI flash slave Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-06-16 07:05 +0100
                Re: MCU mimicking a SPI flash slave rickman <gnuarm@gmail.com> - 2017-06-16 02:27 -0400
  Re: MCU mimicking a SPI flash slave Tim Wescott <seemywebsite@myfooter.really> - 2017-06-14 23:17 -0500
  Re: MCU mimicking a SPI flash slave Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-06-15 08:03 +0100
  Re: MCU mimicking a SPI flash slave David Brown <david.brown@hesbynett.no> - 2017-06-15 09:14 +0200
    Re: MCU mimicking a SPI flash slave Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-06-15 08:25 +0100
      Re: MCU mimicking a SPI flash slave David Brown <david.brown@hesbynett.no> - 2017-06-15 10:02 +0200
        Re: MCU mimicking a SPI flash slave Reinhardt Behm <rbehm@hushmail.com> - 2017-06-15 16:25 +0800
          Re: MCU mimicking a SPI flash slave David Brown <david.brown@hesbynett.no> - 2017-06-15 10:32 +0200
            Re: MCU mimicking a SPI flash slave Reinhardt Behm <rbehm@hushmail.com> - 2017-06-15 21:48 +0800
          Re: MCU mimicking a SPI flash slave Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-06-15 10:09 +0100
        Re: MCU mimicking a SPI flash slave Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-06-15 09:41 +0100
          Re: MCU mimicking a SPI flash slave David Brown <david.brown@hesbynett.no> - 2017-06-15 13:04 +0200
            Re: MCU mimicking a SPI flash slave Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-06-15 12:31 +0100
              Re: MCU mimicking a SPI flash slave David Brown <david.brown@hesbynett.no> - 2017-06-15 14:20 +0200
            Re: MCU mimicking a SPI flash slave rickman <gnuarm@gmail.com> - 2017-06-15 17:46 -0400
              Re: MCU mimicking a SPI flash slave David Brown <david.brown@hesbynett.no> - 2017-06-16 13:21 +0200
                Re: MCU mimicking a SPI flash slave stephen@mpeforth.com (Stephen Pelc) - 2017-06-16 13:55 +0000
                Re: MCU mimicking a SPI flash slave David Brown <david.brown@hesbynett.no> - 2017-06-16 16:34 +0200
                Re: MCU mimicking a SPI flash slave stephen@mpeforth.com (Stephen Pelc) - 2017-06-16 15:40 +0000
                Re: MCU mimicking a SPI flash slave David Brown <david.brown@hesbynett.no> - 2017-06-19 00:47 +0200
                Re: MCU mimicking a SPI flash slave stephen@mpeforth.com (Stephen Pelc) - 2017-06-21 15:47 +0000
                Re: MCU mimicking a SPI flash slave David Brown <david.brown@hesbynett.no> - 2017-06-21 19:15 +0200
                Re: MCU mimicking a SPI flash slave stephen@mpeforth.com (Stephen Pelc) - 2017-06-21 15:50 +0000
                Re: MCU mimicking a SPI flash slave David Brown <david.brown@hesbynett.no> - 2017-06-21 19:16 +0200
                Re: MCU mimicking a SPI flash slave stephen@mpeforth.com (Stephen Pelc) - 2017-06-21 18:00 +0000
                Re: MCU mimicking a SPI flash slave David Brown <david.brown@hesbynett.no> - 2017-06-22 11:24 +0200
                Re: MCU mimicking a SPI flash slave rickman <gnuarm@gmail.com> - 2017-06-22 12:12 -0400
                Re: MCU mimicking a SPI flash slave rickman <gnuarm@gmail.com> - 2017-06-16 14:22 -0400
                Re: MCU mimicking a SPI flash slave David Brown <david.brown@hesbynett.no> - 2017-06-19 03:15 +0200
                Re: MCU mimicking a SPI flash slave rickman <gnuarm@gmail.com> - 2017-06-19 00:54 -0400
                Re: MCU mimicking a SPI flash slave David Brown <david.brown@hesbynett.no> - 2017-06-19 10:30 +0200
                Re: MCU mimicking a SPI flash slave albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2017-06-19 12:54 +0200
                Re: MCU mimicking a SPI flash slave David Brown <david.brown@hesbynett.no> - 2017-06-19 13:49 +0200
                Re: MCU mimicking a SPI flash slave rickman <gnuarm@gmail.com> - 2017-06-19 09:28 -0400
                Re: MCU mimicking a SPI flash slave rickman <gnuarm@gmail.com> - 2017-06-19 09:19 -0400
                Re: MCU mimicking a SPI flash slave David Brown <david.brown@hesbynett.no> - 2017-06-19 16:23 +0200
                Re: MCU mimicking a SPI flash slave rickman <gnuarm@gmail.com> - 2017-06-19 23:57 -0400
                Re: MCU mimicking a SPI flash slave David Brown <david.brown@hesbynett.no> - 2017-06-20 12:36 +0200
                Re: MCU mimicking a SPI flash slave rickman <gnuarm@gmail.com> - 2017-06-20 08:20 -0400
                Re: MCU mimicking a SPI flash slave anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-06-19 14:44 +0000
                Re: MCU mimicking a SPI flash slave albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2017-06-19 21:39 +0200
                Re: MCU mimicking a SPI flash slave Cecil Bayona <cbayona@cbayona.com> - 2017-06-19 14:59 -0500
                Re: MCU mimicking a SPI flash slave albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2017-06-20 09:25 +0200
                Re: MCU mimicking a SPI flash slave Cecil Bayona <cbayona@cbayona.com> - 2017-06-20 11:50 -0500
                Re: MCU mimicking a SPI flash slave anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-06-20 12:37 +0000
                Re: MCU mimicking a SPI flash slave David Brown <david.brown@hesbynett.no> - 2017-06-19 22:59 +0200
                Re: MCU mimicking a SPI flash slave rickman <gnuarm@gmail.com> - 2017-06-20 00:12 -0400
                Re: MCU mimicking a SPI flash slave Dimiter_Popoff <dp@tgi-sci.com> - 2017-06-20 10:25 +0300
                Re: MCU mimicking a SPI flash slave David Brown <david.brown@hesbynett.no> - 2017-06-20 10:44 +0200
                Re: MCU mimicking a SPI flash slave dp <dp@tgi-sci.com> - 2017-06-20 02:36 -0700
                Re: MCU mimicking a SPI flash slave Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-06-20 11:25 +0100
                Re: MCU mimicking a SPI flash slave Dimiter_Popoff <dp@tgi-sci.com> - 2017-06-20 13:49 +0300
                Re: MCU mimicking a SPI flash slave Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-06-20 12:54 +0100
                Re: MCU mimicking a SPI flash slave Dimiter_Popoff <dp@tgi-sci.com> - 2017-06-20 16:09 +0300
                Re: MCU mimicking a SPI flash slave Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-06-20 15:24 +0100
                Re: MCU mimicking a SPI flash slave Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-06-20 17:46 +0100
                Re: MCU mimicking a SPI flash slave David Brown <david.brown@hesbynett.no> - 2017-06-20 22:28 +0200
                Re: MCU mimicking a SPI flash slave Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-06-21 00:58 +0100
                Re: MCU mimicking a SPI flash slave David Brown <david.brown@hesbynett.no> - 2017-06-21 13:08 +0200
                Re: MCU mimicking a SPI flash slave David Brown <david.brown@hesbynett.no> - 2017-06-20 16:28 +0200
                Re: MCU mimicking a SPI flash slave David Brown <david.brown@hesbynett.no> - 2017-06-20 12:58 +0200
                Re: MCU mimicking a SPI flash slave David Brown <david.brown@hesbynett.no> - 2017-06-20 12:57 +0200
                Re: MCU mimicking a SPI flash slave Dimiter_Popoff <dp@tgi-sci.com> - 2017-06-20 14:19 +0300
                Re: MCU mimicking a SPI flash slave David Brown <david.brown@hesbynett.no> - 2017-06-20 16:19 +0200
                Re: MCU mimicking a SPI flash slave anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-06-20 12:12 +0000
                Re: MCU mimicking a SPI flash slave David Brown <david.brown@hesbynett.no> - 2017-06-20 16:48 +0200
                Re: MCU mimicking a SPI flash slave Gerry Jackson <gerry@jackson9000.fsnet.co.uk> - 2017-06-20 21:16 +0100
                Re: MCU mimicking a SPI flash slave David Brown <david.brown@hesbynett.no> - 2017-06-20 23:15 +0200
                Re: MCU mimicking a SPI flash slave Gerry Jackson <gerry@jackson9000.fsnet.co.uk> - 2017-06-21 07:30 +0100
                Re: MCU mimicking a SPI flash slave rickman <gnuarm@gmail.com> - 2017-06-21 12:54 -0400
                Re: MCU mimicking a SPI flash slave David Brown <david.brown@hesbynett.no> - 2017-06-21 19:29 +0200
                Re: MCU mimicking a SPI flash slave rickman <gnuarm@gmail.com> - 2017-06-21 15:05 -0400
                Re: MCU mimicking a SPI flash slave Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-06-21 21:34 +0100
                Re: MCU mimicking a SPI flash slave "Elizabeth D. Rather" <erather@forth.com> - 2017-06-21 18:04 -1000
                Re: MCU mimicking a SPI flash slave albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2017-06-22 10:26 +0200
                Re: MCU mimicking a SPI flash slave rickman <gnuarm@gmail.com> - 2017-06-22 11:56 -0400
                Re: MCU mimicking a SPI flash slave stephen@mpeforth.com (Stephen Pelc) - 2017-06-22 09:20 +0000
                Re: MCU mimicking a SPI flash slave Wasell <from_usenet@wasell.eu> - 2017-06-22 14:02 +0200
                Re: MCU mimicking a SPI flash slave rickman <gnuarm@gmail.com> - 2017-06-22 11:59 -0400
                Re: MCU mimicking a SPI flash slave rickman <gnuarm@gmail.com> - 2017-06-22 11:58 -0400
                Re: MCU mimicking a SPI flash slave anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-06-22 08:19 +0000
                Re: MCU mimicking a SPI flash slave Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-06-19 09:53 +0100
        Re: MCU mimicking a SPI flash slave Tom Gardner <spamjunk@blueyonder.co.uk> - 2017-06-15 10:16 +0100
  Re: MCU mimicking a SPI flash slave John Speth <johnspeth@yahoo.com> - 2017-06-15 13:56 -0700
    Re: MCU mimicking a SPI flash slave Don Y <blockedofcourse@foo.invalid> - 2017-06-15 14:41 -0700
      Re: MCU mimicking a SPI flash slave John Speth <johnspeth@yahoo.com> - 2017-06-15 15:08 -0700
        Re: MCU mimicking a SPI flash slave Don Y <blockedofcourse@foo.invalid> - 2017-06-16 11:34 -0700
    Re: MCU mimicking a SPI flash slave rickman <gnuarm@gmail.com> - 2017-06-15 18:20 -0400
    Re: MCU mimicking a SPI flash slave edward.ming.lee@gmail.com - 2017-06-21 07:58 -0700
  Re: MCU mimicking a SPI flash slave Walter Banks <walter@bytecraft.com> - 2017-06-19 12:23 -0400

csiph-web