|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools | Rate Thread | Display Modes |
|
|
|
#1
|
|||
|
|||
|
Re: Motor Drivers
Quote:
It may be best if you do some research and find out what external processor boards other teams have been using to do their vision processing and buy one of them. It is likely that you will pay much more for just a bare PCB than you will for one of these fully functioning, mass produced processor boards. |
|
#2
|
|||
|
|||
|
Re: Motor Drivers
Excuse my bluntness, but the Propeller doesn't come within spitting distance of the cRIO. The PPC in the cRIO runs at 400MHz and can execute up to 3 instructions per clock - theoretical peak at 1.2 Billion instructions per second. The propellor has 8 cores at 80MHz, but takes at least 4 clock cycles to execute a single instruction - theoretical peak of 160 Million instructions per second. Note: Those are theoretical peaks, neither will sustain that throughput with actual code.
Then look at the quality of the instructions the two processors provide - The propeller doesn't even have hardware support for multiply, the PPC has a full fledged floating point unit and multiple integer units. Once you add the cRIO's FPGA, it is a "brought a twisty straw and wadded up paper to a battleship fight" scenario. Adding a propeller to your robot will provide no measurable benefit. |
|
#3
|
||||
|
||||
|
Quote:
|
|
#4
|
||||
|
||||
|
Re: Motor Drivers
Quote:
*I'm not an expert, but that sounds unrealistic under normal circumstances or even heavy FRC usage. |
|
#5
|
||||
|
||||
|
The system I am currently designing is supposed to be modular, kind of like the cRIO. an ADC breakout, PWMPAL Breakout are what I am wanting to create. The modules can easily be swapped, taken out, or be changed in order.
|
|
#6
|
||||
|
||||
|
Re: Motor Drivers
By the way, What I was asking is if the propeller could do continuous processing, especially when the cRIO is busy. I was thinking about using a Raspberry Pi, but the problem I thought is that it draws lots of power, and you cannot just remove the power plug to shut it down.
|
|
#7
|
|||
|
|||
|
Re: Motor Drivers
Devyash
You are attempting to do something that is pretty complicated and difficult. In order for you to be even moderately successful, you will have to climb up a very long and steep learning curve. The first thing you must learn is to realize who around you possess the knowledge that you need. Next, you must learn to listen to those people and to take their advice. It is pretty clear to me that the other posters in this thread have extensive experience in evaluating and selecting microprocessors. Quote:
This is a very admirable goal but making it modular is going to make an already difficult task many times more difficult. Last edited by philso : 15-02-2013 at 14:33. Reason: make language more concise |
|
#8
|
||||
|
||||
|
Re: Motor Drivers
I completely agree. However, another reason why I like this product is because it is cheap. I can go down to a store and get it for $8 plus tax (~$8.08 per chip) that means that we can add more processors if we need and that we dont need to worry too much if we fry a chip. If possible, I would be using a Raspberry Pi with a completely trimmed down linux kernel. However, this processor will take 300mA at a max, with all outputs high (or low) and driving something. I agree that I don't have as much knowledge and experience as a professional, as I am only a high school freshman, but I use AutoCAD Electronics, and I am pretty sure it tries to create the most efficient route as possible. Currently, the biggest problem is that I cant build a PCB with mor than two layers. However, There is something similar, called the HoverFly Pro, that uses a lot of the same technology.
|
|
#9
|
|||
|
|||
|
Re: Motor Drivers
As I have stated previously, this should not be your first design project.
A microprocessor board like what you are contemplating will require 4-6 layers. I have seen examples of such boards done in 2 layers with much less demanding processors than what you are using and they ended in grief. They were ultimately redone in 4 layers. There are parts of the circuit where it is very unwise to use an autorouter. The real art in PCB layout is in where you place all the components, relative to each other, based on their function. Only then can you get effective and efficient trace routings. CAD programs are only tools for running traces. You still need to know why a trace should be routed in a particular way before running the trace. Have you priced all the other components that you will need? The bare board will cost you somewhere around $50 from a reputable prototype manufacturer. I am skeptical that you can make a useable board that will take the QFP packages yourself due to the fine pitch of the pins. Engineering is solving problems by making wise choices. If you want vision processing, you will have to pay a price, one way or another. It may mean paying some money and/or calculating your current consumption and making adjustments in your overall robot design. |
|
#10
|
||||
|
||||
|
Would it be possible to use the fpga to do all the io processing while the powerpc is doing the image processing and instruct the fpga. after talking to my pltw teacher, he told me that an fpga can do parallel processing continuously.
|
|
#11
|
|||
|
|||
|
Re: Motor Drivers
Quote:
But to reiterate the answer others have given to your original question: that kind of coprocessing is not legal for FRC; the cRIO has to control your motors. If you're experiencing lag you should spend the time to learn more about your current environment & find out *why* you have lag. It's pretty easy to introduce unwanted lag via programming. |
|
#12
|
||||
|
||||
|
Re: Motor Drivers
Not only can someone do this, I already have a Parallax Propeller powering a brushed DC motor control and it does CAN with a Microchip transceiver. That controller is not a FIRST allowed part and can not be used on a FIRST robot without review by FIRST which at this time I have no reason to do.
I also constructed a robot control system with Parallax Propellers at the heart (plural if you like). There are other people out there with plenty of experience that share your interest though please keep in mind that FIRST does retain the rights to ultimately decide what is on your FIRST approved robot and at this time you'll require far more than a working prototype to achieve what you desire. So far as I know you can use the Parallax Propeller as a co-processor to the cRIO per the custom circuit rules, but these circuits as others have said, may not operate the motor outputs themselves. So you can't put the motor controllers, hobby servos or even relays on your Parallax Propeller board I/O. You could plug the Parallax Propeller board into the cRIO via the digital side car to...for instance...create a port for an SVGA monitor (though I don't know if having the actual monitor on the robot on the field would be legal you'd have to investigate). I currently see no reason you couldn't interface sensors to the Parallax Propeller such that you could service it with the cRIO. I can see how it might have some value in that sense. As to the rest....the Parallax Propeller is a very different design philosophy than is common to much of the rest of the microcontroller industry. It is not realistic to compare the clock speed of the cRIO with the Propeller. The entire concept behind the Propeller is parallelism. It does not implement interrupts, but it does implement timers and PLL. It also implements shared memory space and common access to that shared memory and I/O using a round-robin fixed timing system. The Propellor 1 for better for worse is very sparse on peripherals. This means less idiosyncrasy in the integration. However that means more glue and extra hardware (which can lead to cost but also to flexibility). I come from a background of parallel computing using CPUs in mainframes. To me for some applications the raw parallel nature of the Parallax Propeller makes a heck of a lot of sense when the target system parameters get unspecific. I also have experience and close ties with Atmel, Microchip, Intel and Motorola. If you know the parameters of your project specifically sometimes it makes the best sense to use a microcontroller / microprocessor that is most closely designed for that purpose as compared to the Propeller which you can probably massage into that purpose. As far as raw horsepower is concerned...there are plenty of things that a pile of Parallax Propellers can be tweaked to do that the purpose built cRIO would need to be redesigned for. There is, at least to me, a comfortable middle ground where the Parallax Propeller is a real design option just as the ARM, the Atmel, and the PIC. As far as the concerns about math, floating point, hardware support....virtually no student I have seen in FIRST is writing code for the cRIO in assembler. The ability to yield pure untainted performance is highly dependent on the quality of the byte interpreter or the compiler optimization. If you really need that kind of raw math performance there are many options including software and hardware coprocessors. One could debate the deciding factors on the impact for a very long time. Obviously there is a very real limit in which the students will get lost in the large piles of minutia that will ensue. Last edited by techhelpbb : 19-02-2013 at 13:25. |
|
#13
|
|||||
|
|||||
|
Re: Motor Drivers
The propeller has basically no peripherals. While that gives you a lot of flexibility in code, there are some things that should stay peripherals.
I work professionally with a MPC5600 series processor, which has a lot of peripherals. The eTPU (Time Processing Unit), eMIOS (Modular Input Output System), and DMA (Direct Memory Access) alone on the chip I am currently working with would take around 192 propeller cogs to get something close in functionality, and the TPUs also additional peripherals to synthesize clocks (e.g. angle clock/angle timestamp) and manage timestamps/clocks that would have to be replicated somehow. This dosen't include SPI, QADC or the actual PowerPC itself. While you could likely move some of the algorithms into the cogs that deal with the IO, you would basically need over 200 cogs to get the low and some mid-level software done, and we haven't even touched comm, OS, or high-level application code. A good C compiler is basically a requirement for an embedded platform these days, especially with autocoding tools which generate C code from models. |
|
#14
|
||||
|
||||
|
Re: Motor Drivers
Quote:
Realistically speaking if we can compare the Parallax Propeller 1 to the cRIO which includes the FPGA it's only fair to consider the inclusion of similar hardware. Also there are OS for the Parallax Propeller. I can't argue that you should back-hand your way to the sort of integrated functions you enjoy on your microcontroller / microprocessor of choice if you don't have some other reason to do it. Surely if those peripherals are your highest priority you'd be foolish to try to round the square peg to fit that hole. Especially if those peripherals are some kind of proprietary IP. Still I can drive a FIRST robot on a single Parallax Propeller and it would be sort of like the performance of a bunch of the old IFI control systems. Last edited by techhelpbb : 19-02-2013 at 14:15. |
|
#15
|
||||
|
||||
|
Quote:
|
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|