ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
25 апреля
761970 Топик полностью
POV_ (13.06.2017 12:31, просмотров: 1) ответил MBedder на Кури тщательно ДШ по поводу режимов обмена и хитрых таймингов
Ну вот по ссыли  https://ez.analog.com/thread/95667 увидел ряд странных моментов... ну, во-первых даденые тобой цитаты про, в общем-то, взаимоисключающее. То ли нельзя клоки выкидывать на линию, то ли можно. То ли имеют в виду непрерывное чтение данных при постоянно CS=0.. явно не сказано
The SCLK can continue to run between data transfers, provided the timing numbers are obeyed.
it is recommended that SCLK idles high between data transfers.
Тут речь идёт не о восстановлении работоспособности интерфейса, но сброса в дефолт регистров? Но это должно же функционировать при CS=1 чтобы не быть воспринято как команды АЦП, не так ли? Тогда случная комбинация для другого девайса на SPI сбрасывает АЦП!
This will reset the serial interface, and it will also reset the on-chip registers to their default conditions.
Вот загадочная фраза, я её понять не могу
Tying DIN high between write operations prevents invalid data being written to the ADC.
А как это можно гарантировать? Мали что какой состав первого байта команды.
The first bit in the write operation to the communications register is a gating bit that must be 0 to allow the remaining seven bits to be clocked into the register to specify the next operation.
Якобы CS=1 при недоописанный команде просто оставит всё как есть, но так же есть указание, что это должно привести к сбросу к дефолту (повторно бегло не могу найти это.. может я и ошибаюсь).
So, if a write operation is being performed when /CS is taken high but the ADC has not received the required number of SCLK pulses to complete the write operation, the write operation is abandoned and the appropriate register is not updated.
Вот совсем тривиальное - как и ожидается при CS=1 творящееся на SPI должно игнорироваться! Но как же все эти сбросы о которых говорится выше?
When /CS is high, the serial interface of the ADC is disabled and it ignores any activity on the data bus.
Опять повтор про 32 единицы. И опять не сказано при каком состоянии CS это работает.
If the interface does lose synchronization, writing consecutive number of ones (32 for AD779x, AD7780/81, AD7788/89/90/91, AD7170/71, 40 for AD719x, 64 for AD717x and AD7124)) into the device will reset the interface and the on-chip registers to their power-on values.
Блин, дрянной интерфейс. У меня на порту dataflash, дисплей и этот АЦП. Ни с чем нет проблем, лишь АЦП живёт своей жизнью. Один раз удалось наблюдать как получаю 33 отсчета в секунды при обновлении экрана 10 раз в секунду (успевал вклиниться из прерываний в процесс загрузки в дисплей при его CS=1 между пакетиками). Но повторить этот подвиг никак не удаётся.