Netduino home hardware projects downloads community

Jump to content


The Netduino forums have been replaced by new forums at community.wildernesslabs.co. This site has been preserved for archival purposes only and the ability to make new accounts or posts has been turned off.
Photo

High-speed throughput for Netduino Go modules


  • Please log in to reply
26 replies to this topic

#21 CW2

CW2

    Advanced Member

  • Members
  • PipPipPip
  • 1592 posts
  • LocationCzech Republic

Posted 23 May 2012 - 03:19 PM

AFAIK this is not possible to achieve with the standard .NET MF SPI class, you'd need to modify the native SPI driver. If I remember it correctly, there is a plan to implement the whole go!bus SPI communication in the native layer, but I am not sure it will include such feature - I guess most cases will be covered by fixed size frames and for high speed data transfers it will go with DMA (?)

#22 ByteMaster

ByteMaster

    Advanced Member

  • Members
  • PipPipPip
  • 76 posts

Posted 23 May 2012 - 03:46 PM

I guess most cases will be covered by fixed size frames and for high speed data transfers it will go with DMA (?)


Yeah - I'm starting to think that fixed size frames and potentially a paging algorithm will be the simplest (and probably fastest) way to do this.

I don't ?think? the STM8 line has DMA.

My current approach is just starting to get klunky for a couple of modules where the packet size is variable and I might want to push KB's of data. Starting to think I might want to look at the STM32F0 line with the additional RAM and faster CPU/SPI.

_Really_ looking forwared to the standardized/native firmware, I just don't have enough patience though :)

Kevin...
Kevin D. Wolf
Windows Phone Development MVP
President Software Logistics, LLC
Tampa, FL

#23 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7767 posts
  • LocationNew York, NY

Posted 23 May 2012 - 04:28 PM

Hi Kevin,

Chris - can you elaborate what you mean by this?

Seems somewhat chatty

I recommend using fixed frame sizes and simply "exchanging packets". That would look something like this:

1. Module asserts IRQ
2. Mainboard sends empty (fixed-length) frame, receives data from device
3. Module deasserts IRQ

You could either deassert IRQ when the last packet of data started being sent from the device...or you could deassert it after the first bits were being transferred. [One method makes the IRQ an RTS-style "flow control" flag, the other makes it an attention flag.]

Chris

#24 ByteMaster

ByteMaster

    Advanced Member

  • Members
  • PipPipPip
  • 76 posts

Posted 23 May 2012 - 08:28 PM

I recommend using fixed frame sizes and simply "exchanging packets". That would look something like this:


Thanks Chris - I think I'm seeing a trend pointing to using a fixed size frame...it really does solve a lot of problems at the expense of a few clock cycles and will probably just go down that path.

Kevin...
Kevin D. Wolf
Windows Phone Development MVP
President Software Logistics, LLC
Tampa, FL

#25 Fred

Fred

    Advanced Member

  • Members
  • PipPipPip
  • 302 posts
  • LocationUK

Posted 31 May 2012 - 08:33 AM

This book - Arm Microcontroller Interfacing - looks interesting and has one glowing review on Amazon UK. Has anyone read it and can give an opinion?

I ended up buying it so will answer my own question. I've only read about a third of it but so far it doesn't seem very good.

It's very Atmel specific and the code examples don't seem to use CMSIS so they're not really portable. There are lots of diagrams of how to use a transistor to switch a LED, which is a little too basic to be useful.

#26 Geancarlo2

Geancarlo2

    Advanced Member

  • Members
  • PipPipPip
  • 70 posts

Posted 31 May 2012 - 12:49 PM

Since the book description says it uses an ARM7 I guess non CMSIS code should be expected <_<. I just hope the book's code is well documented, so you can at least port *features* in a higher level..

#27 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7767 posts
  • LocationNew York, NY

Posted 03 June 2012 - 06:02 AM

Since the book description says it uses an ARM7 I guess non CMSIS code should be expected <_<.

Good point. ARM7 is ARMv4. Cortex-M3 is ARMv7. ARM7 != ARMv7. Confused yet? :)

Chris




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

home    hardware    projects    downloads    community    where to buy    contact Copyright © 2016 Wilderness Labs Inc.  |  Legal   |   CC BY-SA
This webpage is licensed under a Creative Commons Attribution-ShareAlike License.