-         

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 28

Thema: atmega644 und bascom -- ADC_REFMODEL

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    08.11.2006
    Ort
    olargues
    Beiträge
    776

    atmega644 und bascom -- ADC_REFMODEL

    Anzeige

    hallo leute,
    habe jetzt mal nen mega644 anstelle des 32er ausprobiert. leidert meckert Bascom bei der adc initialisierung:

    Config Adc = Single , Prescaler = 128 , Reference = Internal

    die reference = internal an.
    beim 32er geht das. laut datenblatt sind die beiden cpus in diesem bereich identisch.

    ein blick in def-dateien zeigt auch folgendes:
    beim mega32 findet sich der eintrag: ADC_REFMODEL=1
    beim 644 steht dort: ADC_REFMODEL=5

    hat jemand ne idee dazu? einfach den eintrag ändern ??
    gibts irgenwo ne beschreibung zu den def dateien?

    gruss

  2. #2
    Erfahrener Benutzer Begeisterter Techniker Avatar von albundy
    Registriert seit
    16.10.2004
    Beiträge
    282
    Hallo,

    der M32 hat nur 1 interne Referenzspannung (2,56V) und der M644 hat 2. (1,1V und 2,56V)
    Deshalb wird Bascom beim M644 mit "internal" nicht klarkommen.
    Mache es einfach "zu Fuss" ...

    Code:
    ADCSR = 7                   'Prescaler = 128
    ADMUX = 192                 'Reference = 2,56V
    
    bewirkt das gleiche wie:
    
    Config Adc = Single , Prescaler = 128 , Reference = Internal

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Hallo,
    hat mich auch interessiert, da ich auch einen 644er hab, da in der Doku nix steht, hab ich mich mal durch das Bascom gehackt, und gefunden, das es zwei weitere angaben für Reference gibt, dieses wären:
    INTERNAL_1.1
    und
    INTERNAL_2.56

    es würde da sogar noch
    INTERNALEXTCAP
    geben.

  4. #4
    Erfahrener Benutzer Begeisterter Techniker Avatar von albundy
    Registriert seit
    16.10.2004
    Beiträge
    282
    @linux_80

    da frage ich mich, warum ist so etwas in der Bascomhilfe nicht dokumentiert ?
    Zumal es ja noch einige andere interne Variablen gibt, die nirgends dokumentiert sind.

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Das ist halt so 'ne Sache mit dem Dokumentieren, da wird mal schnell was angepasst ... und schon ist die Doku nicht mehr aktuell

    Ich hatte extra nochmal schnell in der OnlineHilfe bei MCS vorbeigeschaut, aber da ist auch nix neues darüber drin

    Dokuschreiben hat leider nicht immer die oberste Priorität

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    08.11.2006
    Ort
    olargues
    Beiträge
    776
    danke für die tipps. das wird helfen.. da bin ich sicher. interessanterweise ist im datenblatt von atmel (seite 245 / 21.6.2) kein wort über die zusätzliche referenz von 1,1volt nix zu lesen. an andrenen stellen ist dann schon erwähnt. nur da hatte ich offenbar nicht gesucht.

    also dann
    danke

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    08.11.2006
    Ort
    olargues
    Beiträge
    776
    Zitat Zitat von linux_80
    Hallo,
    hat mich auch interessiert, da ich auch einen 644er hab, da in der Doku nix steht, hab ich mich mal durch das Bascom gehackt, und gefunden, das es zwei weitere angaben für Reference gibt, dieses wären:
    INTERNAL_1.1
    und
    INTERNAL_2.56

    es würde da sogar noch
    INTERNALEXTCAP
    geben.

    wäre ja nur noch zu klären, was der INTERNALEXTCAP so bewirkt.

    gruss

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    So, dann hab ich nommal weitergesucht,
    INTERNALEXTCAP ist für ADC_REFMODEL=2
    dieses sind bis jetzt nur Tiny15L und Tiny26, und da gibts die Möglichkeit Intern mit oder ohne externen Kondensator !
    Das ist bei den kleinen Gehäuseformen schon mal praktisch ein Pin mehr zur Verfügung zu haben, statt mit einem Kondensator zu verschwenden.

    Ja, wenn man's weiss

    PS:
    wenn wir schon dabei sind, für ADC_REFMODEL gibts bis jetzt 6 Möglichkeiten:
    Code:
    0 - Classic AVRs, AT90S... grundsätzlich extern AREF, keine option
    1 - so wie man das bisher kannte mit AVCC, internal, AREF
    2 - für kleine Tinys um das AREF Pin zu sparen, (A)VCC, internal (ohne), AREF, internalextcap (mit kondensator)
    3 - nur Tiny13, nur (A)Vcc oder internal  (1.1V)
    4 - Tiny24, 25 und verwandte, (A)Vcc, AREF oder Internal (1.1V)
    5 - Mega256x und M644, wie in den vorhergehenden Posts zu lesen, zwei unterschiedliche interne Spannungen.

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    08.11.2006
    Ort
    olargues
    Beiträge
    776
    na super,
    da hab ich doch gleich alles news aus diesem thread in eine schöne kleine txt. zusammengesetzt. damit mans dsann halt weiss.

    danke für die zusammenarbeit
    gruss

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Hallo,

    bin heute schon länger am rumtesten an einem Tiny45, wollte mal schnell den ADC anwerfen, naja, war aber nix !

    Um den Bezug zu diesem Thread zu finden,
    der T45 ist beim ADC_REFMODEL mit 4 angegeben, man sollte da also verschiedene Referenzen auswählen können, das geht aber nicht, Bascom meckert bei jeder Möglichkeit, ausser man lässt es ganz weg, dann wird aber auch VCC verwendet !

    Dieser Tiny hat da ein paar Besonderheiten, genauso wie der Tiny25 und der Tiny85 (gibts aber noch nicht, ist aber die gleiche Serie)
    Man kann zwar die Referenz direkt in ADMUX einstellen, aber spätestens bei einem GetADC(..) wird das wieder verworfen.
    Es gibt da nur die Möglichkeit, im DB nachzusehen welcher Wert die gewünschte Referenz hat, und dies dem GetAdc(.) mitzugeben, als Parameter Offset.

    Um den internen Temp-Sensor auszulesen braucht man die interne Referenz von 1.1V, das wäre &H80, und ADC4, da aber der ADC4 eigentlich Kanal 15 ist, muss man das auch so angeben !

    Schaut dann so aus:
    Code:
    $regfile = "ATtiny45.dat"
    Config Adc = Single , Prescaler = Auto
    ' Referenz auf Internal_1.1V, damit mans nicht vergisst, braucht man aber nicht !
    Admux = &H80
    
    Start Adc
    
    ' Temperaturwert aus ADC holen, Offset auf &H80 wegen Referenz !
    Adc4 = Getadc(15 , &H80)
    ' oder gleich
    Adc4 = Getadc(&H8f)
    Falls mal jemand danach sucht.

    PS:
    Hab wegen dem Tiny45 noch ein paar kleinere Bugs gefunden, die hab ich dann aber gleich an MCS gemeldet.
    Das sind u.a. die FuseBits EF, und der Chipname wird beim 45er als Tiny25 angezeigt, ist aber nur ein optischer Fehler
    Ja und wegen dem ADC gibts immerhin diesen Workaround.

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •