Wednesday, 13 November 2019

What microcontroller should I use?


I'm trying to find the best micro controller package for my computer programs to communicate with the real world. I am hoping for a large number of I/O pins (so far 64 digital is all i need, nothing fancy like analog and PWM) which an I can read and write directly by calling functions from my program running on my CPU.


I don't want to download programs onto the micro controller itself to run, rather i would like something that simply plugs into my USB and gives me a bunch of CPU controlled I/O pins that i can control from my C++ programs.


What would be the best micro controller package for me? I hope for something that is fairly inexpensive but future proof, as in it runs off USB and has 64-bit drivers for modern OS like Windows 7. Being able to interface more than one of these micro controllers with the same computer program would be a great bonus as well (future expansion).


Edit: I don't need high sampling rates (maybe 10 Hz for reading inputs, 1 kHz for output signals) and most of the pins are used for output only. I am working with brand new computers (core i7 860) so even if the sampling is a bit inefficient or slow, it should still be ok (just have one thread dedicated to I/O and have the main program communicate with it).


I also don't need all 64 I/O pins on a single micro controller package. If i can interface many micro controller packages at the same time, that would work too (actually it would be ideal to be able to interface many smaller micro controller packages, that means it's easy to expand).


I've looked at this: http://www.schmalzhaus.com/UBW32/index.html


Has anyone had any experience with something like this? Any idea if it will work or not? The main concern is that it is the micro controller that is running the program, not my CPU.




Answer



Faken,


The UBW32 is a very good way to go, from what I can tell of your requirements. It will support exactly what you need, as long as you're OK with 3.3V I/O (some are 5V tolerant, but not all.) It is inexpensive ($40) and is very easy to talk to using any language that can support serial ports (which is pretty much all of them - Basic, C, C#, Processing, etc.)


You can use any of the 76 I/O pins as inputs or outputs. The stock firmware as shipped will allow you to do what you want to do, no programming required on the embedded side. Getting that data up to the PC over USB (at only 10Hz) will be no problem. Getting outputs to go at 1KHz will probably work just fine as well.


If you have any questions, please let me know. I'm happy to help you out.


*Brian Schmalz UBW32 creator


No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...