View previous topic :: View next topic |
Author |
Message |
neochrome32
Joined: 09 Jun 2013 Posts: 153
|
40MIPs and 70MIPs |
Posted: Thu Aug 07, 2014 7:46 pm |
|
|
Hi guys, i got two chips
a dsPIC33FJ128MC804 - 40MIPs
and
a PIC24EP64GP204 - 70MIPs
now the issue i am having is while I'm do believe I've got them running at their highest speeds,
i don't see any significant speed improvements! only a slight boots
a 10MIPS and a 16 MIPS there is a big difference (those are 8bit)
I've also ran a SOFTWARE SPI for an SDCARD sequence
I'm using 2, one fast, one slow (slow for initial speeds) while this is a great solution to an already created device, the 70MIPs even at full speed software should match if not out perform? the 40MIPs (hardware spi)
OOORRR is software spi just simply bottle necking because it is a form of bit-banging?
(I've been awake a few more hours after bed so my brains a little fried)
Thanks guys ![Smile](images/smiles/icon_smile.gif) |
|
![](templates/subSilver/images/spacer.gif) |
Ttelmah
Joined: 11 Mar 2010 Posts: 19369
|
|
Posted: Fri Aug 08, 2014 12:34 am |
|
|
Software SPI, needs perhaps 15+ instructions per bit. Hardware SPI can send bits up to twice the instruction rate. So potentially 'best case' software SPI, is something like 30* slower than hardware SPI.... |
|
![](templates/subSilver/images/spacer.gif) |
asmallri
Joined: 12 Aug 2004 Posts: 1634 Location: Perth, Australia
|
Re: 40MIPs and 70MIPs |
Posted: Fri Aug 08, 2014 1:24 am |
|
|
neochrome32 wrote: | Hi guys, i got two chips
a dsPIC33FJ128MC804 - 40MIPs
and
a PIC24EP64GP204 - 70MIPs
now the issue i am having is while I'm do believe I've got them running at their highest speeds,
i don't see any significant speed improvements! only a slight boots
a 10MIPS and a 16 MIPS there is a big difference (those are 8bit)
I've also ran a SOFTWARE SPI for an SDCARD sequence
I'm using 2, one fast, one slow (slow for initial speeds) while this is a great solution to an already created device, the 70MIPs even at full speed software should match if not out perform? the 40MIPs (hardware spi)
OOORRR is software spi just simply bottle necking because it is a form of bit-banging?
(I've been awake a few more hours after bed so my brains a little fried)
Thanks guys ![Smile](images/smiles/icon_smile.gif) |
Post your code and let's have a look. Sounds like you do not have the clock/config bits are not being set appropriately. If you are trying to run the hardware SPI bus speed above 10Mbps (actual SPI bus speed) then you need to be very careful with the PCB layout. Getting the SD card running in SPI mode at speeds greater than 10MHz can be an issue - depending on the processor you may need to look at SPI clock skew. _________________ Regards, Andrew
http://www.brushelectronics.com/software
Home of Ethernet, SD card and Encrypted Serial Bootloaders for PICs!! |
|
![](templates/subSilver/images/spacer.gif) |
neochrome32
Joined: 09 Jun 2013 Posts: 153
|
|
Posted: Fri Aug 08, 2014 11:49 am |
|
|
Ttelmah: again i think you hit the nail on the head! 30* slow?? OH MAN when i do the V2.0 of my board, this thing should fly!.
The board is fairly close to the cpu and there is a noise decoupler on the power pins on the sdcard, improved it by QUITE A LOT!
On my 40MIPs its so fast, but 25mhz is working just getting about 1meg
but seems to be rubbish if without that 100nf cap.
(which i disconnected for just fun)
I wrote a SID emulator chip (minus the filter... too dumb to figure that out) on 40mips sounds ok, but 70mips should make it sound amazing?
** 30 instructions per Bit Bang? even with IO on the fast line? |
|
![](templates/subSilver/images/spacer.gif) |
Ttelmah
Joined: 11 Mar 2010 Posts: 19369
|
|
Posted: Fri Aug 08, 2014 2:28 pm |
|
|
First thing, is that assuming a symmetrical clock, you have to delay the 'unused' half bit time to match the 'working' one.
Now, with SPI, there is a transfer in both directions at the same time.
So set the clock, then you rotate the 16bit output value, test the carry, set or clear the output bit to match the carry, read the input bit on the other line, and rotate this into the word you are using to assemble the reply, then toggle the clock, decrement the counter, add a delay so this half cycle is the same, and loop back to the start if the counter hasn't finished....
A lot of cycles. |
|
![](templates/subSilver/images/spacer.gif) |
bkamen
Joined: 07 Jan 2004 Posts: 1611 Location: Central Illinois, USA
|
|
Posted: Mon Aug 11, 2014 12:36 pm |
|
|
Just for the record:
Could you please write more descriptive topic subjects?
next:
40 and 70MIPS are HUGE in speed -- but any zippy CPU can be crippled with things like:
* Software implemented communications (like software serial)
* Poor or NO use of interrupts
* Poor use of buffering
* High use of (and this is important) BLOCKING FUNCTIONS. (like delay_ms)
That last one is important.
When I want to make the most of any CPU, I never use blocking functions unless critical. no uses of delay_xx, everything is interrupt driven if I can help it. Main() might be just a big state machine.
So -- let's keep that in mind. Poor software design can bring any CPU to its knees.
Use those hardware modules, that's what they're there for.
-Ben _________________ Dazed and confused? I don't think so. Just "plain lost" will do. :D |
|
![](templates/subSilver/images/spacer.gif) |
neochrome32
Joined: 09 Jun 2013 Posts: 153
|
|
Posted: Mon Aug 11, 2014 6:16 pm |
|
|
Sorry for the poor topic headers...
currently the software use of things are when the Sid is loading, after that its pretty much not used..
there IS a double in speed so pretty much i was expecting WAY more... so in the end i found it was doing what i asked..
the board design was for another chip so the software SPI isn't an issue anymore for right now...
i was even able to over clock this!
setup_oscillator(OSC_RC, 140000000, 5500000);
didn't expect this to work!
basically im just playing cowboy with this thing now. |
|
![](templates/subSilver/images/spacer.gif) |
Ttelmah
Joined: 11 Mar 2010 Posts: 19369
|
|
Posted: Tue Aug 12, 2014 12:22 am |
|
|
Don't be surprised at this.
Remember, that the rated speed, is for the full range of legal supply voltages, and temperatures, and is what the manufacturer 'warrants' the supplied chips to do.
The actual achievable speed on 99% of chips will be higher over the entire range, and for a limited range of temperature and voltage, will typically be up to 20% higher than the specification.
However don't then be surprised if 'odd' problems appear with a small change in supply voltage, or ambient temperature....
One thing that will commonly 'help', is adding extra cooling. |
|
![](templates/subSilver/images/spacer.gif) |
neochrome32
Joined: 09 Jun 2013 Posts: 153
|
|
Posted: Tue Aug 12, 2014 5:53 pm |
|
|
i've noticed! its a pretty cool boost! though i normally like to keep things as normal speeds.. since your right, its at the warrenty and expected rates! :D
thanks buddy ![Smile](images/smiles/icon_smile.gif) |
|
![](templates/subSilver/images/spacer.gif) |
|