mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Frage zu VPB und IODIR beim ARM7


Autor: Birger M (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte ein analoges Signal am Eingang 1 einlesen, was mit dem 
folgenden Code auch funktioniert. Den Code habe ich im Manual gefunden:
int getWert()
{
  unsigned int val;
  
  /* Setup the A/D converter */
  VPBDIV = 0x00000002;  /* Set the Pclk to 30MHz */
  IODIR1 = 0x00FF0000;  /* P1.16..23 defined as Outputs */
  ADCR = 0x00210602;    /* Setup A/D: 10-bit AIN1 @ 3MHz */
  
  ADCR |= 0x01000000;    /* Start A/D conversion */
  while((ADDR & 0x80000000) == 0);  /* Wait for the conversion to complete */
  val = ((ADDR >> 6) & 0x03FF);    /* Extract the A/D result */
  
  return val;
}

Nun habe ich eine Frage zu den Einstellungen von VPBDIV. Warum wird der 
Pclk auf 30MHz gesetzt und nicht auf einen anderen Wert? Hat das einen 
bestimmten Grund?

Und warum wird mit IODIR1 gesagt das die Pins von P1.16 bis .23 als 
Outputs deklariert werden? Dies könnte man doch weg lassen oder warum 
wird dies im Beispiel des Manual drin gelassen?

Wo wird bei ADCR gesagt das der AIN1 mit 3MHz läuft? Rechnet man hierfür 
30MHz (Pclk) / 10-bit ?

Danke,
Birger

Autor: Mark .. (mork)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Birger,

>Nun habe ich eine Frage zu den Einstellungen von VPBDIV. Warum wird der
>Pclk auf 30MHz gesetzt und nicht auf einen anderen Wert? Hat das einen
>bestimmten Grund?

VPBDIV teilt den Prozessortakt für die Peripherie. Wahrscheinlich läuft 
der µC mit 60 MHz, 60/2 währen dann 30 MHz.

Warum die Bits in IODIR1 kann man nicht sagen, wahrscheinlich hat es 
etwas mit der restlichen Code zu tun, auf die Funktion sollte es keinen 
Einfluss haben.

>Wo wird bei ADCR gesagt das der AIN1 mit 3 MHz läuft? Rechnet man hierfür
>30 MHz (Pclk) / 10-bit ?

Lies mal im Datenblatt, was in das ADCR-Register reinkommt: die Bits 
8-15 sind  der Prescaler für den ADC. In diesem Fall sind es 0x06. 30 
MHz/(0x06+1)=4,29 MHz, der ADC wird also mit 4,29 MHz betrieben un nicht 
mit 3 MHz, der Kommentar ist also falsch.

MfG Mark

Autor: Birger M (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Mark,

stimmt der Prozessor läuft bei 60MHz und somit erhält man auch die 30MHz 
für VPB. Aber man könnte den Teiler auch auf 4 stellen oder 1. Meine 
Frage ist wann nimmt man welchen Wert und warum?
Kennst du oder jemand anderes vielleicht die Ausschrift für die 
Abkürzung VPB?

Stimmt der ADC wird mit 4,5MHz betrieben also fast 4,29MHz. Dann ist das 
wirklich ein Kommentarfehler.

Gruß,
Birger

Autor: Robert Teufel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Birger,

man nimmt den Wert "1" wenn man fuer irgendein Peripheral die maximale 
Geschwindigkeit braucht. Du hast nicht geschrieben welcher LPC es ist 
aber z.B. der LPC213x/214x um die SSP bei 30 Mbit/sec lauden zu lassen 
muss VPBDIV auf 1 sein.

Man nimmt den Teiler 4, wenn man die Timer z.B. nur bei ein paar MHz 
laufen hat und nicht hochaufloesende PWM generieren moechte. Der Teiler 
4 spart ein paar mA wenn alle Peripherals in Betrieb sind.

Also generell, kleiner Teiler 1 oder 2, schnellere Peripherals, Teiler 2 
oder 4 spart Strom.

Robert

Autor: Birger M (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Robert,

danke erst einmal für deine Antwort! Das hilft mir schon einmal weiter.

Könnte mir vielleicht auch noch jemand sagen wofür die Abkürzung VPBDIV 
steht? DIV steht doch für divider also Teiler und wofür steht VPB?

Danke,
Birger

Autor: Mark .. (mork)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
VPB=VLSI Peripheral Bus.

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.