Fehler XMega32A4

  • 1
  • 2
  • Page 1 of 2
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

Fehler XMega32A4

 · 
Posted: 31.07.2015 - 19:49  ·  #1
Hallo,

ich bin am Verzweifeln und ich kann es mir nicht erklären.

Folgendes Programm funktioniert nicht (an Port B und D hängen 4 bzw. 2 LEDs):
Code

Program Laderegler;
 $WG}                     {global Warnings off}

Device = xmega32A4, VCC=3.05;
{ $BOOTRST $04000}         {Reset Jump to $04000}

Define_Fuses
  Override_Fuses;
  ProgMode  = PDI;
  ProgFuses = true;
  FuseBits5 = [BodAct1,BodLevel0];
  
Import SysTick;

From System Import Processes;

Define
  OSCtype        = int2MHz,
                   PLLmul=1,
                   prescB=1,
                   prescC=1;
  SysTick        = 10;                        { msec                             }
  StackSize      = $0100, iData;
  FrameSize      = $0100, iData;

  Scheduler      = iData;

Implementation
{$IDATA}
{------------------------------------------------------------------------------}
{ Type Declarations }
Type
{------------------------------------------------------------------------------}
{ Const Declarations }
Const
{------------------------------------------------------------------------------}
{ Var Declarations }
{$IDATA}
Var
{------------------------------------------------------------------------------}
{ functions }
Process ReadADC($40,$40:iData);
  Begin
    PortD:=PortD or %00000010;
    Sleep(self,50);
    PortD:=PortD and %11111101;
    Sleep(self,50);
  End ReadADC;
  
  
Procedure InitPorts;
  Begin
    PortB:= %00000000;
    DDRB:=  %00001111;
    PortC:= %00000000;
    DDRC:=  %00000011;
    PortD:= %00000000;
    DDRD:=  %00000110;
  End InitPorts;
{------------------------------------------------------------------------------}
{ Main Program }
{$IDATA}

Begin
  EnableInts($87);
  Start_Processes($87);
  InitPorts;
  Loop
    PortB:=PortB or %00000001;
    MDelay(500);
    PortB:=PortB and %11111110;
    MDelay(500);
  EndLoop;
End Laderegler.

..... wir reden jetzt mal nicht über den Sinn und Zweck des Programmes :D

Wenn ich aber OSCtype = int32MHz einstelle läuft es. Nur wieso ???????

Gruss
Harry
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

Re: Fehler XMega32A4

 · 
Posted: 31.07.2015 - 22:04  ·  #2
..... und ich versteh noch was nicht: ADCReferenz ist auf intern 1.00V, Presc auf 4. Am ADC-Eingang liegen ca. 11.5V über einen Spannungsteiler 107K zu 2.7K an (Teilerfaktor ca. 1:40), was einem ADC-Wert von ca.1160 entspricht.

Berechnet:
11.5V/((107K+2.7K)/2.7K)=0.283V
D.h. bei Uref=1.00V sollten 0.283V bei 12 Bit einen ADC von 4096x0.283=1159 erzeugen
Tatsächlich sind es aber 235 .... ca. 1/5tel davon. WIESO ???

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

Re: Fehler XMega32A4

 · 
Posted: 31.07.2015 - 22:16  ·  #3
Hallo Harry,

beim 2MHz OSC sollten PLLMUL 16 eingestellt werden.
Ansonsten läuft die komplette Kiste mit 2MHz.

rolf
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

Re: Fehler XMega32A4

 · 
Posted: 31.07.2015 - 23:14  ·  #4
Hi Rolf,

2MHz reichen mir aus - 1MHz würden mir auch reichen. Ich habe einen XMega wegen des 12Bit ADC genommen.

Mir ist noch was eingefallen: Die Berechnungen oben sind nicht besonders genau, d.h. der ADC-Wert könnte auch 1/4 des erwarteten Wertes sein und dann frage ich mich: ist das nur ein 10Bit Wandler ? Dann wären die ermittelten Werte plausibel. Aber wieso sind das dann nur 10Bit ?

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

Re: Fehler XMega32A4

 · 
Posted: 31.07.2015 - 23:46  ·  #5
Hallo Harry,

Du liest das digitale PortD als AD-Wandler Werte ?????????

rolf
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

Re: Fehler XMega32A4

 · 
Posted: 01.08.2015 - 08:13  ·  #6
Hi Rolf,

natürlich nicht. Der AD-Teil ist im Prog oben noch nicht drin. Ich importiere ADCA und verwende von dem Kanal 1-3. Referenz intern 1.00V (laut Datenblatt ist das ausreichend genau). Was bewirkt der ADCpresc genau ?
Dummerweise hab ich keinen Displayanschluss für die Programmentwicklung vorgesehen. Ansonsten hätte ich mir alles anzeigen lassen können.

Gruss
Harry
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

Re: Fehler XMega32A4

 · 
Posted: 01.08.2015 - 09:22  ·  #7
Moooooooomet, ich bin da grad auf was gestossen im AVRCo-Standard-Driver-Manual Seite 150 unter ADC-Ports XMega:
Quote

ADCrefA = REF100;
ADCprescA = 256;
ADCchansA = [0..7];

Jetzt blick ich gar nicht mehr durch. Bedeutet das, daß beim XMega die ADCs von 0-7 gehen (im Gegensatz zu den Megas von 1-8) ?

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

Re: Fehler XMega32A4

 · 
Posted: 01.08.2015 - 20:12  ·  #8
Hallo Harry,

Federn? Welche Durchmesser und Längen??

rolf
  • 1
  • 2
  • Page 1 of 2
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: 15 · Cache Hits: 14   136   150 · Page-Gen-Time: 0.02981s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI