ARM MCU snabb men endast 3,5 MHz på I/O ..?

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

ARM MCU snabb men endast 3,5 MHz på I/O ..?

Inlägg av blueint »

http://www.avrfreaks.net/index.php?name ... ic&t=68833
"My test on a LPC2103 running at 60 MHz, show that the max frequency avilable on an I/O pin was 3.5 MHz for a loop that did"

Stämmer det att ARM MCUer har så låg respons på I/O portarna?
Användarvisningsbild
Icecap
Inlägg: 26786
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: ARM MCU snabb men endast 3,5 MHz på I/O ..?

Inlägg av Icecap »

Jag har ingen erfarenhet eller liknande men rent omedelbart skulle jag räkna lite:
60MHz:2 = 30MHz (kan ju fint vara sekvenscyklar som anges...)
Om sekvensen som växlar läge på portpinnen ser ut som t.ex. "Pinne ^= true;" kommer detta att ta runt 7-10 instruktioner att utföra.
(Har testat lite och på de µC jag lekar med är
if(Pinne) Pinne = 0;
else Pinne = 1;
en del snabbare än
Pinne ^= true;)

Så låt oss säga att hela snudden tar runt 8 instruktioner pga. kass programmering, då blir det 30MHz:8 = 3,75MHz vilket alltså är helt OK och realistisk. I loopen ska det ju även finnas en "hoppa till starten" som också tar tid så jag ser talet som ganska realistisk för en programmör som inte helt har koll på saken.

Sedan finns det lite annat som inte framgår - kan den som har kollat detta ens mäta dessa frekvenser tillförlitligt? Är det på ett oscilloskop som klarar av bandbredden?

Kan det vara så att h*n har varit tvungen att sänka frekvensen så pass att det syns på oscilloskopet?

Så som så ofta förut: tveksamma data, kan vara realistiska men jag tror inte att de är det! Jag är ganska säker på att de kan gå full hastighet på portpinnar också, i annat fall skulle ingen vilja jobba med dom helt enkelt!

"Sådär, nu är porten satt, nu ska programmet bara vänta på att den faktisk växlar..."? Skulle inte tro det!
victor_passe
Inlägg: 2436
Blev medlem: 28 januari 2007, 18:45:40
Ort: Kungsbacka

Re: ARM MCU snabb men endast 3,5 MHz på I/O ..?

Inlägg av victor_passe »

PIC32 kan man uppnå nästan 40MHz på i/o pinnarna.
Det finns register som heter typ "PORTBINV" och skriver man en 1:a till bit 1 så inverteras PORTB.Pinne1.
sodjan
EF Sponsor
Inlägg: 43288
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: ARM MCU snabb men endast 3,5 MHz på I/O ..?

Inlägg av sodjan »

För det första så är nog inte 3.5 MHz "låg respons" på I/O pinnar hanterade direkt från koden.
Det är mycket mer än de allra flesta externa processer kräver.

För det andra så förklaras detta ganska ingående i det forum du länkade till.
Om du inte hade klippt ditt citat så är det ju tydligt :
Yes, that's what I say.
The architecture with the AHB bus just does not allow it, also, the pipeline "breaks" when you have a tight loop.
The ARM is not designed for fast port fiddling. It has internal devices for such. Including USB. It was never meant for hacks like bit banged I/O.
The Atmel SAM7 is way faster than the Philips variants.
My test on a LPC2103 running at 60 MHz, show that the max frequency avilable on an I/O pin was 3.5 MHz for a loop that did:
start loop:
Pin lo,
Pin Hi,
loop
Det är väl ungefär det man kan förvänta sig från vilken processorarkitektur
som helst vid motsvarande frekvens.

> PIC32 kan man uppnå nästan 40MHz på i/o pinnarna.

Men knappast om den ska göra något annat "jobb" förutom att toggla en pinne också.
(Och sannolikt inte vid 60 Mhz processorhastighet)
victor_passe
Inlägg: 2436
Blev medlem: 28 januari 2007, 18:45:40
Ort: Kungsbacka

Re: ARM MCU snabb men endast 3,5 MHz på I/O ..?

Inlägg av victor_passe »

Nej, vid 80MHz.
men koden för ARM processorn gör ju inte heller något annat?
sodjan
EF Sponsor
Inlägg: 43288
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: ARM MCU snabb men endast 3,5 MHz på I/O ..?

Inlägg av sodjan »

Nä, det är väl lite olika designval helt enkelt.
Ett ganska meningslöst test/paramater i alla fall.
Alla processorer i denna "klass" har inbyggda hårdvaruenheter
för att ta hand om höghastighetskommunikation.

Visa ett komplett kodexempel där du togglar en pinne med
40 MHz istället. D.v.s "sustained", inte bara ett par gånger...

Om ARM'en hade gjort :

Pin lo,
Pin Hi,
Pin lo,
Pin Hi,
Pin lo,
Pin Hi,
Pin lo,
Pin Hi,
Pin lo,
Pin Hi,

istället så hade det kanske blivit lite mer en 3.5 MHz (ett litet tag).
Men, som sagt, ett ganska meningslöst test i alla fall...
victor_passe
Inlägg: 2436
Blev medlem: 28 januari 2007, 18:45:40
Ort: Kungsbacka

Re: ARM MCU snabb men endast 3,5 MHz på I/O ..?

Inlägg av victor_passe »

top
PORTAINV=1
goto top
sodjan
EF Sponsor
Inlägg: 43288
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: ARM MCU snabb men endast 3,5 MHz på I/O ..?

Inlägg av sodjan »

Verkar lite osannolikt att den skulle göra två instruktioner (inkl
ett "hopp") inom samma klockcykel. Men är det så så.

(För att få ut 40 MHz på en pinne så måste man invertera
pinnen med 80 MHz, alltså lika snabbt som processorklockan...)
victor_passe
Inlägg: 2436
Blev medlem: 28 januari 2007, 18:45:40
Ort: Kungsbacka

Re: ARM MCU snabb men endast 3,5 MHz på I/O ..?

Inlägg av victor_passe »

Man får skriva:
top
PORTAINV=1;
PORTAINV=1;
PORTAINV=1;
PORTAINV=1;
PORTAINV=1;
PORTAINV=1;
...
goto TOP.

Men visst då når man inte riktigt upp i 40MHz men desto fler upprepningar av PORTAINV=1; desto närmare.
Men skriver man bara en gång får man bara 20MHz på PORTA.1(15MHz @ 60MHz sysclk)
Det är ju dock mer än 3,5MHz.
sodjan
EF Sponsor
Inlägg: 43288
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: ARM MCU snabb men endast 3,5 MHz på I/O ..?

Inlägg av sodjan »

Jorå, visst är det lite mer men...

Det är ju väldigt korkat att posta en siffra som
bl.a bygger på "rak" o-loopad kod och vid en annan
frekvens än vad det hela handlade om... :roll:
Användarvisningsbild
strombom
Inlägg: 3305
Blev medlem: 27 maj 2003, 10:50:20
Ort: Västra Götaland
Kontakt:

Re: ARM MCU snabb men endast 3,5 MHz på I/O ..?

Inlägg av strombom »

Han som skrivit inlägget på avrfreaks tror jag har samma användarnamn här på forumet, ni kan nog fråga honom. :)
Skriv svar