Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ADuC7021 + ATMEGA16+SPI - глюк, мой или не мой?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
krofork
Есть ADuC7021 который в Slave режиме привязан к мастеру на атмеге.
Связь такого рода: каждые 20 мс атмега с адуком перекидываются 16-ю байтами.

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

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

Кто сошел с ума: я или Аналог Девайсес? smile.gif
defunct
Попробуйте наоборот...
Mega'у слейвом оформить Aduc мастером.
Еще неплохо добавить байт-стафинг и CRC.
krofork
никакой ЦРЦ не нужен если и осцилом видно что верояность принятия требуемого байта не более 30% sad.gif (а так вообще в протоколе он заложен) - сейчас задача одна - сделать нормальную связь по SPI - просто получить ОДИН НУЖНЫЙ БАЙТ.
поменять местами мастер-слейв попробую. спасбо за совет.
alexQ
Посмотрите пример для работы в Slave режиме. Возможно поможет
krofork
проблема оказалась не софтовая. поскольку это макетный вариант - линии SPI - провода длиной ~10см, то сказались наводки. Чистый с первого взгляда сигнал клока оказался при ближайшем рассмотрении с какими то пиками амплитудой ну...максимум в четверть вольта, а адук, растак его, воспринимал иногда это как дополнительный пульс клока. Проблему решил внешними 1к пулапами ...на всякий случай по всем линиям.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.