Всем доброго времени суток!
Подскажите пожалуйста... имеются ли у кого интересные и полезные для ретро-хобби (или в быту, кроме АОН'ов) проекты использующие микроконтроллеры семейства 8031/8051 ?!
С уважением, Максим aka nimdasys_inbox_ru
Вид для печати
Всем доброго времени суток!
Подскажите пожалуйста... имеются ли у кого интересные и полезные для ретро-хобби (или в быту, кроме АОН'ов) проекты использующие микроконтроллеры семейства 8031/8051 ?!
С уважением, Максим aka nimdasys_inbox_ru
Вот частотомер http://www.cqham.ru/fpic01.htm
Но 8031 это же не Плис, а микроконтроллер
Собирал такой в 90-х. Потом распаял за ненадобностью.
Приспичило мне подключить к борде Альтеры девайс с протоколом i2c.
Соответственно начал искать готовые примеры "мастера" на верилоге.
Изучение примеров шедших с бордой и найденных на просторах нета, привело к мысли, что найденные примеры "куцие"...
В закоулках памяти мелькает, что в протоколе i2c предусмотрено торможение мастера, если ведомый не успевает за тактовой частотой. Ведомый для этого зажимает в "0" линию SCL. И мастер ждёт пока эту линию не освободят.
А во всех примерах линия SCL чисто "output", а не "inout". Значит мастер (ПЛИС) не может следить за состоянием SCL, и если ведомый "тормозной", то сбоев не избежать...
Так его же несложно самому написать. Да, мастер обязан уметь понимать торможение. Это неотъемлемая часть протокола.
В продолжение темы про реализацию i2c.
Не могу понять, зачем нужно переводить выход в состояние "z" при чтении входных данных.
В даташите на Альтеру нашкрябано, что все выводы оснащены "ОК".
По идее, должно быть достаточно записать в выходной регистр "1", и если выход с "ОК", то можно спокойно читать вход (данные от внешнего источника).
Но в примерах реализации i2c, выходной регистр постоянно подключают/отключают от шины.
Без отключения от шины выходного регистра (при условии перевода его в "1"), реально не будет читаться внешний сигнал?
1) На какую именно Альтеру?
2) Физически, если говорить про Циклоны/Стратиксы, там нет ОК. Он именно, что эмулируется таким вот образом.
3) Если перевести выход в 1, то при подаче на него снаружи 0 будет конфликт. Поэтому его надо переводить в z и использовать подтяжку.