|
AD7738 как ее правильно сконфигурировать |
|
|
|
Dec 26 2006, 17:05
|

Гуру
     
Группа: Модераторы
Сообщений: 10 983
Регистрация: 23-11-05
Пользователь №: 11 287

|
Цитата(Pat @ Dec 17 2006, 12:37)  Далее произвожу однократное измерение канала 0 в MODE регистр (0x38) записываю 0x40.
Просьба если можно выложить, как вы производите настройку этого АЦП.
Что то я с ним совсем замучился. Что-то я с MODЕ-регистром разобраться не могу. Вот цитата из PDF: Цитата Mode Register 8 Bits Read/Write Register, Address 38h–3Fh, Default Value 00h The Mode register configures the part and determines the part’s operating mode. Writing to the Mode register will clear the ADC Status register, set the RDY pin to logic high level, exit all current operations, and start the mode specified by the Mode bits. The AD7738 contains only one Mode register. The three LSBs of the address used for writing to the Mode register specify the channel selected for operation determined by the MD2 to MD0 bits. The address 38h only must be used for reading from the Mode register. Если MODE-регистр только один, то почему адресов восемь (0х38 - 0х3F)? Если эти адреса соответствуют каналам, то почему только адрес 0х38 можно читать? И можно ли в него писать? И как это делать правильно? Как понимать фразу о трёх младших битах адреса? Являются ли они одновременно страшими битами самого MODE-регистра? Я понял так, что запись в MODE-регистр инициирует начало конверсии. Следует ли понимать, что режим конверсии будет зависеть от того, по какому адресу я записываю в MODE-регистр данные (пять младших бит)? Где я должен указать о том, что только нулевой канал будет использоваться?
|
|
|
|
|
Dec 29 2006, 20:33
|
Гуру
     
Группа: СуперМодераторы
Сообщений: 3 096
Регистрация: 16-01-06
Из: Москва
Пользователь №: 13 250

|
Если Вы запускаете continuous conversion, то начинается с оцифровки канала, по которому записан режим. Разрешение канала ставится в channel setup, если надо работать только с первым каналом, то ставите 1 в 3 разряд setupа и ьщву пишете по 38 адресу. Кроме этого, еще запуск калибровок на соответствующий канал определяется адресом записи.
--------------------
Не бойтесь тюрьмы, не бойтесь сумы, не бойтесь мора и глада, а бойтесь единственно только того, кто скажет - "Я знаю как надо". А. Галич.
|
|
|
|
|
Dec 30 2006, 00:22
|

Гуру
     
Группа: Модераторы
Сообщений: 10 983
Регистрация: 23-11-05
Пользователь №: 11 287

|
Цитата(DS @ Dec 29 2006, 19:33)  Если Вы запускаете continuous conversion, то начинается с оцифровки канала, по которому записан режим. Разрешение канала ставится в channel setup, если надо работать только с первым каналом, то ставите 1 в 3 разряд setupа и ьщву пишете по 38 адресу. Кроме этого, еще запуск калибровок на соответствующий канал определяется адресом записи. Не очень-то понял, если честно. Но ничего, разберусь. По крайней мере, однократный запуск и continius conversion включить получилось. Дело упрощается одним каналом.  Нет ли у Вас кусочка кода на С с подпрограммой обслуживания АЦП?
|
|
|
|
|
Dec 30 2006, 11:09
|
Гуру
     
Группа: СуперМодераторы
Сообщений: 3 096
Регистрация: 16-01-06
Из: Москва
Пользователь №: 13 250

|
Да, как то я витиевато выразился. Адрес регистра mode, по которому пишется команда, определяет канал, с которого начинается преобразование в continuous режиме. Во всех остальных случаях (однократное преобразование, калибровка канала) адрес определяет канал, к которому относится команда.
Для управления АЦП я ассемблером пользуюсь. Программа не откомментирована, так что толку от нее для Вас немного. Если опишите, в какой режим надо его загнать, я последовательностькоманд напишу. Тактируете от кварца или генератора ? AINCOMом пользуетесь ?
--------------------
Не бойтесь тюрьмы, не бойтесь сумы, не бойтесь мора и глада, а бойтесь единственно только того, кто скажет - "Я знаю как надо". А. Галич.
|
|
|
|
|
Dec 30 2006, 12:45
|

Гуру
     
Группа: Модераторы
Сообщений: 10 983
Регистрация: 23-11-05
Пользователь №: 11 287

|
Спасибо, теперь понятнее. Я в общем-то, так и делаю: - после сброса записываю по адресу 0х28 число 0х09 (AIN0 - AINCOM, range 0-1,25V, Continius conversion Enable) - в регистры с адресами с 0х30 по 0х37 записываю число 0хAD (CHOP Enabled, FW=45) В принципе, наверное, достаточно было бы ограничиться лишь первым из адресов. - запускаю конверсию записью в Mode Register по адресу 0х38 числа 0х20 (Continius conversion, channel 0, и т.д.) Вроде работает, все остальные каналы у меня не задействованы, поэтому на этом пока остановился. Меня просто смутила фраза в DS: Цитата The AD7738 contains only one Mode register. А также то, что существуют комбинации битов MD2-MD0, отвечающие за режимы АЦП в целом, например, 011 - Power Down. Такую комбинацию нет вроде смысла записывать по всем адресам 0х38 - 0x3F.
|
|
|
|
|
Dec 30 2006, 13:07
|
Гуру
     
Группа: СуперМодераторы
Сообщений: 3 096
Регистрация: 16-01-06
Из: Москва
Пользователь №: 13 250

|
Да, можно в Conversion time писать только для используемого канала. Также неплохо перед работой запустить Zero-scale calibration, и, если есть возможность обеспечить нулевой сигнал на входе, Zero scale channel calibration.
Если функция относится ко всему АЦП, а не к конкретному каналу, адрес в mode неважен. Обратите также внимание на p0/1 - если Вы ими не пользуетесь, программируйте их выходами. Если тактирование идет от внешнего генератора, в mode надо также ставить clkdis.
--------------------
Не бойтесь тюрьмы, не бойтесь сумы, не бойтесь мора и глада, а бойтесь единственно только того, кто скажет - "Я знаю как надо". А. Галич.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|