Till now, I've made projects only by using the Arduino microcontrollers. As we all know, these controllers are very flexible, easy to use, and simplistic, it doesn't bother you with the underground things.
I can say that I know C++ at a medium-high level, and I've reached a point where their capacities aren't enough(Arduino's). The ram is too little, also the clock and the serial speeds.
My current project requests me up to 200 MIPS, 32-48kb ram so it's a something.
The questions are:
Is it possible to have a different controller, powerful like those characteristics up there, have the possibility to migrate all the libraries and IDE from Arduino to that particular controller, and not writing another libraries for it? I just want the Arduino's flexibility and simplicity.
And if it is possible, what controller should I pick (i.e from Atmel)?
Does binding multiple Arduinos through the I2Cs increase the power processing (like having one coordinator, and multiple ,,receivers")?
Quite good boards, never heard of them, 5 times more powerful than Arduino, but still not enough.
Surely isn't something int the market that has the power around 200MIPS? (I have to say, the code that I want to put in requires much calculations).
I'm satisfied even if the controller isn't placed around the regulator, resistors, ports, etc. I'm okay with that, I can build on my own the rest of board. As you know, I just want to be compatible with the Arduino's libraries and IDE.
The arduino IDE and associated libraries are designed around generating a standalone application be the only thing on the chip (besides the bootloader). More powerful chips tend to be based around the ARM core, which is considerably more complex, and typically runs an entire operating system, like Linux.
The libraries tend to operate directly on the Atmel hardware, talking to peripheral registers. However, they are just C / C++ code at the end of the day, so if you can program your desired device in C++ then you can in theory port a library to work on it. The compiling side of things though won't be with the Arduino IDE, but with whatever the target device has implemented. For some devices this could be running gcc directly on the target device itself (like the Pi).
I understand now.
I think for moment the best option would be the chipkit.
On the long term (like 1-2 years), do you think that DSPs would represent a good alternative? (I mean, they can run linux or a standalone application, it depends)
A DSP is good at processing signals - after all, that's what it's made for. For general processing, something more "generic" is best, like an ARM Cortex, or an ATOM, etc.
A third option is FPGA - great for very powerful single job operations. This might be more like what you're after. However, it's a completely different programming style - a Hardware Description Language. You're effectively creating your own chip instead of programming someone elses.
The chip on that board has about 22000 macrocells (logic elements) so it can do some pretty complex things. You can get top-end chips (costing 10 times as much or more) with hundreds of thousands of macrocells, so they can do even more.
Can a neural net fit in one? I have no idea. Probably. They are pure logic. If you can do it in logic, then you can do it in an FPGA. You can link FPGAs together just like any other chip, so your neural net could be a real physical network of devices.
My board doesn't arrive until tomorrow, so I haven't built anything yet - I've tinkered with the software a bit last night, and I must say it's "interesting". Verilog HDL is pretty straight forward, and the library of pre-built logic functions (or MegaFunctions as they call them) is pretty comprehensive, including all the 74 logic series and logic blocks to do most tasks.
Sorry for my delay, a big one. I didn't have access to PC and by this I wasn't able to post anything.
When you' re ready, post here some of your projects:D
Anyway...this FPGA's will probably be used to work in tandem with the DSP's. Could be an idea for a so-called ,,spinal-cord" for a robot I may think. When it receives a specific code it'll know and do "that thing" faster.
Now, back to the present story, I continue having questions:
-Can I set the PWM frequency at a precise 32kHz(32000Hz)? My brushless variators work at 32kHz.
How can I set the timers? Through prescaling or directly modifying the microseconds interval? (at least this is what I have understood till now)
The problem is that I have used the timers for a short period and I'm a little bit of a newbie here, and I don't want to buy a product that doesn't meet my requirements.
Where does that number come from, and what does it actually mean? Fifteen times faster than an Arduino (equiv to a 240MHz AVR) is different from "200 Dhrytone MIPS." 200MHz 8-bit processors are quite rare, and it's a bit of a "hole" in microcontrollers in general (BeagleBone and Rasberry Pi and such run at about 1GHz.) But if you're only looking at trying to 32bit arithmetic or floating point 15x faster than an Arduino can do it, you might get by with things like the Due or ChipKit (About 80MHz clock, but with a full 32-bit wide CPU.)
Otherwise, you'd probably find the STM32F4Discovery an interesting board. ARM Cortex M4 with floating point at "about" 150MHz... No Arduino compatibility that I've heard of, though.
I want to develop a neural network that is big. It isn't necessary to go in the details (some sort of new stuff) but it's going to use a lot of the processing power.
As you also mentioned about the other controllers, for now I'm going to stick to a 32-bit processor because of it's arithmetic capabilities,and the board it's going to be the Maple rev.5. It features a 72Mhz 32-bit ARM M3, 20Kb Ram and 128Kb Flash.
The reason for this is because of what I have seen in the last days in the books (neural nets), I decided that a more powerful board (than my boundary) would just not justify for now so again the Maple would be a good choice.
Something to rectify?
Thank you,
RobertEagle
PS: Ohh, and I wasn't looking for a 8-bit processor at all, with and exact frequency of 200Mhz. I was looking for something that is compatible with the Arduino library or at least to be emulated plus a more powerful chip. That's all.