www.mikrocontroller.net

Forum: Mikrocontroller und Elektronik AT91SAM9260 Theorie?

Autor: Michel K. (nover)
Datum: 06.05.2008 00:59

ich lese mich gerade durch die Datenblätter von Atmel.
und habe noch einige fragen zu diesem Thema.
1.(Interrupts) wenn ich das richtig verstanden habe können diese sich
gegenseitig unterbrechen aber nur wenn eine höre Priorität vor liegt (
int0 darf int1, int2 aber nicht int1) ist das richtig so?
2.(Taktgeschwindigkeit) im Datenblätter steht das ein Quarz mit 20MHz
und eine maximale Prozessor  Taktgeschwindigkeit von 240MHz zulässig
sind, die Peripherie maximal 80% so schnell getaktet werden darf wie der
Prozessor aber nicht schneller als 180MHz. Warum ist hier immer die rede
von 180MHz  Prozessor  Taktgeschwindigkeit?
3.(SPI) wenn ich richtig liege kann ich jedem SPI Kanal eine eigene
Taktgeschwindigkeit zuordnen ist das richtig (SPI1.1 mit 2MHz SPI1.2 mit
8MHz usw.)?

ich danke euch im voraus Michel
Autor: Michel K. (nover)
Datum: 06.05.2008 15:38

noch etwas das ich nicht verstehe ist:
die MMU wie schnell ist diese da NAND Flach ja mehr oder weniger schnell
ist und SDRam mit 100 MHz betrieben wird.
Autor: Michel K. (nover)
Datum: 06.05.2008 22:31

Keiner da ?
Autor: Wolfgang Mües (Gast)
Datum: 06.05.2008 22:53

Interrupt-Priorität: Kann ich jetzt gar keine Aussage zu machen. In
Linux kannst Du nur bestimmen, ob Deine Interrupt-Routine unterbrechbar
ist oder nicht.

CPU-Geschwindigkeit: 180 MHz für den Typen im erweiterten
Temperaturbereich, 210 MHz bei 0-70 Grad.

SPI: die Takte sind programmierbar, ja.

MMU: ist schnell genug. Das NAND-Flash wird übrigens NICHT verwendet, um
Programmcode auszuführen. Das Programm wird ins SDRAM kopiert und dort
ausgeführt.
Autor: manni (Gast)
Datum: 31.05.2008 13:33

Hallo Michel,

du hast es ganz richtig erkannt. Ich habe gerade meinen Stack auf diesen
Prozessor (AT91SAM9XE) angepasst und bin zu einem entäuschenden
Ergebniss gekommen. Egal wie ich es anstelle, Er ist genau so langsam
wie die ARM7(AT91SAM7X,LPC2468). Es ist nicht nur der SDRAM-BUS, sondern
auch der FLASH der die Geschwindigkeit drückt(in disem Fall intern).
Alles was unter 4 wait states liegt, führt zu einem "TILT". Die Atmel -
Lib(Startup.c) gibt 6 wait states vor.???

Eigentlich kannst du dir deisen Prozessor ersparen.
Autor: Robert Teufel (Gast)
Datum: 31.05.2008 18:20

@manni

erstaunt mich etwas! Das Flash im SAM9XE512 ist ganz anders aufgebaut
als im SAM7X und wenn da keine groben Schnitzer drin sind im Memory
Interface von seiten Atmel, dann ergibt schon das neue, breite Flash,
einen Sprung in der Performance. Dazu ist der ARM926 bei gleicher
Taktrate und gleichem Speicherzugriff schlichtweg 30% schneller durch
die verbesserte CPU gegnueber einem ARM7.

Das alles gesagt, hat der 9260, um den es urspruenglich ging, den
Vorteil eines stattlichen on-chip SRAM Blockes. Fuer rechenintensive
Controll Algorithmen lassen sich Programmteile dorthin kopieren und bei
voller Rechengeschwindigkeit abarbeiten. Es handelt sich dabei naemlich
um TCM (tightly coupled memory), die schnellste Option verfuegbar bei
ARM9.

Also, SAM9XE und SAM9260 sind zwei verschiedene Paar Stiefel und da
gibts es sicher noch Optimierungspotential.

Robert
Autor: manni (Gast)
Datum: 02.06.2008 12:50

Hallo Robert,

zu Block1:
ich könnte heulen. Ist aber so. Ich tackte den AT91SAM7X nur mit 50MHz
und den AT91SAM9XE mit 98..MHz. Gerade davon habe ich mir eine
Geschwindigkeitsverbesserung versprochen. Nur wenn ich von den 6 wait
states auf 4 wait states gehe, dann ist er minimal schneller.

zu Block2
Ist ne gute Idee. Aber..., was für ein Programieraufwand und das
kopieren kostet ja auch Zeit.

Ich wäre wirklich für jede Information dankbar. Zurzeit komme ich nur
auf
98..MHz(PLL) und 4 Waitstates. Wenn jemand weiß, wie man auf die 240MHz
kommen soll...

manni
Autor: gerhard (Gast)
Datum: 02.06.2008 13:48

hallo manni,
frage zu deinem test:
hast du sowohl icache udn dcache enabled?
wo liegt den dein code?
wenn der im externem sdram liegt dann wundern deine ergebnisse nicht
weiter.
wie breit ist dein sdram?

alles was zeitkritisch ist sollte im internen sram liegen, nur das hat
single cycle access. selbst das interne flash ist zwar 128 bit breit
aber hat eine zugriffszeit von 60ns.

gruss
gerhard
Autor: manni (Gast)
Datum: 05.06.2008 21:27

Hallo Gerhard

Das war der Tipp der Woche

ich habe nun den ICache sowie den DCache aktiviert und siehe da,
er ist doppelt so schnell.

IAR Anpassung:
Ich habe die 4 Zeilen nach "label:" eingefügt.

resetHandler:
        /* Set pc to actual code location (i.e. not in remap zone) */
        LDR     pc, =label

label:
        /* Set I Cache and D Cache*/
        MRC p15, 0, r0, c1, c0, 0 ; read CP15 register 1 into r0
        ORR r0, r0, #(0x1 <<12) ; I Cache enable
        ORR r0, r0, #(0x1 <<2) ; D Cache enable
        MCR p15, 0, r0, c1, c0, 0 ; write CP15 register 1

        /* Perform low-level initialization of the chip using
LowLevelInit() */
        LDR     r0, =LowLevelInit
        LDR     r4, =SFE(CSTACK)
        MOV     sp, r4
        MOV     lr, pc
        BX      r0

Antwort schreiben

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

Wichtige Regeln - erst lesen, dann posten!

  • Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
  • Aussagekräftigen Betreff wählen
  • Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
  • JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
  • Schaltpläne, Screenshots usw. als PNG oder GIF anhängen

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel






webmaster@mikrocontroller.netImpressumWerbung auf Mikrocontroller.net