Go Down

Topic: Anyone tried ST Nucleo boards? (Read 54862 times) previous topic - next topic

pito


fat16lib

42 MHz so full speed would be about 5 MB/sec.

On my new shiny bonus from a recent gig, an Agilent MSO-X 2202A with all features enabled, the gap between bytes for write is about 50% of time.  Read is longer since you must wait for data to shift in.

I am tempted to press on for 4-bit SDIO DMA.  I have designed the new library cache scheme for SDIO speeds.

Here is the result of a creating a 100 MB file on this 16 GB microSD www.amazon.com/SanDisk-MicroSDHC-Adapter-Frustration-Free-Packaging/dp/B009QZH7D8.  Max write latency for an 32 KB write increases to about 50 ms.  I suspect it would be less for writing to an already created contiguous file.  My cache is too small for this file's FAT.
Quote

Type is FAT32
File size 100 MB
Buffer size 32768 bytes
Starting write test.  Please wait up to a minute
Write 2666.36 KB/sec
Maximum latency: 46845 usec, Minimum Latency: 12123 usec, Avg Latency: 12288 usec

Starting read test.  Please wait up to a minute
Read 2167.39 KB/sec
Maximum latency: 15768 usec, Minimum Latency: 15052 usec, Avg Latency: 15118 usec

pito

Long time back I did experiments with SDIO on the F407 (@168MHz)under chibios and 5MB/sec was easy to get with 32kB blocks. My experiments were suboptimal, so I guess you may get 4-5MB/sec@84MHz..

fat16lib

I hope 4-bit SDIO DMA is much faster than 4-5 MB/sec.

Here is Due SPI DMA at 42 MHz with the new library:
Quote

Type is FAT32
File size 100MB
Buffer size 32768 bytes
Starting write test.  Please wait up to a minute
Write 3915.83 KB/sec
Maximum latency: 34022 usec, Minimum Latency: 8190 usec, Avg Latency: 8365 usec

Starting read test.  Please wait up to a minute
Read 4261.15 KB/sec
Maximum latency: 8229 usec, Minimum Latency: 7619 usec, Avg Latency: 7688 usec


Notice DMA read gets a big boost.

westfw

One of the things that I like about the normal Official Arduino boards is that they are "correctly" priced.  If I design a "product" around an Uno core with MSRP of $30, then I know that I can put the relevant components on a board of my own design, and that section of the product can sell for about $30 (or less, because I can leave things out.)  With these subsidized Evaluation Boards from Chip vendors, it's a lot harder to get that 'feel' for end product cost.  I mean, as a hobbyist or end-user, a $15 board with an ST M4 chip is great.  But the chip itself is $10+ in small quantities, and it probably needs a 4-layer board and professional assembly.  So there's no way that $15 represents a realistic cost for me to use the same chip in a design, short of something "really big" that will sell in 10k+ quantities.

OTOH, there's an argument that says that in my target quantity (say, 100-1000), I should stop worrying about using chip-level devices in general: just buy the launchpad or Nucleo boards and restrict my part of the design to a "shield"...
(On the gripping hand, it's not clear that the semiconductor vendor boards are allowed (license-wise) to be used in products.)

pito

#20
Jun 29, 2014, 10:17 am Last Edit: Jun 29, 2014, 01:22 pm by pito Reason: 1
Quote
With these subsidized Evaluation Boards from Chip vendors, it's a lot harder to get that 'feel' for end product cost

The nucleo boards must not be "subsidized".. All the boards are the same, as the chips have the same pinout. So they produce 9 variants of nucleo boards on the same pcb. The price of the 2 chips used is "not known" as it comes from STM (that could be called "subsidizing"). With 50k-100k boards from each variant they may do a profit, indeed..
PS: there was a discussion whether the Discovery boards are subsidized, an insider indicated they are not..
PS1: the chip vendors follow a "what the market will bear" strategy when pricing the chips. Internally they cost them "at costs". That is a huge difference of course. Moreover, for such demo boards they may use chips coming from batches which are a little bit off certain parameters.
PS2: my rough estimate: the development costs of a stm32F401 mcu could be $300k, fab preparation $200k, and the production costs of a single smd packaged chip about 50cents (rather conservative estimate, it could be less). They sell it to distributors and large volume clients for $3 a piece in an average (10k quantities). So they break even when they sell 200k chips.. It seems to me to put 10.000 chips into a nucleo board "at cost" may not ruin their business case.. :)

pito

Quote
Starting read test.  Please wait up to a minute
Read 4261.15 KB/sec

That is  only 19% overhead @42MHz SPI clock. Nice!

fat16lib

#22
Jun 29, 2014, 03:29 pm Last Edit: Jun 29, 2014, 05:38 pm by fat16lib Reason: 1
I would pay more for Nucleo since I like the form factor and STM32 chips.  See the attached photo of my test setup with an Adafruit Data Logging shield.  

The double rows of male pins bring out all chip signals and voltages, and are on both sides of the board.  The pins just match the low cost proto 7x9 cm boards on ebay.  I paid about $12 for ten of these http://www.ebay.com/itm/10pcs-7x9cm-Double-side-Protoboard-Circuit-Fibre-Glass-DIY-Prototype-PCB-Board-/371081793690.

you can put one under the Nucleo and an Arduino shield on top or another 7x9 board on top.

Signals are 5 V tolerant so many shields work.  I like the Adafruit 1.8" TFT with MicroSD and joystick https://www.adafruit.com/products/802.  ST uses it in examples so there is already STM32 code.

ST is really working to support this product with the STM32CubeMX configuration and code generation package.  There are frequent, about weekly, updates to add new boards, shields, and fix bugs.

STM32CubeMX is a big help.  It allows you to quickly configure all the pin and controller options and generates initialization code.  This is nice since Cortex M4 chips have so many options.  I then start with this code as a prototype and rewrite or replace the parts of ST firmware I don't like.

One reason I don't like Due is that it difficult to use Due other than the way the Arduino company setup the hardware and software.

rick.kimball

So why hasn't anyone ported an arduino core for these?

bobcousins


So why hasn't anyone ported an arduino core for these?


I recently had a go at creating an Arduino target for the LPC810 chip, based on an Arduino port done by ChrisMicro, using the "3rd party hardware extension". It turned out easier than I expected, and I did wonder why hasn't it been done before! Maybe it has and I haven't found it, the internet is a big place.

I've got some STM32 boards I want to "Arduinoise", so I will have a look at doing an Arduino core for one of those.

I suspect the reason no one has done this before, is that most chip vendors are pushing their own tools, which I think it is fair to say are more suitable for professionals, so adding support for Arduino is not a priority. With the availability of such free tools there is not much demand from users to be able to build using Arduino IDE.

Although increasingly they are using the Arduino shield form factor for dev boards, it seems like it would be useful to have at least basic Arduino IDE support to allow people to get started quickly, and maybe progress to other tools for more advanced work.

(repo for LPC-Arduino here https://github.com/bobc/OpenLasp - I hope to be adding some other NXP chips)
Please ask questions in the forum so everyone can benefit. PM me for paid work.

rick.kimball

With the Arduino 1.5 IDE, it seems like the flood gates should have opened. I've personally done an msp430 port for some chips that aren't supported by the Energia core (the msp430fr5738). Although, I did it mainly to see how easy it would be.  I think it is easy.  I was able to get it going in a couple of hours.

It seems that the Arduino team has broadened their horizons and aren't as non-AVR angry as they used to be.  They won the API wars it seems they should be porting left and right to seal the deal.  The NUCLEO boards seem like a natural fit.  I see they provide mbed support.  With the Arduino headers I wonder why they just didn't go the final step.

-rick

rick.kimball


(repo for LPC-Arduino here https://github.com/bobc/OpenLasp - I hope to be adding some other NXP chips)

I did find that., neat!I like those lpc8xx .. although I find the 810 a wee bit small.  The LPC1114-DIP 28 seems like it would be a good candidate for an Arduino port.

bobcousins



(repo for LPC-Arduino here https://github.com/bobc/OpenLasp - I hope to be adding some other NXP chips)

I did find that., neat!I like those lpc8xx .. although I find the 810 a wee bit small.  The LPC1114-DIP 28 seems like it would be a good candidate for an Arduino port.


Yes, I've got one right here :)
Please ask questions in the forum so everyone can benefit. PM me for paid work.

westfw

Quote
So why hasn't anyone ported an arduino core for these?

Well, it probably has a lot to do with the fact that implementing "just" a core has not proven particularly useful.
Users have complained bitterly that heavily supported platforms (PicKit, for example) have not supported "enough of the widely used libraries to be useful."  Or even that platforms based on a different CPU are unusable because sub-arduino-level 3rd party libraries have not worked.
Then there's a support issue.  Writing some arduino cores is great fun.  Being the brunt of every bug complaint for the next decade... not so much.

rick.kimball


Quote
So why hasn't anyone ported an arduino core for these?

...
Then there's a support issue.  Writing some arduino cores is great fun.  Being the brunt of every bug complaint for the next decade... not so much.

So true.

Go Up