Herz 6 30 мая, 2011 Опубликовано 30 мая, 2011 · Жалоба Кто-нибудь работал с этим ЦАПом? Нет ли там никакой опечатки в даташите? Что-то у меня никак не получается его оживить... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 30 мая, 2011 Опубликовано 30 мая, 2011 · Жалоба Кто-нибудь работал с этим ЦАПом? Нет ли там никакой опечатки в даташите? Что-то у меня никак не получается его оживить... Похоже, никто не имел с ним дела. Вы бы описали траблу подробнее, глядишь, и придумается что-нибудь. Насчет ошибки в даташит - сомнительно. Уже не первой молодости. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Herz 6 30 мая, 2011 Опубликовано 30 мая, 2011 · Жалоба Похоже, никто не имел с ним дела. Вы бы описали траблу подробнее, глядишь, и придумается что-нибудь. Насчет ошибки в даташит - сомнительно. Уже не первой молодости. Да я и сам понимаю. :rolleyes: Но хочется же найти какое-то объяснение. А трабла проста: пишу в него подряд два 16-битных слова: первое - CONTROL, второе - собственно данные. По примеру из того же даташита. Пробовал и на внутренний ИОН переключаться, и на внешний - никаких реакций. На выходе - ноль, референсное наружу тоже не выводится. Монтаж уже десять раз проверил. Попробую завтра чип поменять, но как-то надежды мало... С сигналом FS тоже непонятно. Вроде как сказано, что запись в регистр выполняется при его низком уровне, затем положительный фронт защёлкивает данные и инициализирует смену напряжения на выходе. Такой логики и придерживаюсь. Хотя в другом месте документа пишут, что с 16-ым положительным фронтом клока (или фронтом FS) выходное напряжение меняется автоматом. Пока, впрочем, вообще ничего. :crying: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VCO 0 31 мая, 2011 Опубликовано 31 мая, 2011 · Жалоба С сигналом FS тоже непонятно. Вроде как сказано, что запись в регистр выполняется при его низком уровне, затем положительный фронт защёлкивает данные и инициализирует смену напряжения на выходе. Такой логики и придерживаюсь. Обратите внимание на положительный импульс сигнала FS до начала посылки с нормированием минимального времени между положительным фронтом этого импульса и завершением минимального времени установления сигнала nCS. Если бы сигнал FS до начала посылки должен был быть положительным, то этот импульс, возможно и не стали бы рисовать, даже если он нужен был бы лишь при старте. Хотя в другом месте документа пишут, что с 16-ым положительным фронтом клока (или фронтом FS) выходное напряжение меняется автоматом. Хочу уточнить, что не "с 16-ым положительным фронтом клока", а с 17-ым... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
hd44780 0 31 мая, 2011 Опубликовано 31 мая, 2011 · Жалоба пишу в него подряд два 16-битных слова: первое - CONTROL, второе - собственно данные Ссылка на ДШ сейчас чего-то не открывается... Позже попробую. Проверьте формат CONTROL. Помню, в ДШ на радиомодуль RFM12B была ошибка - в примере в упр. регистр не то значение слали. И, может, какая-то задержка после CONTROL должна быть ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Herz 6 31 мая, 2011 Опубликовано 31 мая, 2011 · Жалоба Обратите внимание на положительный импульс сигнала FS до начала посылки с нормированием минимального времени между положительным фронтом этого импульса и завершением минимального времени установления сигнала nCS. Если бы сигнал FS до начала посылки должен был быть положительным, то этот импульс, возможно и не стали бы рисовать, даже если он нужен был бы лишь при старте. Спасибо. Но, думаю, не в этом дело. О положительном фронте FS до начала записи ничего не говорится, акцент лишь на отрицательном: Notes on SPI and Microwire: Before the controller starts the data transfer, the software has to generate a falling edge on the I/O pin connected to FS. Да и в таблице нормируется только минимальная длительность импульса twH(FS) FS pulse duration high что не мешает ему быть бесконечно продолжительным. Мне кажется, первый фронт FS на диаграмме показан как раз для иллюстрации минимальной паузы между записью предыдущего значения и началом передачи новых данных. Но проверю на всякий случай. Хочу уточнить, что не "с 16-ым положительным фронтом клока", а с 17-ым... Почему? Пишут ведь так: After the write operation(s), the DAC output is updated automatically on the next positive clock edge following the 16th falling clock edge. То есть, если пассивный уровень SCLK - высокий и передача начинается по заднему фронту (он первый), то 16-ый передний - это уже последний, возврат сигнала на изначальный уровень. Проверьте формат CONTROL. Помню, в ДШ на радиомодуль RFM12B была ошибка - в примере в упр. регистр не то значение слали. И, может, какая-то задержка после CONTROL должна быть ... Уже по-всякому пробовал. Да и задержка у меня естественным образом формируется. Хотя ничего о ней вроде не сказано. Сейчас продолжу... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 31 мая, 2011 Опубликовано 31 мая, 2011 · Жалоба Слова посылаете, начиная со старшего бита? CS можно на землю навечно посадить. Обновляется после 16 срезов SCLK следующим фронтом, или по фронту FS. Осциллографом посмотрите, может, все же, не хватает одного импульса? Ну, и данные DIN во время срезов SCLK уже установлены (tsu, th)? REF не закорочена? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VCO 0 31 мая, 2011 Опубликовано 31 мая, 2011 · Жалоба Я в таких случаях SPI обычно отключаю от ПЛИС или микроконтроллера и цепляю через ADuM к LPT-порту компьютера, затем программкой XPlpt начинаю отрабатывать все варианты, чтобы не заниматься большим количеством перешивок. Иногда решение приходит довольно неожиданно, когда уже близок к выводу, что чип сдох. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Herz 6 31 мая, 2011 Опубликовано 31 мая, 2011 · Жалоба Слова посылаете, начиная со старшего бита? CS можно на землю навечно посадить. Обновляется после 16 срезов SCLK следующим фронтом, или по фронту FS. Осциллографом посмотрите, может, все же, не хватает одного импульса? Ну, и данные DIN во время срезов SCLK уже установлены (tsu, th)? REF не закорочена? Да всё именно так. В общем, после многочисленных манипуляций какие-то сдвиги произошли. Чип действительно оказался жив. Выяснилось, что: - если пассивный уровень SCLK - высокий, то "обновление выхода" происходит по 16-му его фронту. То есть, в момент возврата к начальному уровню. У сигнала FS значение имеет только спад - он инициализирует новую запись в регистр. Просто если FS не дёргать, новой записи не произойдёт. - если пассивный уровень SCLK - низкий, то "обновление выхода" происходит именно по фронту FS, но ... только после повторной записи (!) в регистр тех же данных (и импульсом FS, конечно, между ними, иначе запись не проходит). Пытаюсь осмыслить обнаруженное, но пока извилины расползаются... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 31 мая, 2011 Опубликовано 31 мая, 2011 · Жалоба У сигнала FS значение имеет только спад - он инициализирует новую запись в регистр. ... если пассивный уровень SCLK - низкий, то "обновление выхода" происходит именно по фронту FS, но ... только после повторной записи (!) в регистр тех же данных (и импульсом FS, конечно, между ними, иначе запись не проходит). Наверное, если вы будете молотить SCLK и после 16 тактов еще один-два-сто (неважно, сколько), то ЦАП защелкнет, то, что надо, и без фронта FS. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Herz 6 31 мая, 2011 Опубликовано 31 мая, 2011 · Жалоба Наверное, если вы будете молотить SCLK и после 16 тактов еще один-два-сто (неважно, сколько), то ЦАП защелкнет, то, что надо, и без фронта FS. Нет, не получается. Судя по даташиту, фронт FS может придти раньше 16-го фронта клока и тогда регистр защёлкнет то, что есть, но не наоборот. Можно бесконечно писать в регистр, но он будет продолжать ждать - проверено. Как это связано с пассивным уровнем клока - пока не разобрался. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 31 мая, 2011 Опубликовано 31 мая, 2011 · Жалоба Судя по даташиту, фронт FS может придти раньше 16-го фронта клока и тогда регистр защёлкнет то, что есть, но не наоборот. Можно бесконечно писать в регистр, но он будет продолжать ждать - проверено. По даташиту, вроде, должно защелкнуться по SCLK, если FS держится в нуле (вы же сами его формируете?). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Herz 6 31 мая, 2011 Опубликовано 31 мая, 2011 · Жалоба По даташиту, вроде, должно защелкнуться по SCLK, если FS держится в нуле (вы же сами его формируете?). Действительно так и происходит, но только если спад FS сформирован при высоком уровне SCLK. Мне бы как раз нужно, чтобы обновление происходило по внешнему сигналу. Записали неторопливо в регистр по SPI и ждём себе строба. И лишь по его пришествию напряжение меняется строго в нужный момент. А пока не получается. То есть, если дублировать запись, то вроде получается, но тут явно какой-то глюк. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 1 июня, 2011 Опубликовано 1 июня, 2011 · Жалоба Еще напомню - около выходов, выдающих SCLK и FS, запаяйте в эти цепи последовательно по резистору омов 100. Чтобы уничтожить возможный дребезг на фронтах из-за отражений. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Herz 6 1 июня, 2011 Опубликовано 1 июня, 2011 · Жалоба Еще напомню - около выходов, выдающих SCLK и FS, запаяйте в эти цепи последовательно по резистору омов 100. Чтобы уничтожить возможный дребезг на фронтах из-за отражений. Спасибо. Да у меня скорости небольшие. Намучился я с этим чипом и даже сумел приспособить для своих нужд, но до боли жалко времени. Обидно и то, что задумка вроде была неплохой, но явно техасцы чего-то перемудрили. И альтернативы, в общем-то, нет. Обнаружилась ещё одна неприятная особенность: если вследствие сбоев в передаче ЦАП "зависнет", сбросить его можно только выключением питания. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться