реклама на сайте
подробности

 
 
> ADuC7021 + ATMEGA16+SPI - глюк, мой или не мой?, проблема в отсылаемом ADuC'ом байте
krofork
сообщение Mar 30 2007, 12:56
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 15-12-06
Пользователь №: 23 530



Есть ADuC7021 который в Slave режиме привязан к мастеру на атмеге.
Связь такого рода: каждые 20 мс атмега с адуком перекидываются 16-ю байтами.

скорость SPI - 250 кГц
ожидание между байтами - 100мкс.
работа SPI - по прерыванию по принятию слейвом байта

забив пока на то что действительно должно передаваться (реальные протокольные данные), в тест режиме делаем следующее:
на каждый принятый байт от мастера в прерывании в ответ по SPI кидаем просто константу 0хАА(SPITX = 0xAA). Осцилоскопом наблюдаем картинку на ответной линии (MISO, от адука)- как будто эти 0хАА скачут в рамках байта, то есть как будто клок раньше начал чем загрузили в сдвиговый регистр 0хАА.
Остальные сигналы проверял - глюков нет, клок чистый, слейв селект дергается в тех местах где надо.
Соответственно мастер принимает то 0хАА, то всякую хрень получаемую сдвигом 0хАА на случайное число бит (скомпиленный тест пример работает так же)

Кто сошел с ума: я или Аналог Девайсес? smile.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
defunct
сообщение Apr 2 2007, 01:50
Сообщение #2


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Попробуйте наоборот...
Mega'у слейвом оформить Aduc мастером.
Еще неплохо добавить байт-стафинг и CRC.
Go to the top of the page
 
+Quote Post
krofork
сообщение Apr 2 2007, 05:29
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 15-12-06
Пользователь №: 23 530



никакой ЦРЦ не нужен если и осцилом видно что верояность принятия требуемого байта не более 30% sad.gif (а так вообще в протоколе он заложен) - сейчас задача одна - сделать нормальную связь по SPI - просто получить ОДИН НУЖНЫЙ БАЙТ.
поменять местами мастер-слейв попробую. спасбо за совет.
Go to the top of the page
 
+Quote Post
alexQ
сообщение Apr 4 2007, 09:20
Сообщение #4


Знающий
****

Группа: Banned
Сообщений: 520
Регистрация: 6-02-06
Пользователь №: 14 040



Посмотрите пример для работы в Slave режиме. Возможно поможет
Прикрепленные файлы
Прикрепленный файл  SPIslave.zip ( 17.83 килобайт ) Кол-во скачиваний: 25
 
Go to the top of the page
 
+Quote Post
krofork
сообщение Apr 5 2007, 06:21
Сообщение #5


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 15-12-06
Пользователь №: 23 530



проблема оказалась не софтовая. поскольку это макетный вариант - линии SPI - провода длиной ~10см, то сказались наводки. Чистый с первого взгляда сигнал клока оказался при ближайшем рассмотрении с какими то пиками амплитудой ну...максимум в четверть вольта, а адук, растак его, воспринимал иногда это как дополнительный пульс клока. Проблему решил внешними 1к пулапами ...на всякий случай по всем линиям.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 07:10
Рейтинг@Mail.ru


Страница сгенерированна за 0.01443 секунд с 7
ELECTRONIX ©2004-2016