-
- Всем ОГРОМНОЕ СПАСИБО за участие. Ошибка закралась в инициализации SPI. Работает с аппаратным SPI без проблем. Dany(142 знак., 31.10.2007 13:02)
- Вот потому и следует приводить ПОЛНЫЙ текст РЕАЛЬНОЙ программы, а не пытаться на ходу придумать реализацию алгоритма только для того, чтобы запостить ее в форум. - rezident(31.10.2007 13:28)
- Полностью с вами согласен. Учту на будущее. - Dany(31.10.2007 14:13)
- Вот потому и следует приводить ПОЛНЫЙ текст РЕАЛЬНОЙ программы, а не пытаться на ходу придумать реализацию алгоритма только для того, чтобы запостить ее в форум. - rezident(31.10.2007 13:28)
- Про Cs.Полный код такой... Dany(281 знак., 30.10.2007 12:18)
- Напишите такой код (честно сказать, мне ваш код не ясен)... zlogic(171 знак., 30.10.2007 13:39)
- Проблема сводится к отправке через аппаратный SPI 9 бит. Формат такой 9 бит - адрес(1 или 0) D7..D0 данные. AD5262 принимает 9 бит, остальные игнорирует. Поэтому вроде код должен работать, а не хочет. - Dany(29.10.2007 21:16)
- SPI не может ничего игнорировать. Там обычный сдвиговый регистр. - Charlie(30.10.2007 12:51)
- Игнорирует не SPI, а микросхема... Просто через SDO вылетают старшие 7 бит (из первого байта)... Выдержка: For the AD5262 the last 9 bits of the data word entered into the serial register are held when CS returns high. Any extra bits are ignored. - zlogic(30.10.2007 13:28)
- Написано в даташит принимает 9 - остальное игнорирует. Пробовал делать как обычный сдвиговый, слал так два байта 0000000(A), где A - адресс затем D7..D0 - не получилось. - Dany(30.10.2007 12:56)
- Либо полярность CLK неправильная, либо забываете CSом записать полученный код в RDAC. - Charlie(30.10.2007 10:48)
- Запись данных по нарастающему фронту, как и должно быть. - Dany(30.10.2007 12:21)
- Я бы попробовал программный SPI... сделал бы всё по даташиту, без предположения про игнорирование... - zlogic(30.10.2007 09:59)
- Наверное, так и придется. - Dany(30.10.2007 12:21)
- Когда уже сделаете, это ж 5 сек... Я уже страницу рефрешить устал, ожидая от вас результата... - zlogic(30.10.2007 12:27)
- Наверное, так и придется. - Dany(30.10.2007 12:21)
- SPI не может ничего игнорировать. Там обычный сдвиговый регистр. - Charlie(30.10.2007 12:51)
- Может кто пользовался данной микросхемой? А то код не хочет работать. Не могу понять, в чем проблема. Dany(228 знак., 29.10.2007 17:43)
- ну я пользовался когда-то - koyodza(30.10.2007 14:29)
- Подскажите какая логика управления через аппаратный SPI (два байта).
Странно сейчас работает для RDAC2 с таким кодом WriteSpi(FF); WriteSpi(kod). Хотя WriteSpi(1); WriteSpi(kod) не работает. - Dany(30.10.2007 18:34)
- Времянки все выдерживаете? Какой режим SPI (SPI-mode) используете? - rezident(30.10.2007 19:21)
- SPI cke=ckp=0; передача по нарастающему переднему фронту, на холостом ходу SCK=0. На мой взгляд никаких критических времен нет, все времена
больше минимальных (наносекунд). - Dany(30.10.2007 20:06)
- Пробовал программный SPI(9) - тоже должным образом не работает. Начинаю потихоньку грешить на железо. Щас голова на части... Почему WriteSpi(FF);WriteSpi(kod); работает. - Dany(30.10.2007 20:09)
- Вообщем еще раз просмотрел даташит, должен работать аппаратный SPI по следующему коду, но увы... Dany(386 знак., 30.10.2007 20:59)
- Приведите код самих функций. Что такое connect/disconnect? - rezident(30.10.2007 21:07)
- connect/disconnect... Dany(460 знак., 30.10.2007 21:22)
- Зачем вы здесь "на ходу" придумываете эти функции? Приведите реальный код, который у вас не работает. У вас ведь не алгоритм глючит, а сам код, не так ли? Если не желаете постить свой код, то напишите отдельную тестовую программку и обсуждать rezident(48 знак., 30.10.2007 21:45)
- Просто под рукой кода нет. - Dany(30.10.2007 21:51)
- Через аппаратный SPI код завтра приведу, а программную реализацию пробовал следующую.. Dany(567 знак., 30.10.2007 22:22)
- Это тоже неполная программа, нет инициализации функций и состояний пинов, нет дефайнов CLOCK_PIN, DATAOUT_PIN. И вообще о каком MCU идет речь-то? rezident(382 знак., 30.10.2007 23:06)
- Спасибо за приведенный код, приму во внимание. софт SPI пользовал 1-ый раз, поэтому приведенный мной код может быть некорректен, проверил в симуляторе и успокоился. - Dany(31.10.2007 10:12)
- MCU PIC 18f2620. Конечная реализация получила следующий вид: отправлем софтовым SPI адресный бит, затем хард SPI код для установки. Все работает, если кому интересно могу выложить. P.s: так и не понял, почему работает Write(FF);Write(kod); - Dany(31.10.2007 10:08)
- Это тоже неполная программа, нет инициализации функций и состояний пинов, нет дефайнов CLOCK_PIN, DATAOUT_PIN. И вообще о каком MCU идет речь-то? rezident(382 знак., 30.10.2007 23:06)
- Через аппаратный SPI код завтра приведу, а программную реализацию пробовал следующую.. Dany(567 знак., 30.10.2007 22:22)
- Просто под рукой кода нет. - Dany(30.10.2007 21:51)
- Зачем вы здесь "на ходу" придумываете эти функции? Приведите реальный код, который у вас не работает. У вас ведь не алгоритм глючит, а сам код, не так ли? Если не желаете постить свой код, то напишите отдельную тестовую программку и обсуждать rezident(48 знак., 30.10.2007 21:45)
- connect/disconnect... Dany(460 знак., 30.10.2007 21:22)
- Приведите код самих функций. Что такое connect/disconnect? - rezident(30.10.2007 21:07)
- Если не выбрали для работы запредельных частот SPI и все времянки выдерживаете, то 99,9% что проблема в софте, а не в железе. - rezident(30.10.2007 20:56)
- Проблема в том, что опытным путем установил работающую двухбайтную последовательность (0xFF,code) приведенную выше. Но не могу подвести ее под логику... - Dany(30.10.2007 21:07)
- В организации, занимающейся ремонтом и сервисом, это обычно называется "адаптация неисправности под требования клиента" :))) - rezident(30.10.2007 21:13)
- Не хочется адаптация, хочется стабильной работы)) - Dany(30.10.2007 21:24)
- В организации, занимающейся ремонтом и сервисом, это обычно называется "адаптация неисправности под требования клиента" :))) - rezident(30.10.2007 21:13)
- Проблема в том, что опытным путем установил работающую двухбайтную последовательность (0xFF,code) приведенную выше. Но не могу подвести ее под логику... - Dany(30.10.2007 21:07)
- Вообщем еще раз просмотрел даташит, должен работать аппаратный SPI по следующему коду, но увы... Dany(386 знак., 30.10.2007 20:59)
- Пробовал программный SPI(9) - тоже должным образом не работает. Начинаю потихоньку грешить на железо. Щас голова на части... Почему WriteSpi(FF);WriteSpi(kod); работает. - Dany(30.10.2007 20:09)
- SPI cke=ckp=0; передача по нарастающему переднему фронту, на холостом ходу SCK=0. На мой взгляд никаких критических времен нет, все времена
больше минимальных (наносекунд). - Dany(30.10.2007 20:06)
- Времянки все выдерживаете? Какой режим SPI (SPI-mode) используете? - rezident(30.10.2007 19:21)
- Подскажите какая логика управления через аппаратный SPI (два байта).
Странно сейчас работает для RDAC2 с таким кодом WriteSpi(FF); WriteSpi(kod). Хотя WriteSpi(1); WriteSpi(kod) не работает. - Dany(30.10.2007 18:34)
- ну я пользовался когда-то - koyodza(30.10.2007 14:29)
- else WriteSpi(0x00); конечно так, описался. - Dany(29.10.2007 14:57)
- Чет у тебя WriteSpi(0x80); any case.... - Evgeny_CD(29.10.2007 14:29)
- Всем ОГРОМНОЕ СПАСИБО за участие. Ошибка закралась в инициализации SPI. Работает с аппаратным SPI без проблем. Dany(142 знак., 31.10.2007 13:02)