Xmega256d3 Ports zu langsam?

Gast #2793449
Lesenswert?
• ▲
▼
Hallo,

ich habe leider immernoch Schwierigkeiten mit meinem Display, die aber 
scheinbar von einem unsauberen Pegel verursacht werden.

Deshalb habe ich einen kleinen Test geschrieben:
1
#include <avr/io.h>
2
#include <util/delay.h>
3
#define CTRL_PORT PORTA
4
#define WR_PIN 0
5
#define WR_H CTRL_PORT.OUTSET = 1<<WR_PIN; 
6
#define WR_L CTRL_PORT.OUTCLR = 1<<WR_PIN;
7

8
void Clock_init(void)
9
{
10
  OSC.CTRL |= OSC_RC32MEN_bm;
11
  while(!(OSC.STATUS & OSC_RC32MRDY_bm));
12
  CCP = CCP_IOREG_gc;
13
  CLK.CTRL = 0x01;
14
}
15
int main(void)
16
{
17
  Clock_init();
18
  _delay_ms(150);
19
  CTRL_PORT.DIR = 0xFF;
20
  while(1)
21
  {
22
    WR_L
23
    _delay_us(1);
24
    WR_H
25
    _delay_ms(1);
26
  }
27
}

F_CPU ist in der GCC Toolchain in AVR Studio 6 auf 32000000 gesetzt.
CPU ist ein ATXMEGA256D3. Dieser wird betrieben auf einem STK600 und 
einem JTAG ICE MKii.


Ich habe nun das Ausgangssignal am PORTA.0 gemessen. Signal siehe 
Anlage.
Zum Zeitpunkt der Messung habe ich außer einem kurzem Stück Kabel nichts 
anderes am besagten Portpin angeschlossen.

Warum ist dies kein sauberes Rechtecksignal?

Gruß
Philipp
Angehängte Dateien:
Gast #2793634
Lesenswert?
• ▲
▼
Hier ein paar mehr Informationen und Messergebnisse:

Vergleich Atmega2560 - Atxmega256d3


Code:
mega
1
#include <avr/io.h>
2
int main (void)
3
{
4
  DDRA= 0xFF;
5
  while(1)
6
  {
7
    PORTA = 0x00;
8
    _delay_us(1);
9
    PORTA = 0x01;
10
    _delay_us(15);
11
  }
12
}


xmega
1
#include <avr/io.h>
2
void Clock_init(void)
3
{
4
  OSC.CTRL |= OSC_RC32MEN_bm;
5
  while(!(OSC.STATUS & OSC_RC32MRDY_bm));
6
  CCP = CCP_IOREG_gc;
7
  CLK.CTRL = 0x01;
8
}
9
int main(void)
10
{
11
  Clock_init();
12
  CTRL_PORT.DIR = 0xFF;
13
  CTRL_PORT.PIN0CTRL = PORT_OPC_TOTEM_gc;
14
  
15
  while(1)
16
  {
17
    PORTA_OUT = 0x00;
18
    _delay_us(1);
19
    PORTA_OUT = 0x01;
20
    _delay_us(15);
21
  }

Praktisch das gleiche oder?
Im Anhang sieht man die Ausgabe. Beide CPUs sind auf das selbe STK600 
gesteckt worden.
Hierfür wird verwendet:
-mitgeliefertes STK600-ATMEGA2560
-STK600-RC064X-14 & STK600-TQFP64
Angehängte Dateien:

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.