M16 / 324P eltérő ADC?

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Avatar
Bence
Tranzisztorgyógyász
Hozzászólások: 166
Csatlakozott: 2007. október 30. kedd, 6:00
Tartózkodási hely: Budapest

HozzászólásSzerző: Bence » 2011. május 14. szombat, 22:14

Sziasztok!

Itt egy egyszerű program ADC kezelésére ATMega324P-hez:

Kód: Egész kijelölése

$regfile = "m324pdef.dat"
$crystal = 20000000
$baud = 31250
$hwstack = 32
$swstack = 10
$framesize = 40

Config Adc = Single , Prescaler = 128 , Reference = Internal_2.56       'ADC belső 2.56 v-os referenciával
Start Adc

Dim X As Word
Dim X_e As Word


Do


  X = Getadc(4)
  Shift X , Right , 3
  If X_e <> X Then
    X_e = X
    Print Chr(&Hb0) ; Chr(&H01) ; Chr(x) ;
  End If

Loop


End


A program teljesen jól működik Mega16-ban, de 324P-ben nem.

Ha a potméter 0-n van, akkor 0-t küld, ha egy kicsit tolom felfelé, akkor össze-vissza mutat mindent és egy kicsivel feljebb már 127-et (maximumot) mutat.

Ugyanazon a nyákon cserélem ki a két uC-t, de a 324-essel nem akar működni. A 16-ot viszont még húzom is 16 MHz helyett 20 MHz és azzal teljesen jó.

Ha beállítok 8-as előosztást és 2,5 MHz-en futtatom akkor már végig mutatja az értékeket 0-127-ig ahogy tolom, de nem lineárisan.

2.0.5.0-s és 1.11.9.0-s Bascommal is próbáltam.

Ez mitől lehet?
Bence

Avatar
Robert
Elektronbűvölő
Hozzászólások: 9993
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

HozzászólásSzerző: Robert » 2011. május 15. vasárnap, 7:19

M324P: 1.1V v. 2.56V a belső refernciafesz.

Az ADC sebessége 50...200kHz közt kell legyen azaz 20MHz/128=156kHz (OK)

Prescale=auto nem jó?

Avatar
Bence
Tranzisztorgyógyász
Hozzászólások: 166
Csatlakozott: 2007. október 30. kedd, 6:00
Tartózkodási hely: Budapest

HozzászólásSzerző: Bence » 2011. május 15. vasárnap, 9:48

Most a 2.56-os belső referenciára van állítva, de próbáltam 1.1 és AVCC-vel is. Precsaler = Auto-t is próbáltam. Sehogy sem működött. :(
Bence

Avatar
Robert
Elektronbűvölő
Hozzászólások: 9993
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

HozzászólásSzerző: Robert » 2011. május 15. vasárnap, 9:54

VccA, GNDA is be van kötve? nem csak a Vcc és a GND?

VRef lábon a tápszűrő kondi ott van? a VRef és a GND közt mekkora feszültséget mérsz?

Avatar
Bence
Tranzisztorgyógyász
Hozzászólások: 166
Csatlakozott: 2007. október 30. kedd, 6:00
Tartózkodási hely: Budapest

HozzászólásSzerző: Bence » 2011. május 15. vasárnap, 10:18

Nos megvan a hiba: nagyon érdekes...

Szóval a nyákon volt egy szakadás ezért a VCC láb nem volt bekötve. A GND, az AGND és az AVCC mind be volt kötve, csak a normál VCC nem.

Így viszont az az érdekes hogy Mega16 miért működött és a 324 más funkciói is működtek, csak az ADC nem.
Bence

Avatar
Robert
Elektronbűvölő
Hozzászólások: 9993
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

HozzászólásSzerző: Robert » 2011. május 15. vasárnap, 10:37

M16 esetén a belső összekötés kisebb ellenállású, M324P esetén magasabb az ellenállása. A VCC feszültség így M324P esetén alacsonyabb lett...

Avatar
Bence
Tranzisztorgyógyász
Hozzászólások: 166
Csatlakozott: 2007. október 30. kedd, 6:00
Tartózkodási hely: Budapest

HozzászólásSzerző: Bence » 2011. május 15. vasárnap, 11:39

Így érthető, köszönöm!
Bence


Vissza: “Bascom-AVR nyelvű programozás (AVR programozásának lehetőségei)”

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég