Hallo, ich benutze den AT32UC3C1512C. Ich möchte zwei verschiedene analoge Spannungen an den Kanälen A und B des internen DAC (DACIFB) gleichzeitig ausgeben. Wenn ich den DAC mit einem Kanal konfiguriere, z.B. nur Kanal A oder nur Kanal B, dann funktioniert alles, wie gewünscht. Wenn ich den DAC für beide Kanäle konfiguriere, liegt irgendwas undefiniertes an beiden Ausgängen an und schwankt. Hier mal einen Auszug: //FOSC0 12MHz, DAC_PRESCALER_CLOCK = FOSC0 / 2 /* DAC Configuration */ dacifb_opt_t dacifb_opt = { .reference = DACIFB_REFERENCE_VDDANA, .channel_selection = DACIFB_CHANNEL_SELECTION_AB, .low_power = false, .dual = false, .prescaler_clock_hz = DAC_PRESCALER_CLOCK }; /* DAC Channel Configuration */ dacifb_channel_opt_t dacifb_channel_opt = { .auto_refresh_mode = true, .trigger_mode = DACIFB_TRIGGER_MODE_MANUAL, .left_adjustment = false, .data_shift = 0, .data_round_enable = false }; int main(void) {/* GPIO pin/DAC-function map. */ const gpio_map_t DACIFB_GPIO_MAP = { {AVR32_DACREF_PIN, AVR32_DACREF_FUNCTION}, {AVR32_ADCREFP_PIN, AVR32_ADCREFP_FUNCTION}, {AVR32_ADCREFN_PIN, AVR32_ADCREFN_FUNCTION}, {AVR32_DAC0A_PIN, AVR32_DAC0A_PIN}, {AVR32_DAC0B_PIN, AVR32_DAC0B_PIN} }; /* Init system clocks */ sysclk_init(); /* Assign and enable GPIO pins to the DAC function. */ gpio_enable_module(DACIFB_GPIO_MAP, sizeof(DACIFB_GPIO_MAP) / sizeof(DACIFB_GPIO_MAP[0])); dacifb_get_calibration_data(&AVR32_DACIFB0, &dacifb_opt, DACIFB0_INSTANCE); dacifb_configure(&AVR32_DACIFB0, &dacifb_opt, FOSC0); // Configure and enable DACIFB0 dacifb_configure_channel(&AVR32_DACIFB0, DACIFB_CHANNEL_SELECTION_AB, &dacifb_channel_opt, DAC_PRESCALER_CLOCK); // Configure both DAC channels of DACIFB0 dacifb_start_channel(&AVR32_DACIFB0, DACIFB_CHANNEL_SELECTION_AB, FOSC0); // Enable both outputs A and B of DACIFB0. dacifb_set_value(&AVR32_DACIFB0, DACIFB_CHANNEL_SELECTION_A, false, 1000); dacifb_set_value(&AVR32_DACIFB0, DACIFB_CHANNEL_SELECTION_B, false, 2000); } Was ist hier falsch?
Der AT32 hat wohl wie die "alten" ATxmega ohne u nur einen echten DAC mit nachgeschalter S/H Stufe daher ist bei der Übergabe der Wert Umsicht geboten. Direktes glecihzeitiges Schreiben funktioniert wohl nicht, da muss zuvor der DAC Status ermittelt werden, ob schreiben möglich ist.
Beitrag #6401360 wurde von einem Moderator gelöscht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.