element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Experts, Learning and Guidance
  • Technologies
  • More
Experts, Learning and Guidance
Ask an Expert Forum Microcontroller capabilities
  • Blog
  • Forum
  • Documents
  • Leaderboard
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Experts, Learning and Guidance to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Suggested Answer
  • Replies 5 replies
  • Answers 1 answer
  • Subscribers 279 subscribers
  • Views 504 views
  • Users 0 members are here
Related
See a helpful answer?

Be sure to click 'more' and select 'suggest as answer'!

If you're the thread creator, be sure to click 'more' then 'Verify as Answer'!

Microcontroller capabilities

Johnd001
Johnd001 over 12 years ago


I have been finding it hard to tell just how capable a given micro controller is.

I have an Arduino Mega but have not done any work with it.

The project I have in mind requires 2 24 bit counters. The micro controller need to be able to read the counters and divide one counter by the other. The dividend is used in a successive approximation to load a 16 bit counter which counts up or down to create an external trigger which should change the ratio between the first 2 counters.

All the counters need to be triggered enabled and cleared from external hardware logic.

Counter clock rate is 10MHz.

Do I need to build these counters from external chips or Is there a micro controller that could do the counting for me.

If I need to build them the only 8 bit try-state counters I see seem to be low volume parts like SN74AS867NTSN74AS867NT. Is there something better/ newer that I should be looking at for  a new desine?

 

While the counters are counting the system needs to be taking some analog reading. Is the Mega using the CPU while ADCs are done? how long does it take to read 1 analog pin? Are the analog pins multiplexed to 1 ADC or are there multiple ADCs on the chip.

 

How long does a 24 bit /24 bit divide take? Is there a Math library that would do the divide for me?

 

Should I be looking at a 32 bit controller that may to the math easier and have larger counters?

I am trying to get started in the right arena before I get too invested in any one controller.

Any help will be appreciated.

Thanks you

  • Sign in to reply
  • Cancel
  • johnbeetem
    0 johnbeetem over 12 years ago

    I'd take a look at some of the ARM Cortex-M4 SoCs from NXP (e.g., 4300 series), ST (STM F4 or F3), and TI (e.g., Stellaris LM4F).  In particular, NXP has a programmable "State Configurable Timer" which may handle what you need.  The Cortex-M4 has hardware divide, and many of the parts include hardware floating point.  If you need to go really cheap, some of those vendors may have Cortex-M3, M0 or M0+ that will work.

     

    Cypress PSoC-5 is also worth checking out if you need customized analog.

     

    If you need custom logic, I suggest a CPLD or small FPGA.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • DAB
    0 DAB over 12 years ago

    Hi John,

     

    Your question is one that every developer addresses for a new project.

    The short answer is always the same.  What are your requirements?  Until you know what you want to do, you cannot assess any microcontroller to determine if it will do the job.

     

    Things you need to know is the timing requirements for your events.  How often are you going to sample your data.  How long does it take to process the data into user information.  How much interaction does the device need to support with any ancellary hardware or software.  Do you need to support an indepth user interface.

     

    The answers to each of these questions enable you to build a timing model to assess the real time needs of your project.

    Sometimes your needs are simple and easy to assess.  At other times, you can have a lot of vary interesting transcient issues that are very difficult to isolate.

     

    The more you understand about what you want to do, the better you can refine your needs.

     

    I used to help make these types of analyses on Billion USD projects.  The other key issue I had to address was a long life cycle time.  Most consumer products only have life cycles of a few years.  I had to assess needs up to twenty years or so.  Predicting system feature growth is very difficult.

     

    If you define your requirements, I can probably help you come to an understanding for you microcontroller needs, but you need to look at how you plan to expand your device in the future and at what point are you ready to transition to new technology.

     

    The biggest problem you can do is use a bulldozer to fill in a small hole or try to fill the Grand Canyon with a teaspoon.

     

    Just a thought,

    DAB

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • michaelkellett
    0 michaelkellett over 12 years ago

    Hello John,

     

    How often do you need to update the 16 bit counter - if the answer is not very often (eg < 1000 times  a second then you can certainly use a micro with the right timer/counter stuff - look at NXP and ST and pick an ARM (M0, M3 or M4 will all do) which has at least 2 x 32 bit counters and 1 x 16 bit counter.

     

    If you need to update very fast (eg at 10MHz rate (although this seems unlikely from your description)) you will need to use an FPGA.

     

    If you are making just one then consider using an ST32F4Discovery board (£10.13 from Farnell) which has the processor and debugging stuff at a pretty good price.

     

    You'll need to do your own investigating but this chip has the CortexM4 core that John mentioned so can probably sustain an update rate of the order of 100k per second.

     

    MK

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Johnd001
    0 Johnd001 over 12 years ago in reply to johnbeetem

    I am working on a proof of concept prototype. I do not need to constrain myself to low chip count, power consumption or the many other items that would come into play for a production unit. More than 90% of this could be done with a CLPD, but a CLPD has a considerably greater learning curve than building counters from 4 bit ICs and using 74LS443s to do the tri-stating so I do not run out of I/O pins. From your comments, I assume that if a project is using some large counters these days a CLPD is more cost-effective than counter chips, but with support logic that the CLDP would include.

    I would like to stay with a simple Mega if practical. I willl have to do some kind of I/O management to make this fit in a Mega. I have found some code for a 16/16 divide that would not take much work to get to 24/24. Looks like I have the time to do the divide.

    There are some critical timing problems. This is a closed loop control system with updating about every 100 ms  as a target. Reading the counters should be quite quick. Reading the analog data is a different story. I need 2 sets of simultaneous reading. Some of the analog data need to be pre-trigger. If I had plenty of time and fast converters I would keep a 2 converters filling 2 FIFOs and be able to look back in time to get the readings I want. I may need to resort to a  track and hold round robin system to be able to "look" back in time after the trigger for a few points.

    I still do not have information on the A/D timing for the Mega. I could also go to external converters and use some more I/O pins. Maybe use an extra controller to read the data into memory and then just pass the last few readings to the main controller. A second Mega to read one of the counters would save the tri-state logic and control and could run an external A/D converter such as the TI ADS1174. At least I can find documents that indicate it can do what I want done. As I look back at my rambling I realize just how little of the controller chip I plan on using. I should be able to find a controller that has the counters and ADS and not have to add them.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Johnd001
    0 Johnd001 over 12 years ago in reply to michaelkellett

    Thanks Michael,

    I did not find a ST32F4Discovery board but I did find a STM32F4Discovery board.

    http://www.st.com/internet/evalboard/product/252419.jsp

    Is that the board you referenced?

    I have had a STM32 Value Line Ci9scovery board but kind but got discouraged with a lot of broken links and on www.st.com/stm32-discovery

    Seems the Arduino has more net support.

    Thanks again.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube