Внешний АЦП AD7091R
Re: Внешний АЦП AD7091R
Нет. Я имею ввиду числа 0x800 и 0xС01.
- Реклама
-
Aviator_93
- Открыл глаза
- Сообщения: 49
- Зарегистрирован: Ср мар 26, 2014 17:33:08
Re: Внешний АЦП AD7091R
Я что-то не пойму, что здесь нужно включать...Бубоник писал(а):Нет. Я имею ввиду числа 0x800 и 0xС01.
0x800 это, просто команда чтения регистра Channel, без каких либо включений.
Согласно даташиту:
Первые 10 бит не используются
11 бит отвечает за запись или за чтение (в нашем случае это чтение и он равен 0)
с 12 по 16 бит это адрес читаемого регистра
Вот и получается: адрес регистра Channel 0х1
00001 0 0000000000 -> 0x800
А команда 0хC01 это команда записи в регистр, так же без всяких там включений
Первые 10 бит это данные для записи
11 бит отвечает за запись или за чтение (в нашем случае это запись и он равен 1)
с 12 по 16 бит это адрес читаемого регистра
Так же и получается: адрес регистра Channel 0х1
00001 1 0000000001 -> 0xC01
Сначала запрашиваем данные с 0 канала, командой 0xC01, а потом с 1 канала, командой 0xC02.
И насколько я понимаю, если бы я ошибся с чтением данных, то они бы и не приходили...
А у меня проблема, то что, АЦП выдает нулевые значения на каналах, в то время, когда там есть напряжение...
Re: Внешний АЦП AD7091R
А ну да запутался я немного с этим ацп, все правильно, только есть одно но, сначала надо отправить команду записи, а потом сделать команду чтения. Своего рода должно получится так
Код: Выделить всё
adc[0] = AD7091_WtiteData(CONVERT_ON, 0xC01);
result = AD7091_ReadData(0x800);
adc[1] = AD7091_WtiteData(CONVERT_ON, 0xC02);
result = AD7091_ReadData(0x1000);
-
Aviator_93
- Открыл глаза
- Сообщения: 49
- Зарегистрирован: Ср мар 26, 2014 17:33:08
Re: Внешний АЦП AD7091R
Никак мне не подружиться с этой железкой
Вот документация, согласно, которой я все делаю (вторая схема, 56 рисунок)

Если я все так понимаю: у меня два канала и с них нужно получить данные
Как представлено выше, для получения данных, нужно отправить 4 команды:
1 - записать в регистр Channel, о том что измерение идет на 0 канале
2 - записать в регистр Channel, о том что измерение идет на 1 канале
3 - при отправке данных, в ответ должно прийти значение ацп на 0 канале
4 - при отправке данных, в ответ должно прийти значение ацп на 1 канале
Вот, происходит отправка данных:

Он мне данные присылает, вот:

Но присылает, нулевое значение ацп, т. е. почему то он ничего не измерил, зато данные разбил по каналам, как это и нужно:
в adc[2] данные о 0 канале
в adc[3] данные о 1 канале
Я уже не знаю, что и делать, думал, что микруху спалил, но нет.
Когда когда измерения происходят, только на 0 канале, без перебора других каналов, он все хорошо
измеряет и присылает данные, такие какие они есть:

Вот документация, согласно, которой я все делаю (вторая схема, 56 рисунок)
Если я все так понимаю: у меня два канала и с них нужно получить данные
Как представлено выше, для получения данных, нужно отправить 4 команды:
1 - записать в регистр Channel, о том что измерение идет на 0 канале
2 - записать в регистр Channel, о том что измерение идет на 1 канале
3 - при отправке данных, в ответ должно прийти значение ацп на 0 канале
4 - при отправке данных, в ответ должно прийти значение ацп на 1 канале
Вот, происходит отправка данных:
Он мне данные присылает, вот:
Но присылает, нулевое значение ацп, т. е. почему то он ничего не измерил, зато данные разбил по каналам, как это и нужно:
в adc[2] данные о 0 канале
в adc[3] данные о 1 канале
Я уже не знаю, что и делать, думал, что микруху спалил, но нет.
Когда когда измерения происходят, только на 0 канале, без перебора других каналов, он все хорошо
измеряет и присылает данные, такие какие они есть:
Re: Внешний АЦП AD7091R
А почему у вас на осцилограмме SCLK все время задран на единице? когда данные не передаются, у него же в документации вроде нарисованно SCLK в нормальном состоянии 0 там стоять должен. И да чтобы исключить косяк со SPI, при работе на одном канале, при максимальном напряжении на входе ацп какое значение он присылает?
- Реклама
-
Aviator_93
- Открыл глаза
- Сообщения: 49
- Зарегистрирован: Ср мар 26, 2014 17:33:08
Re: Внешний АЦП AD7091R
Дык, на одном канале он работает, с этими настройками. Вот он присылает значение 2465
Получается: 5/4096*2465=3,009
Да, все правильно, все как выше на фотках.
А весь геммор начинается, когда перебираешь несколько каналов. Врезультате, ни на том канале нету данных, ни на этом
Получается: 5/4096*2465=3,009
Да, все правильно, все как выше на фотках.
А весь геммор начинается, когда перебираешь несколько каналов. Врезультате, ни на том канале нету данных, ни на этом
- Albert_V
- Друг Кота
- Сообщения: 4119
- Зарегистрирован: Чт сен 12, 2013 00:54:12
- Откуда: ЗаМКАДье. Там, где ЦУП
Re: Внешний АЦП AD7091R
Бубоник правильно сказал про SCLK.
AD7091 защёлкивает данные по фронту, а по спаду - сдвигает регистр.
Сделайте как сказано в документации.
AD7091 защёлкивает данные по фронту, а по спаду - сдвигает регистр.
Сделайте как сказано в документации.
-
Aviator_93
- Открыл глаза
- Сообщения: 49
- Зарегистрирован: Ср мар 26, 2014 17:33:08
Re: Внешний АЦП AD7091R
Если верить даташиту на железку, то ему все равно когда сдвигать регистр, там лишь разница по какому фронту данные отправлять и принимать....Albert_V писал(а):AD7091 защёлкивает данные по фронту, а по спаду - сдвигает регистр.
Не суть важно, можно и так сделать
Проблема все та же, но заметил одну штуку:
Запускаю отладку, за первый проход получаю вот такие значения
Дальше, перезапускаю отладку, на второй раз опять те же самые данные как и в первый раз.
Перезапускаю отладку в третий раз и тут данные немножко другие:
И все, сколько не перезапускай отладку, он шлет данные, как и в последний раз...
Ради интереса, решил проверить первый способ опроса каналов (55 рисунок):
И тоже ничего хорошего, записал регистр в регистр Channel значение 0xF0
А он мне в очередной раз, не то что нужно шлет...
Где-то есть косяк, но никак не могу разобраться где...
-
Aviator_93
- Открыл глаза
- Сообщения: 49
- Зарегистрирован: Ср мар 26, 2014 17:33:08
Re: Внешний АЦП AD7091R
Всем большое спасибо за помощь. Вот он косяк-то, линия CONVERT подключена через оптопару к АЦПшке, а я про оптопару и забыл, и на прямую подавал сигнал. При данном подключение, сигнал проходя через оптопару инвертируется и получается не то что нужно...
- Albert_V
- Друг Кота
- Сообщения: 4119
- Зарегистрирован: Чт сен 12, 2013 00:54:12
- Откуда: ЗаМКАДье. Там, где ЦУП
Re: Внешний АЦП AD7091R
[uquote="Aviator_93",url="/forum/viewtopic.php?p=3271736#p3271736"]...а я про оптопару и забыл...[/uquote]Юморист вы
Поздравляю что разобрались.

Поздравляю что разобрались.


