[ВХОД]

Главная | Содержание | Форум | Файлы | Поиск | Контакт
NAVIG
О форуме
Резонансные генераторы
Магнитные генераторы
Механические центробежные (вихревые) генераторы
Торсионные генераторы
Электростатические генераторы
Водородные генераторы
Ветро- и гидро- и солнечные генераторы
Струйные технологии
Торнадо и смерчи
Экономия топлива
Транспорт
Гравитация и антигравитация
Оружие
Нейтронная физика
Научные идеи, теории, предположения...
Прочие идеи (разные)
Новые технологии
Коммерческие вопросы
Барахолка
Патентный отдел
Сделай сам. Советы.
Конструкторское бюро
немобильная версия
Печатать страницу
Форум - Прочие идеи (разные) - Схемотехника - AD7705 кто-нить использовал? Есть вопросы. - Стр.1
SergeyA | Post: 255511 - Date: 07.07.10(09:10)
Друзья, есть идея для реализации которой надо уметь мерить сверхмалые магнитные поля. Есть решение, теперь реализую. Однако столкнулся с неожиданной проблемой. Не могу нормально запустить АЦП AD7705. После программирования меряет на закороченном входе либо мусор, либо FF, либо вообще не выдает сигнал готовности данных. В даташите данные по алгоритмам работы с АЦП не сосвем прозрачные. Нужна помощь практика, который с этими АЦП ковырялся. Есть ли такие? Если есть, то выложу вопрос более детально. Перепробовал уже тьму вариантов.
Реально использую ПК, на нем VB.NET с библиотекой LIB32USB. Далее через USB висит ATMega16 с программным V-USB. Далее через программный последовательный интерфейс (просто три бита порта дергаем и читаем) подключен AD7705. Частота процессора 16МГц, на АЦП подаем 2 МГц.
Ну вот в общем и всё.

Так есть практики кто использовал AD7705?

DigitalM | Post: 255521 - Date: 07.07.10(10:49)
Я не исспользовал, но примерялся к ней. Изобрази схемку. 2МГц на вход АЦП подаешь?

SergeyA | Post: 255539 - Date: 07.07.10(12:07)
2 МГц на клок АЦП. Ща попробую изобразить. Если честно, я ее не рисовал, кусками собирал.
Схемку чего именно? Копм-AVR или AVR-ADC?
Проблема реально состоит в том. чтобы понять последовательность команд и ожиданий при обмене.
Есть конкретный вопрос, какая последовательность правильная?

Сначала ждем DRDY, затем пишем в управляющий регистр команду чтения регистра данных, затем читаем данные
или
Сначала пишем в управляющий регистр команду чтения регистра данных, затем ждем DRDY, затем читаем данные

В тексте и на картинках в даташите одно, на диаграмме другое. Ни так ни сяк устойчиво не работает. Хочется понять как правильно, чтобы отбросить эту ошибку.

ert_zeb | Post: 255545 - Date: 07.07.10(13:19)
Не нашёл особых противоречий в описании. Сначала нужно дождаться спада на DRDY, потом остальное.
Есть ещё примечание о том, что если чтений не происходит, то DRDY переходит в высокий уровень на 500 тактов.
Вдобавок там прототип Си-шной программы приведён. Вся последовательность описана.

dedivan | Post: 255555 - Date: 07.07.10(14:12)
SergeyA Пост: 255511 От 07.Jul.2010 (10:10)
(просто три бита порта дергаем и читаем)


Если с мегой работаешь, то должен знать конфигурационные порты-
или фьюзы .
Так и у этой АДэшки есть восемь регистров,
куда сначала нужно что то записать, потом еще лучше проверить,
правильно ли записалось.
Вот после этого она будет что то мерять.

_________________
я плохого не посоветую
SergeyA | Post: 255560 - Date: 07.07.10(15:11)
Друзья,
я всё это уже читал. Однако вопросы остались, я их и задал:
ert_zeb

сначала запрос на чтение, дожидаться спаду и читать

ИЛИ

дожидаться спаду, запрос на чтение, читать?

Явно последовательность разная. Приводит к разным результатам.
Если данные не брать, то регулярный переход в 1 на 500 тактов легко наблюдается.
Прототип программы есть, но там в комментариях есть ошибки, отсюда и доверие соответствующее.

Последовательность в прототипе и блок-схеме отличается от фрагмента временных диаграмм на чтение-запись.

Отсюда все вопросы.

dedivan,
ну разумеется записал, честно - не читал. Начал со считывания данных, на этом остановился. То, что записалось что-то похожее на правду, свидетельствует появление на DRDY логического нуля с периодическим переходом в 1 с частотой, соответсвующей запрощенной периодичности выхода - если данные не забирать, ровно как в описании.

Ну то есть могу утверждать, что я не идиот, даташиты читать умею, паять умею, программировать умею, только тонкости есть, по ним и спрашиваю.

- Правка 07.07.10(15:34) - SergeyA
ert_zeb | Post: 255562 - Date: 07.07.10(15:46)
Ну вроде как дождаться спада, потом сделать выбор кристалла, потом уже чтение, затем отключение кристалла.
А при записи регистра наоборот: включение кристалла, передача, отключение.

Единственная разница в комментах к программе происходит из-за регистра связи (или о каком расхождении речь?). При чтении состояние DRDY проверяется по его старшему биту (SPSR & 0x80), а не по "ноге" микросхемы.

dedivan | Post: 255568 - Date: 07.07.10(16:20)
Адэшке надо перезаписывать свои выходные регистры после цикла преобразования.
Вот на это время- занято - выставляется сигнал DRDY.
И читай хочешь- до, хочешь после - просто разные циклы прочитаешь.
А если конфигурацию читаешь- то вообще по барабану.

_________________
я плохого не посоветую
DigitalM | Post: 255569 - Date: 07.07.10(16:30)
Если чепуху забирает:
1. Уровни согласованы? АДешка на 3 или 5В?
2. Лапки RESET и CS исспользуются? Пайка на REF IN(+-) хорошая?

- Правка 07.07.10(16:31) - DigitalM
Eduard | Post: 255571 - Date: 07.07.10(16:58)
SergeyA, я бы в таком случае вывел считанный массив в виде какой-нибудь графики или в аудио файл PCM, не только послушать, а посмотреть в Sound Forge на график. Этот способ мне часто помогает понять, какого именно рода грабли происходят. На слух и глаз закономерности вылавливаются легче, чем в виде цифр.

PS. Еще проверь на всякий случай, не инвертирован ли Master Clock, и не нарушается ли порядок битов при упаковке (младший-старший), не перепутаны ли младший и старший байт. При таких характеристиках по крайней мере бит 12 без сигнала должно стоять как штык.

PS/2. Однажды мне удалось решить проблему таким способом: написал программку, чтобы представляла считанные данные в виде 1 и 0:
1-11---1 --111-11
и так по циклу в одно и то же место экрана. На вход подается напряжение с многооборотного переменного резистора, медленно крутим и наблюдаем картинку. По мере роста напряжения мы должны увидеть:
-------- ------11
-------1 -11--1-1
--11--1- 11--1-1-
1-----11 -1-1--11
1111---1 --1-1--1
11111111 11111111

_________________
И мню аз яко то имать быть, что сам себе всяк может учить.
- Правка 07.07.10(19:03) - Eduard
xkeen | Post: 255578 - Date: 07.07.10(18:21)
Эта схема сигма-дельта АЦП на выходе - фильтр, для входа в нормальный режи ей как минимум надо 3 такта частоты дискретизации (не 2МГц)преобразования, до этого на выходе будет мусор(приближение к значению на входе). Попробуйте в цикле читать выход до появления однообразнонго значения. Кроме того у нее входной диапазон напряжений 0.8*Vref до 2.1*Vref(не дифференциальный) скорее всего проблема в этом. Для проверки подайте на оба дифференциальных входа Vref, точнее (REFIN+ - REFIN-).

- Правка 07.07.10(18:45) - xkeen
dedivan | Post: 255611 - Date: 07.07.10(21:11)
Не сбивайте чела с толку- сначала запись в регистр 38 нех - потом чтение.
Проверять готовность можно по пину или биту управляющего регистра.
А он , я так понял сразу по пину готовности пытается читать.

У Вас нет прав скачивать этот файл. Зарегистрируйтесь .
_________________
я плохого не посоветую
- Правка 07.07.10(21:12) - dedivan
SergeyA | Post: 255621 - Date: 07.07.10(21:36)
Друзья,

всё получилось. Не знаю причину, буду разбираться. Сбивается синхронизация сериального канала. Перед засылом 38 хекс загоняю туда 40 единиц, чтобы пересинхронизироваться. Всё работает. Правда шум стоит до 3 бит и это еще без усиления, но пока это не очень важно. С шумом будем бороться отдельно. Главное логика собралась. Теперь буду разбираться кто мусорит на сериальном клоке.

Дед, почитал дефолтное состояние регистров управления, всё нормально читается. Да, готовность по пину DRDY отслеживаю.

ert_zeb, ошибка в том, что этой проверкой в примере (по его старшему биту (SPSR & 0x80)) проверяется завершение передачи, а не статус DRDY.

Можа линию данных на АЦП в единичном состоянии оставлять.... чтобы ничего туда не лезло, буду пробовать. В любом случае, большое спасибо за участие!!!


- Правка 07.07.10(21:43) - SergeyA
6464 | Post: 255820 - Date: 09.07.10(14:57)
Это не тот форум, Вам нужно на форум по электронике, компьютерам и программированию.

_________________
Сложно сделать- задачка простая. Просто сделать- задачка сложная.
SergeyA | Post: 255823 - Date: 09.07.10(15:11)
6464 Пост: 255820 От 09.Jul.2010 (15:57)
Это не тот форум, Вам нужно на форум по электронике, компьютерам и программированию.


Живу я здесь пока......
Да и конструкция, по которой задаются вопросы связана с тематикой сайта. Конструкция должна мерить МП от движущегося заряда. Не всё там так просто.

У Вас нет прав отвечать в этой теме.
Форум - Прочие идеи (разные) - Схемотехника - AD7705 кто-нить использовал? Есть вопросы. - Стр 1

Главная | Содержание | Форум | Файлы | Поиск | Контакт