Я пытаюсь соединить две микросхемы PIC 16f627 (запрограммированные с помощью PICC-Lite) с одним выводом ввода / вывода (RA2, который изменяет направление в известных точках) и выводом CLK, который приводится в действие одним из чипов.
Первоначально я его настроил, поэтому там был хозяин и раб. Мастер записывает 8-битную команду, биты TRIS входов / выходов переворачиваются, а подчиненный отвечает 16-битным ответом.
Я поместил (временные, большие) задержки, чтобы гарантировать отсутствие проблем с синхронизацией.
Запись / чтение команды работает нормально, и оба конца переворачиваются (TRISA). Однако в этот момент, когда мастер должен считывать данные с булавки, на которую он был записан ранее, он всегда читает 0, даже если физически булавка имеет значение 1!
Насколько я могу судить, TRISA настроено правильно (= установлено для бита, если он введен), как и CMCON (= 7), и я считаю словом CONFIG; это одинаково для обоих чипов (ну, инвертированных), и вход работает на ведомом устройстве ... Я также пытался убедиться, что TRISA никогда не равняется 0 для обоих чипов одновременно.
Что я пробовал:
- Изменение ведомого устройства таким образом, чтобы вместо попыток отправить данные обратно, оно просто переключало значение своего выходного контакта с большими интервалами. Это видно по выходному проводу, но не по значению входного контакта.
- Просто передать состояние от входного контакта к другому выходному контакту (выход остается нулевым; фиктивное размещение показало, что общий вывод на этом контакте работает)
- Запись значений PORTA и TRISA на ЖК-дисплей - TRISA верна, но PORTA равна 0 (даже если провод к контакту высокий)
- Подключение линии ввода / вывода к светодиоду показывает, что она меняется, но входное значение на порту не
- Подключение вольтметра показывает подходящее напряжение (равное V +)
- Я пытался заменить Мастера на замену (он полагал, что мог получить физический урон), хотя это не имело значения
- Я читал, что это может быть проблема «чтения-изменения-записи», но я не мог найти совета, чтобы убедиться, что это не так на Pic16s ... (нет портов LAT AFAIK?)
Я бью головой об стену на этом. Любые намеки или идеи будут высоко оценены! Возможно, мне придется прибегнуть к использованию двух выводов (хотя я надеялся, что в какой-то момент смогу подключить несколько подчиненных устройств с помощью одной общей линии ввода-вывода ...)