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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Вопросы по ADuC7061
gmp
сообщение Nov 13 2010, 04:36
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 26
Регистрация: 10-10-07
Из: Челябинск
Пользователь №: 31 206



Здравствуйте! Никак не удается запустить АЦП в ADuC7061. В регистре ADCSTA постоянно установлен бит ADC0CERR. Бит завершения преобразования ADC0RDY устанавливается, значит АЦП работает. На входе около 1,3В, опроное напряжение выбрано AVDD (2,5В). В чем может быть проблема? Настройка АЦП приведена ниже.


//-------------- Установка необходимой частоты генератора ------------------

POWKEY1 = 0x1;
POWCON0 = 0x78; //Set core to max CPU //speed of 10.24 MHz
POWKEY2 = 0xF4;


//------------- Настройка АЦП -----------------------

// Configure ADC0 for continuous conversions, 1Khz, AIN0 in Single-ended mode
ADCFLT = 0x7; // Chop off, 1Khz samping rate, SF = 7. No averaging
ADCMDE = BIT0 + BIT7; // Continuous Conversion mode, Normal mode, 4Mhz clock source to ADC.
ADC0CON = // Gain = 1, Buffer on.
BIT4 + BIT5 + //(AVDD, AGND) reference
BIT6 + // AIN0 selected in Single ended mode
BIT10 + // Unipolar ADC input
BIT12 + // ------------------------------ опорное напряжение выше 1,35В
BIT15; // Primary channel ADC enable.
ADCCFG = 0;
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Nov 13 2010, 07:45
Сообщение #2


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(gmp @ Nov 13 2010, 09:36) *
На входе около 1,3В, опроное напряжение выбрано AVDD (2,5В). В чем может быть проблема?
...
BIT4 + BIT5 + //(AVDD, AGND) reference


У вас опорное выбрано AVDD/2:
Цитата
5:4 ADC0REF[1:0]
[11] = (AVDD, AGND) divide-by-two selected.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
gmp
сообщение Nov 13 2010, 08:49
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 26
Регистрация: 10-10-07
Из: Челябинск
Пользователь №: 31 206



Сконфигурировал на подачу внешней опоры(установил только BIT4) все равно выдает ошибку.
Подал на вход 1В для первого и второго случая, все равно выдает ошибку.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Nov 13 2010, 15:34
Сообщение #4


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Хм. А куда у вас подключен ADC5?


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
gmp
сообщение Nov 14 2010, 04:47
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 26
Регистрация: 10-10-07
Из: Челябинск
Пользователь №: 31 206



Никуда не подключен. Он разве не относительно нуля измеряет? Этим контроллером вообще можно измерить напряжение от 0 до 2,2В?
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Nov 14 2010, 07:12
Сообщение #6


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Да фиг его знает. В даташите написано:
Цитата
[0001] = ADC0/ADC5 (single-ended mode).

Может, это значит, что для single-ended каналов ADC5 является землёй? Попробуйте - узнаетеsmile.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
gmp
сообщение Nov 14 2010, 16:28
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 26
Регистрация: 10-10-07
Из: Челябинск
Пользователь №: 31 206



Да пробовал уже, ошибка и все. Попробовал включить дифференциальный режим, что-то зашевелилось, ошибка не выскакивает, переключил обратно и снова ошибка. Причем ошибка выскакивает сразу после конфигурации АЦП.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Nov 14 2010, 22:25
Сообщение #8


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



А с внутренней опорой - работает?


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
gmp
сообщение Nov 15 2010, 02:58
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 26
Регистрация: 10-10-07
Из: Челябинск
Пользователь №: 31 206



В однополярном режиме от внутренней опоры тоже не работает.
Go to the top of the page
 
+Quote Post
gmp
сообщение Nov 15 2010, 11:58
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 26
Регистрация: 10-10-07
Из: Челябинск
Пользователь №: 31 206



Сегодня скачал Keil, там вообще все по другому работает. Может с дровами к JTAG (miDAS-Link) что не так?
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Nov 15 2010, 15:56
Сообщение #11


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Но программа-то нормально заливается? Сделайте какой-нибудь вывод результатов (типа в UART), и попробуйте без отладчика.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
gmp
сообщение Nov 16 2010, 03:02
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 26
Регистрация: 10-10-07
Из: Челябинск
Пользователь №: 31 206



Программа компилится и заливается нормально. В поддержку написал, может что подскажут.
Go to the top of the page
 
+Quote Post
gmp
сообщение Nov 17 2010, 05:06
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 26
Регистрация: 10-10-07
Из: Челябинск
Пользователь №: 31 206



Сегодня наконец-то удалось запустить АЦП. Измерение в однополярном режиме осуществляется относительно ADC5, а не массы, но это еще не все. Выяснилось, что если не отключать питания mIDAS-Link при перезапуске отладки, АЦП сразу инициализируется с ошибкой преобразования и никакие манипуляции не дают эффекта. Если при перезапуске отладки переподать питание на плату и только потом подключить mIDAS-Link, то все регистры инициализируются нулями и все нормально работает. Вот такая странность.....
Теперь нужно заставить АЦП измерять напряжение до 2,2В (сейчас только 1,2В), запустить UART и добиться, чтобы в IAR срабатывали прерывания.
Кстати о прерываниях. Они описаны в программе и разрешены, в регистрах высталяются биты, что прерывание произошло, но перехода в обработку прерывания не происходит, может какой файл нужно подключить?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 17 2010, 07:46
Сообщение #14


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (gmp @ Nov 17 2010, 07:06) *
в регистрах высталяются биты, что прерывание произошло,
А посмотрите внимательно описание - чтение этих битов (в том числе и отладчиком) не приводит к их сбросу? В некоторых ARMах прерывания не работатют если в отладчике открыто окно с регистрами контроллера прерываний.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
gmp
сообщение Nov 17 2010, 09:40
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 26
Регистрация: 10-10-07
Из: Челябинск
Пользователь №: 31 206



Если вы про окно "Register", то перехода на обработку прерывания не происходит, хоть при открытом, хоть при закрытом окне. Может где-то нужно вектора прописывать? Кусок с прерываниями взял из примера.
Вотподключенные файлы и разрешение прерываний:

#include <Analogdevices/ioaduc7061.h>
# include "stdio.h"
# include "string.h"
#include <intrinsics.h>

IRQEN = BIT10 + BIT11; // Enable ADC and UART interrupts


Вот описание обработки, но IAR сюда не переходит:

__irq __arm void IRQ_Handler(void)
{
unsigned long IRQSTATUS = 0;
unsigned char ucCOMIID0 = 0;

IRQSTATUS = IRQSTA; // Read off IRQSTA register
if ((IRQSTATUS & BIT11) == BIT11) //UART interrupt source
{
ucCOMIID0 = COMIID0;
if ((ucCOMIID0 & 0x2) == 0x2) // Transmit buffer empty
{
ucTxBufferEmpty = 1;
}
}

if ((IRQSTATUS & BIT10) == BIT10) //If ADC0 interrupt source
{
ulADC0Result = ADC0DAT; // Read ADC0 conversion result
bSendResultToUART = 1;
}
}
Go to the top of the page
 
+Quote Post

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

 


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


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