Зарегистрирован: Ср мар 26, 2014 17:33:08 Сообщений: 49
Рейтинг сообщения:0
Бубоник писал(а):
Нет. Я имею ввиду числа 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.
И насколько я понимаю, если бы я ошибся с чтением данных, то они бы и не приходили...
А у меня проблема, то что, АЦП выдает нулевые значения на каналах, в то время, когда там есть напряжение...
А ну да запутался я немного с этим ацп, все правильно, только есть одно но, сначала надо отправить команду записи, а потом сделать команду чтения. Своего рода должно получится так
Код:
adc[0] = AD7091_WtiteData(CONVERT_ON, 0xC01); result = AD7091_ReadData(0x800); adc[1] = AD7091_WtiteData(CONVERT_ON, 0xC02); result = AD7091_ReadData(0x1000);
Зарегистрирован: Ср мар 26, 2014 17:33:08 Сообщений: 49
Рейтинг сообщения:0
Никак мне не подружиться с этой железкой Вот документация, согласно, которой я все делаю (вторая схема, 56 рисунок)
Если я все так понимаю: у меня два канала и с них нужно получить данные Как представлено выше, для получения данных, нужно отправить 4 команды: 1 - записать в регистр Channel, о том что измерение идет на 0 канале 2 - записать в регистр Channel, о том что измерение идет на 1 канале 3 - при отправке данных, в ответ должно прийти значение ацп на 0 канале 4 - при отправке данных, в ответ должно прийти значение ацп на 1 канале
Вот, происходит отправка данных:
Он мне данные присылает, вот:
Но присылает, нулевое значение ацп, т. е. почему то он ничего не измерил, зато данные разбил по каналам, как это и нужно: в adc[2] данные о 0 канале в adc[3] данные о 1 канале
Я уже не знаю, что и делать, думал, что микруху спалил, но нет. Когда когда измерения происходят, только на 0 канале, без перебора других каналов, он все хорошо измеряет и присылает данные, такие какие они есть:
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
А почему у вас на осцилограмме SCLK все время задран на единице? когда данные не передаются, у него же в документации вроде нарисованно SCLK в нормальном состоянии 0 там стоять должен. И да чтобы исключить косяк со SPI, при работе на одном канале, при максимальном напряжении на входе ацп какое значение он присылает?
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Зарегистрирован: Ср мар 26, 2014 17:33:08 Сообщений: 49
Рейтинг сообщения:0
Дык, на одном канале он работает, с этими настройками. Вот он присылает значение 2465 Получается: 5/4096*2465=3,009 Да, все правильно, все как выше на фотках. А весь геммор начинается, когда перебираешь несколько каналов. Врезультате, ни на том канале нету данных, ни на этом
Зарегистрирован: Ср мар 26, 2014 17:33:08 Сообщений: 49
Рейтинг сообщения:0
Всем большое спасибо за помощь. Вот он косяк-то, линия CONVERT подключена через оптопару к АЦПшке, а я про оптопару и забыл, и на прямую подавал сигнал. При данном подключение, сигнал проходя через оптопару инвертируется и получается не то что нужно...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения