Atmega <-> XMega PortInit und Abfrage

  • 1
  • 2
  • 3
  • 4
  • 5
  • Page 2 of 5
pvs-deck
PowerUser
Avatar
Gender:
Age: 53
Homepage: pvs-deck.de
Posts: 1341
Registered: 02 / 2009
Subject:

Re: Atmega <-> XMega PortInit und Abfrage

 · 
Posted: 20.05.2012 - 17:55  ·  #9
Hallo Mike,

Was für eine Version nutzt Du?
Ich benutze V5.02.00

Gruß
Thorsten
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: Atmega <-> XMega PortInit und Abfrage

 · 
Posted: 20.05.2012 - 18:04  ·  #10
Hallo Thorsten,
es ist wie immer: Code Schnipsel helfen mir nicht weiter. :nein:
Ich brauche eine kleine App wo ich das Problem nachvollziehen kann.
btw.
Seit der REV 5.02.00 hat sich mit der XMega Bitverarbeitung einiges getan.

rolf
tramike
 
Avatar
 
Subject:

Re: Atmega <-> XMega PortInit und Abfrage

 · 
Posted: 20.05.2012 - 18:19  ·  #11
Hallo Thorsten,

ich verwende 5.02.01

Gruss,
Mike
pvs-deck
PowerUser
Avatar
Gender:
Age: 53
Homepage: pvs-deck.de
Posts: 1341
Registered: 02 / 2009
Subject:

Re: Atmega <-> XMega PortInit und Abfrage

 · 
Posted: 20.05.2012 - 19:02  ·  #12
Hallo Rolf.
Quote by rh

Hallo Thorsten,
es ist wie immer: Code Schnipsel helfen mir nicht weiter. :nein:
Ich brauche eine kleine App wo ich das Problem nachvollziehen kann.
btw.
Seit der REV 5.02.00 hat sich mit der XMega Bitverarbeitung einiges getan.

rolf


Hier der Code, das verodern hat jetzt komischer Weise in den kleinen Testprogramm funktioniert.
Die anderen Punkte laufen aber immer noch nicht.

Code
program TestBit;

{$NOSHADOW}
{ $WG}                     {global Warnings off}

Device = xmega256A3, VCC=3.3;
{ $BOOTRST $20000}         {Reset Jump to $20000}

Define_Fuses
//  Override_Fuses;
  NoteBook   = A;
  COMport    = USB;
  LockBits0 = [];
  FuseBits0  = [];
  FuseBits1  = [];
  FuseBits2  = [];


Import SysTick,SerPortC0, XMegaSupport, I2Cport;

From System Import ;


Define
  OSCtype = extClock =1843435,
                     PLLmul=17,
                     prescA=1,
                     prescB=1,
                     prescC=1;
  SysTick        = 10;             {msec}
  StackSize      = $0512, iData;
  FrameSize      = $0512, iData;
//Serports
  SerPortC0      = 19200, parNone;              // Monitor
  RxBufferC0     = 255, iData;
// I2C Ports
  I2Cport        = PortC;
  I2Cdat         = 0;
  I2Cclk         = 1;
Implementation

{$IDATA}

{--------------------------------------------------------------}
{ Type Declarations }

type


{--------------------------------------------------------------}
{ Const Declarations }

{--------------------------------------------------------------}
{ Var Declarations }
{$IDATA}
var
  TestByte : Byte;

  TestBit  [@TestByte, 3 ] : bit;

{--------------------------------------------------------------}
{ functions }



{--------------------------------------------------------------}
{ Main Program }
{$IDATA}

begin

  EnableInts($87);
  loop
    WriteLn(SeroutC0, '----------');
    TestByte:= 0;
    TestBit:= True; // kein Erfolg
    WriteLn(SeroutC0, 'BYTE0:'+ByteToBin(TestByte));
    mDelay(1000);

    TestByte:= 0;
    TestByte.2:=True; //kein erfolg
    WriteLn(SeroutC0, 'BYTE1:'+ByteToBin(TestByte));
    mDelay(1000);
    
    TestByte:= 0;
    TestByte:= TestByte or %00000010;  // Jetzt in diesem kleinen Demoprogramm geht es warum auch immer
    WriteLn(SeroutC0, 'BYTE2:'+ByteToBin(TestByte));

    mDelay(1000);
    TestByte:= 0;
    Incl(TestByte,2);  // kein Erfolg
    WriteLn(SeroutC0, 'BYTE3:'+ByteToBin(TestByte));
    mDelay(1000);
    
    TestByte := %00000010;  // das geht
    WriteLn(SeroutC0, 'BYTE4:'+ByteToBin(TestByte));
    mDelay(1000);
    
  endloop;
end TestBit.


Den ASM-Code hänge ich mal mit dran.

Bei der Ausgabe
Code
----------
BYTE0:00000000
BYTE1:00000000
BYTE2:00000010
BYTE3:00000000
BYTE4:00000010
----------

Nur 2 von 5 Möglichkeiten gehen, ich habe keine AHNUNG warum, das ist das selbe Problem was ich mit den PortInits hatte :(

Schau doch mal drüber.

Gruss
Thorsten
tramike
 
Avatar
 
Subject:

Re: Atmega <-> XMega PortInit und Abfrage

 · 
Posted: 20.05.2012 - 19:30  ·  #13
Hallo Thorsten,

bei mir sieht der Output wiefolgt aus:
Quote
----------
BYTE0:00001000
BYTE1:00000100
BYTE2:00000010
BYTE3:00000100
BYTE4:00000010


An Deinem Code geändert habe ich nur folgendes, weil ich gleich diese Hardware eingespannt habe:
Code
Device = XMega256A3U, VCC=3.3;
OSCtype = extXTAL=16000000, PLLmul=8, prescA=1, prescB=2, prescC=1;
SerPortE0 = 57600, Stop1, timeout; // E0 statt C0 und mehr Baud


Wie gesagt, REV 5.02.01
Wenn's nicht die Compiler-REV ist, dann vielleicht, dass ich ein "U" xmega habe.

Gruss,
Mike
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: Atmega <-> XMega PortInit und Abfrage

 · 
Posted: 20.05.2012 - 20:50  ·  #14
Hallo Mike,

zumindest alle XMegaxxxA Versionen sollten die bei der Bit Verarbeitung eingesetzten Opcodes LAS, LAC und LAT beherrschen. Steht so im Datenblatt. Auch ich habe Thorstens Zeilen mit einem XMega256A3U getestet und alles war ok!

rolf
pvs-deck
PowerUser
Avatar
Gender:
Age: 53
Homepage: pvs-deck.de
Posts: 1341
Registered: 02 / 2009
Subject:

Re: Atmega <-> XMega PortInit und Abfrage

 · 
Posted: 20.05.2012 - 21:16  ·  #15
Hallo Rolf.
Quote by rh

zumindest alle XMegaxxxA Versionen sollten die bei der Bit Verarbeitung eingesetzten Opcodes LAS, LAC und LAT beherrschen. Steht so im Datenblatt. Auch ich habe Thorstens Zeilen mit einem XMega256A3U getestet und alles war ok!

Ja, aber es geht nicht und ich beiße mir hier etwas die Zähne aus ;)

Ich habe eine Funktionsbibliothek mit Flankenerkennung und Filterung, die auf dem Atmega ohne Probleme läuft, aber auf dem XMEGA irgendwie nicht :(
Hoffentlich bekommste was raus.

Ich habe mir den XMega256A3U nichtgenau angeschaut, da dieser die ganze zeit nur schlecht lieferbar war.

Der Unterschied ist doch hauptsächlich Fehlerbeseitigung und USB oder?

Gruss
Thorsten
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: Atmega <-> XMega PortInit und Abfrage

 · 
Posted: 20.05.2012 - 21:25  ·  #16
Hallo Thorsten,

Fehlerbeseitigung und USB. Verbesserter DAC, kein S/H mehr sondern echte DAC Kanäle und vieles mehr. Ein Umstieg auf USB Versionen der XMegas ist eigentlich ein MUSS.
Entweder ist es bei Ihnen tatsächlich der (veraltete) XMega oder die veraltete Compiler Version. Denn bei mir und bei Mike funktioniert es ja. Ich tippe eher auf die Compiler Version!
btw.
Die XMegas brauchen absolut keinen externen Quarz. Die internen RC-Osc sind extrem genau, so dass sie sogar für den USB Clock ausreichen!
In der Praxis werden da für 32MHz erreicht: 31.94-31.97 MHz. Zwar keine Quarz Genauigkeit aber für 99.9% aller Anwendungen ausreichend.

rolf
  • 1
  • 2
  • 3
  • 4
  • 5
  • Page 2 of 5
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 16 · Cache Hits: 15   141   156 · Page-Gen-Time: 0.034055s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI