www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ARM LPC2387 - Trotz 72MHz CCLK nur ca. 500kHz bei Software-Pin-Toggle?!


Autor: Alexander I. (daedalus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich arbeite gerade an einem System bei dem der LPC2387 verwendet wird. 
Entwicklungsumgebung ist KEIL µVision4. Ein Mitarbeiter sollte nun etwas 
abschätzen, was der Controller so "drauf" hat. Dazu gabs auch einen ganz 
einfachen Test:
//Pseudo-Code
int main()
{
PreparePorts();
while(1)
{
 TogglePin();
}
}

Er soll sich also einfach "vollgas" an einem PIN abtoggeln und sonst 
nichts machen. Mit dem Oszi ausgemssen gibt das gerademal jämmerliche 
400kHz hin! Das kann doch wohl nicht alles sein, oder?

Ich kenne mich mit dem Controller nicht so gut aus, ich hab nur mal 
testhalber in die PLL-Config reingeschaut und die sagt:

OSCEN=1
CLKSRC = Main Osc.
PLLCFG.MSEL = 12
PLLCFG.NSEL = 1
CCLKSEL = 4

Bei einem 12 MHz Quarz (MCB2300 Demo-Board) müsste das eine PLL-Frequenz 
von 288 MHz ergeben, die durch 4 geteilt 72 MHz CCLK ergibt. Das sieht 
soweit OK aus. Wenn ich beim KEIL ins Debugging gehe finde ich diese 
Werte auch unter Peripherals > Clocking and Power Control wieder. 
Scheint also alles in Ordnung zu sein, dennoch kommt mir das echt 
schneckenlangsam vor.

Kann das sein, dass man trotz 72 MHz Systemtakt nur 400 kHz am Pin 
schafft?

Weitere Frage::
Die JTAG-Programmiergeschwindigkeit kann ich nur auf maximal 500kHz 
einstellen... schafft man da auch irgendwie mehr? Scheint ja damit 
zusammenzuhängen, dass der Controller erst später auf die PLL 
umgeschaltet wird und zunächst nur der RC-Osziallator mit 4 MHz läuft.

Vielen Dank vorab.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fast-I/O verwenden, oder wie immer die genau heisst. Die LPC2000 können 
die gleichen Ports einerseits über die (alten, langsamen) GPIOs, 
andererseits über die Fast-I/O ansprechen.

Der GPIO-Zugriff hängt zudem vom APB-Takt (PCLK) ab, die Fast-I/O nur 
vom AHB-Takt.

Autor: Alexander I. (daedalus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es handelt sich um Pin2.0. Die beschriebenen Registern fangen alle mit 
FIO2... an, ich glaube das ist schon die Fast-I/O-Variante.

Autor: Alexander I. (daedalus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fehler gefunden, der Kollege hat beim TogglePin() fleißig Bits 
geshiftet, da irgendwelche Macros verwendet wurden. Jetzt hab ich 6,66 
MHz erreicht. Das sieht schon VIEL besser aus. Danke mal soweit.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.