From: John Larkin on
On Fri, 07 May 2010 19:25:00 GMT, Jan Panteltje
<pNaonStpealmtje(a)yahoo.com> wrote:

>On a sunny day (Fri, 07 May 2010 09:27:35 -0700) it happened John Larkin
><jjlarkin(a)highNOTlandTHIStechnologyPART.com> wrote in
><t8f8u5d858e95v5mjqt17m4td3s4b9ia7q(a)4ax.com>:
>
>>>Looks bit like those old Intel erratas, that got me in the past.
>>>Do they not want people to use their chips?
>>>Paul Schoen was right 18F14K22 SPI sucks.
>>
>>
>>That's pretty bad. But uPs are getting so complex, so overloaded with
>>features, that the designers are sort of shoveling hunks of home-made
>>or purchased IP into compilers and hoping for the best. And,
>>apparently, not taking much time to simulate and verify. Or document!
>>We had to do a bunch of experiments on the SPI interface on our NXP
>>ARMs; even high-level support people couldn't answer some fundamental
>>timing/framing questions. The SPI and ADC documentation is awful.
>>
>>We use ARM chips that have 30-character pin names, the pin functions
>>are so overloaded.
>
>I have been thinking 'ARM' quite a few times today, I planned on this feature to work...
>I have some more data, for those who run into similar problems:
>First in SPI master transmit mode, the least significant bit (bit 0) on SO is does not follow input.
>Second SPI SI (input) does nothing and always reads some constant.
>Tested at 16 MHz, and at 64 MHz.
>The SSPSTAT, BF (transmission complete bit) never gets set, as if that last bit is never transmitted?
>
>The example from their own dataheet does not work:
>LOOP
> BTFSS SSPSTAT, BF ;Has data been received (transmit complete)? <------------------- gets never set.
> BRA LOOP ;No
> MOVF SSPBUF, W ;WREG reg = contents of SSPBUF
> MOVWF spi_in ;Save in user RAM, if data is meaningful
> MOVF spi_out, W ;W reg = contents of TXDATA
> MOVWF SSPBUF ;New data to xmit
>
>So if you skip the test for SSPSTAT, BF, then it transmits 7 valid bits, and bit 8 always some fixed value,
>also if you add huge delays between transmissions, so no collisions can cause this.
>The device ID of this chip: 23 4f
>
>
>>What would be nice would be if things like SPI were small RAM-driven
>>microengines. Then the functionality would be in loadable code, not
>>hard-wired silicon. Sort of like Motorola's TPU blocks. They could be
>>repurposed, too.
>
>I dunno what you mean by RAM driven.

I mean that all the sequencing logic is performed by microcode that's
stored in a small user-loadable RAM. So the SPI interface becomes a
separate programmable state machine, not hardwired logic. It would
only become an SPI interface because it's loaded that way.

>It is just a simple shift register, plus up to 8 counter, .... I they cannot do that in hardware then they have BIG problems.

Well, they do.

John


From: John Larkin on
On Fri, 07 May 2010 14:16:26 -0400, Spehro Pefhany
<speffSNIP(a)interlogDOTyou.knowwhat> wrote:

>On Fri, 07 May 2010 09:27:35 -0700, John Larkin
><jjlarkin(a)highNOTlandTHIStechnologyPART.com> wrote:
>
>>
>>That's pretty bad. But uPs are getting so complex, so overloaded with
>>features, that the designers are sort of shoveling hunks of home-made
>>or purchased IP into compilers and hoping for the best. And,
>>apparently, not taking much time to simulate and verify. Or document!
>>We had to do a bunch of experiments on the SPI interface on our NXP
>>ARMs; even high-level support people couldn't answer some fundamental
>>timing/framing questions. The SPI and ADC documentation is awful.
>>
>>We use ARM chips that have 30-character pin names, the pin functions
>>are so overloaded.
>
>Who's are you using now? We're getting going with the Luminary parts.

NXP 80 and 100-pin parts, LPC1758 and LPC1768. We have one 12-channel
4-20 mA thing that has an ARM per floating channel... 13 CPUs on one
VME board.

What we really want for another project is a faster (500 MHz?) chip
with gigabit ethernet. NXP doesn't have anything quite yet. Marvell
looks good technically but they sort of discourage sub-megapart
customers. Freescale PowerPC looks pretty good. We'll have to decide
soon.

>
>>What would be nice would be if things like SPI were small RAM-driven
>>microengines. Then the functionality would be in loadable code, not
>>hard-wired silicon. Sort of like Motorola's TPU blocks. They could be
>>repurposed, too.
>>
>>John
>
>You'd think it would be relatively simple to put a thin FPGA or CPLD
>fabric around the core, perhaps preloaded from ROM with some useful
>defaults.

That's what I had in mind, something preloaded but alterable. A simple
microengine would do for most apps.

John

From: nospam on
Jan Panteltje <pNaonStpealmtje(a)yahoo.com> wrote:

>Do they not want people to use their chips?

It is a relatively new chip, the issues you are complaining about have been
documented in freely available errata for about a year (the errata is even
linked from digikey product pages).

The A8 silicon revision is supposed to have fixed these issues.

A reasonable complaint would be about difficulty knowing what silicon
revision you can buy.
From: Nico Coesel on
Spehro Pefhany <speffSNIP(a)interlogDOTyou.knowwhat> wrote:

>On Fri, 07 May 2010 09:27:35 -0700, John Larkin
><jjlarkin(a)highNOTlandTHIStechnologyPART.com> wrote:
>
>>
>>That's pretty bad. But uPs are getting so complex, so overloaded with
>>features, that the designers are sort of shoveling hunks of home-made
>>or purchased IP into compilers and hoping for the best. And,
>>apparently, not taking much time to simulate and verify. Or document!
>>We had to do a bunch of experiments on the SPI interface on our NXP
>>ARMs; even high-level support people couldn't answer some fundamental
>>timing/framing questions. The SPI and ADC documentation is awful.
>>
>>We use ARM chips that have 30-character pin names, the pin functions
>>are so overloaded.
>
>Who's are you using now? We're getting going with the Luminary parts.
>
>>What would be nice would be if things like SPI were small RAM-driven
>>microengines. Then the functionality would be in loadable code, not
>>hard-wired silicon. Sort of like Motorola's TPU blocks. They could be
>>repurposed, too.
>>
>>John
>
>You'd think it would be relatively simple to put a thin FPGA or CPLD
>fabric around the core, perhaps preloaded from ROM with some useful
>defaults.

I mentioned something similar in comp.arch.fpga. Tell Xilinx to make
such a device. If the price and the tooling (drag & click your
microcontroller) are right they have a killer.

--
Failure does not prove something is impossible, failure simply
indicates you are not using the right tools...
nico(a)nctdevpuntnl (punt=.)
--------------------------------------------------------------
From: krw on
On Fri, 07 May 2010 14:16:26 -0400, Spehro Pefhany
<speffSNIP(a)interlogDOTyou.knowwhat> wrote:

>On Fri, 07 May 2010 09:27:35 -0700, John Larkin
><jjlarkin(a)highNOTlandTHIStechnologyPART.com> wrote:
>
>>
>>That's pretty bad. But uPs are getting so complex, so overloaded with
>>features, that the designers are sort of shoveling hunks of home-made
>>or purchased IP into compilers and hoping for the best. And,
>>apparently, not taking much time to simulate and verify. Or document!
>>We had to do a bunch of experiments on the SPI interface on our NXP
>>ARMs; even high-level support people couldn't answer some fundamental
>>timing/framing questions. The SPI and ADC documentation is awful.
>>
>>We use ARM chips that have 30-character pin names, the pin functions
>>are so overloaded.
>
>Who's are you using now? We're getting going with the Luminary parts.
>
>>What would be nice would be if things like SPI were small RAM-driven
>>microengines. Then the functionality would be in loadable code, not
>>hard-wired silicon. Sort of like Motorola's TPU blocks. They could be
>>repurposed, too.
>>
>>John
>
>You'd think it would be relatively simple to put a thin FPGA or CPLD
>fabric around the core, perhaps preloaded from ROM with some useful
>defaults.

That's a lot easier said than done. First, X, A, and A have most of the IP
locked up for FPGA sorts of things. Second, the development software for such
things is non-trivial. Great idea, but not likely to fly.