реклама на сайте
подробности

 
 
> Запуск DAC в Atmel SAM3S, Не удается запустить
AleksandrAA
сообщение Oct 28 2016, 11:51
Сообщение #1





Группа: Новичок
Сообщений: 1
Регистрация: 28-10-16
Пользователь №: 93 954



В SAM3S выход ЦАП "DAC0" осуществляется на вывод PB13, контролируемый контроллером PIO B.
Для работы ЦАПа необходимо сконфигурировать этот вывод для работы с соответсвующей периферией.
Но в рук-ве на SAM3S оговаривается, что каждый вывод м.б. сконфигурирован для работы с тремя перифериями: А, В и С
("Each line can be assigned to one of three peripheral functions: A, B or C."),
В таблице периферий периферия DAC0 обозвана как Extra Function,
и нигде не оговаривается, что это значит.
В SAM3S выбор соответствующей периферии осуществляется регистрами PIO ABCDSR1 и ABCDSR2,
причем в их описании указаны уже 4 периферии: A, B, C и D.
Я предположил, что Extra Function это и есть D
и сконфигурировал вывод PB13 следующим кодом:
Код
AT91C_BASE_PIOB->PIO_PPUDR = AT91C_PIO_PB13;
AT91C_BASE_PIOB->PIO_SP1   = AT91C_PIO_PB13 | AT91C_BASE_PIOB->PIO_SP1;  // setting PIO::ABCDSR1
AT91C_BASE_PIOB->PIO_SP2   = AT91C_PIO_PB13 | AT91C_BASE_PIOB->PIO_SP2;  // setting PIO::ABCDSR2
AT91C_BASE_PIOB->PIO_PDR   = AT91C_PIO_PB13;
(соответствующие макросы были определены в ioat91sam3s4.h;
я работаю в IAR for ARM 7.40.1)

Далее я попытался запустить ЦАП следующим кодом:
Код
AT91C_BASE_PMC->PMC_PCER = (1 << AT91C_ID_DAC0);
AT91C_BASE_DAC0->DAC_CR = AT91C_DAC_SWRST;                // reset
AT91C_BASE_DAC0->DAC_MR = AT91C_DAC_REFRESH & (1 << 8);  // Refresh Period = 1024*REFRESH/DACC Clock
AT91C_BASE_DAC0->DAC_MR = AT91C_DAC_STARTUP & (1 << 24); // 8*Tdac_clk
AT91C_BASE_DAC0->DAC_MR = AT91C_DAC_USER_SEL_CH1;         // Only Channel 1 enabled
AT91C_BASE_DAC0->DAC_CHER= AT91C_DAC_CH0;                 // enable Channel 1
(значение 1 для записи в поля DAC_MR REFRESH и STARTUP было взято "с потолка", в качестве пробы).

Но после этого запись в AT91C_BASE_DAC0->DAC_CDR разных значений (0, 1000, 2000)
НИ К ЧЕМУ НЕ ПРИВОДИЛА: на выходе был постоянный 0.
Причем в регистре DAC_ISR флаг EOC после записи в CDR устанавливался
и сбрасывался после чтения ISR.
На вход ADVREF SAM3S подано напряжение 3 В от ИОН.
SAM3S работает с кварцем на 12 МГц.

У кого-нибудь был опыт запуска ЦАПа в этом SAM3S?
М. что-нибудь подскажете, что не так?

Сообщение отредактировал IgorKossak - Oct 28 2016, 20:30
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 16:11
Рейтинг@Mail.ru


Страница сгенерированна за 0.0138 секунд с 7
ELECTRONIX ©2004-2016