vladimir_orl
Mar 12 2015, 11:07
Здравствуйте. Собственно проблема. Имеется плата с установленной на ней atmega128 (3.3 В, 8 МГц). Эта плата через SPI общается с другой платой (ардуино 328, 5 В, 16 МГц).
Ардуино выступает мастером. Шлётся один байт, в ответ тоже байт. И вот, иногда моя плата вместо ответа возращает принятый байт. Первый раз вообще с таким столкнулся.
Думал, может мега не успевает принять, поставил и задержку побольше и частоту снизил - всё равно то же самое. Может, кто сталкивался с таким?
vladimir_orl
Mar 12 2015, 12:18
Спасибо, Xenia!
Разобрался. Оказалось такой глюк (даже слов нет, одни эмоции) из-за разницы в напряжениях. То есть сейчас взял STK-500 с mega128 (то есть эмулировал свою плату) и подсоединил её к ардуине. В STK-500 есть возможность регулирования рабочего напряжения. Когда напряжение = 5 В, всё хорошо. Когда переводим на 3.3 В (а напряжение на ардуине так и равно 5 В), появляется вышеописанная особенность. Хотя проверял осциллографом, на 3.3 вольтах рабочая частота вроде остаётся прежней (8 МГц).
Теперь либо ардуину на 3.3 В переделывать, либо софт с вайринга на си переписывать.