vladimir_orl 0 12 марта, 2015 Опубликовано 12 марта, 2015 · Жалоба Здравствуйте. Собственно проблема. Имеется плата с установленной на ней atmega128 (3.3 В, 8 МГц). Эта плата через SPI общается с другой платой (ардуино 328, 5 В, 16 МГц). Ардуино выступает мастером. Шлётся один байт, в ответ тоже байт. И вот, иногда моя плата вместо ответа возращает принятый байт. Первый раз вообще с таким столкнулся. Думал, может мега не успевает принять, поставил и задержку побольше и частоту снизил - всё равно то же самое. Может, кто сталкивался с таким? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 35 12 марта, 2015 Опубликовано 12 марта, 2015 · Жалоба Это вам не поможет? http://www.avrfreaks.net/forum/atmega48-spi-slave-problem Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vladimir_orl 0 12 марта, 2015 Опубликовано 12 марта, 2015 · Жалоба Спасибо, Xenia! Разобрался. Оказалось такой глюк (даже слов нет, одни эмоции) из-за разницы в напряжениях. То есть сейчас взял STK-500 с mega128 (то есть эмулировал свою плату) и подсоединил её к ардуине. В STK-500 есть возможность регулирования рабочего напряжения. Когда напряжение = 5 В, всё хорошо. Когда переводим на 3.3 В (а напряжение на ардуине так и равно 5 В), появляется вышеописанная особенность. Хотя проверял осциллографом, на 3.3 вольтах рабочая частота вроде остаётся прежней (8 МГц). Теперь либо ардуину на 3.3 В переделывать, либо софт с вайринга на си переписывать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться