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

 
 
> Вопросы по AD7609 (AD7608)
Dikoy
сообщение Jul 7 2012, 19:05
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 253
Регистрация: 4-03-09
Из: Богота, Колумбия
Пользователь №: 45 676



AD7609: http://www.analog.com/static/imported-file...eets/AD7609.pdf

В ДШ написано лишь:

Цитата
The falling edge of CS takes the bus out of three-state and clocks out the MSB of the 18-bit conversion result. This MSB is valid on the first falling edge of the SCLK after the CS falling edge. The subsequent 17 data bits are clocked out of the AD7609 on the SCLK rising edge. Data is valid on the SCLK falling edge.


Значит, данные выдвигаются на подъёме, а защёлкиваются на спаде.
Соответственно, у АВР это SPI Mode 2, если я всё правильно понял. http://www.atmel.com/Images/doc2585.pdf

Однако они пишут, что как только /CS уходит в ноль, данные сразу доступны, т.к. встаёт флажок FRSTDATA, указуя на MSB результата первого канала, а падает он после 18-го спада, на котором выводится последний бит результата 1-го канала.
Цитата
When the CS input is high , the FRSTDATA output pin is in three-state. In serial mode, the falling edge of CS takes FRSTDA TA out of three- state and sets the FRSTDATA pin high indicating that the result from V1 is available on the DOUTA output data line. The FRSTDATA output returns to a logic low following the 18 th SCLK falling edge.


Примерно это же и следует из Figure 6. Serial Read Operation . По этому рисунку видно, что клок изначально должен быть в hi и защёлкнуть бит по первому спаду. И после выдвижения 18-го бита спадом, снова уйти в hi и там остаться.
Тогда это уже Mode 1...
Ничего не понимаю (с)! Помогите разобраться.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ILYAUL
сообщение Jul 9 2012, 04:53
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата
Соответственно mode 1 == CPOL =0 CPHA =1

Ну батенька, однозначно нет. Как кстати и mode 0. Так , что два варианта из четырёх - псу под хвост.
Смотрим на график фиг 6 сей микрухи и видим что CLK начинает формироваться из состояния лог 1 - отсюда следует , что нам нужно установить полярность сигнала CLK ( CPOL) =1
Осталось выбрать , какой же должен быть CPHA. Из тогоже графика видим , что данные появляются на шине по спаду CLK поэтому по фронту следующего импульса мы уже можем их забрать , о чём ксати сообщает нам и Table 3.
Цитата
t19 Data access time after SCLK rising edge

Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Dikoy
сообщение Jul 11 2012, 03:51
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 253
Регистрация: 4-03-09
Из: Богота, Колумбия
Пользователь №: 45 676



Цитата(ILYAUL @ Jul 9 2012, 07:53) *
Из тогоже графика видим , что данные появляются на шине по спаду CLK поэтому по фронту следующего импульса мы уже можем их забрать , о чём ксати сообщает нам и Table 3.

Ну не знаю что там видно в графике. Если смотреть на него, то данные на линии сразу после спада CS, при высоком клоке. И именяются на высоком клоке. И вообще до сигнала CS полярность клока не нормируется. Значит он либо ждёт первого подъёма, либо реагирует на изначальную единицу в линии клока. В общем, странный график...
Впрочем, вы оказались правы, ваш вариант всех битов в 1 работает устойчивей всего.

Цитата(DpInRock @ Jul 9 2012, 10:59) *
Всякая теория должна уметь предсказывать.

Ну, я это ещё пару сообщений сверху предсказал. И частота клока тут не при чём - если есть дребезг, он проявится одинаково на любой частоте.
Что касается пинцета, то данный тест не гарантирует 100% результата, а значит "не научен!" (с). В одних условиях сработает, в других прокатит. Я это ещё лет 8 назад осознал, когда SD флешки к атмеге подключал. Не вижу в нём никакого практического смысла.
Вот кофе с сахаром куда более близко к реальности. Только прототипчик жалко sm.gif

Меня сейчас вот что волнует...
Куда делся целый бит? blink.gif

Имеем AD7609. Питание 5 вольтов. На REF напряжение идёт через делитель на резисторах 1к (пока китайские полосатики, в конечном девайсе будут прецизионные). Такое включение в связи с ратиометрическими датчиками.
Датчик имитирует потенциометр, включённый между питанием (5 вольт) и землёй. Соответственно на входе имеем 0-5 вольт. Вход V8- АЦП соединён с общей землёй, на V8+ подаётся напряжение с потенциометра.
Входной диапазон АЦП включён +-5 вольт.
Снимаю график:

Максимальный код 00FDD6 (64982). То есть 16 бит.
Ну ладно один бит я теряю за счёт двуполярности. Но куда делся второй?
Она, конечно, посностью дифференциальная, но должна же от заданной земли работать? Или таки от внутреннего смещения? 05.gif


ПС. Для будущих поколений настройка USART AVR (ATmega640, 16 MHz) для этой МС:
Код
// инициализация порта для АЦП  
UBRR1 = 0;
// Установка XCKn, Tx и CS как выходов
PORTD |= (1<<CS);
DDRD  |= (1<<XCKn)|(1<<Tx)|(1<<CS);
// Set MSPI mode of operation and SPI mode.
UCSR1C = (1 << UMSEL11)|(1 << UMSEL10)|(1 << UCPHA1)|(1 << UCPOL1); // биты 7,6,1,0.
// Enable receiver and transmitter.
UCSR1B = (1<<RXEN1)|(1<<TXEN1);
UCSR1A = 0x00;
// Устанавливаем скорость.
// Важно. Скорость надо устанавливать ПОСЛЕ включение приёмника и(или) передатчика.  
UBRR1H = 0;
UBRR1L = 68; // 115200    (16000000/(2*115200)-1) = 68,44444444444


Сообщение отредактировал Dikoy - Jul 11 2012, 04:00
Go to the top of the page
 
+Quote Post



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

 


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


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