Последовательная связь через 1 контакт?

Ладно, ребята, я тут немного в затруднительном положении. У меня есть следующая схема:

Схема

Как видите, вывод 3 — мой единственный выход. На самом деле я уже распечатал эту плату, так что места для модификации не так много. Я беру показания с аналогового датчика давления, выполняю аналого-цифровое преобразование, а затем хочу отправить это значение на Arduino. Есть ли способ, которым я могу отправить это только через контакт 3? Если да, то как? Если нет, может ли кто-нибудь дать мне быстрый пример кода SPI или Bit Bang? Я использую PIC12F675.

Редактировать: Вот ссылка на полноразмерное изображение.

Почему датчик давления нельзя подключить прямо к ардуино? Облегчил бы жизнь.
Что ж, Arduino будет параллельно выполнять некоторые другие задачи, поэтому было проще разделить его на 2 отдельных приложения.
Вам нужна двусторонняя связь? если вам просто нужно отправить данные в одну сторону, настройка UART будет работать
Ага. Мне просто нужно отправить данные с сенсорной платы на Arduino. Можете ли вы дать мне ссылку на это?
@WillemEllis - мне все еще интересно, почему вы не можете подключить датчик к Arduino, как предложил Дин. Чтение датчика напрямую может потребовать меньше усилий, чем чтение данных о датчике из любой схемы связи. Он может полностью управляться прерыванием и автоматически запускаться или запускаться только тогда, когда вам нужно чтение. В любом случае, использование UART (TX от PIC к RX на Arduino) — это лучшее, что можно себе представить для простой однопроводной связи, как указывает AngelAtLarge в своем ответе. Я ничего не знаю о PIC, и я не использую Arduino, поэтому я не могу помочь с кодом.
Если вы довольны отправкой «вслепую», тогда асинхронная серия «проста». Посмотрите, что делает и ожидает UART. Может быть отправлен с помощью программного обеспечения, если вы можете каким-либо образом генерировать битовую синхронизацию. ИЛИ вы можете применить значение как % high в форме волны PWM и прочитать это - либо как цифровой вход hi / low на дальнем конце, либо отфильтровать его до постоянного тока и прочитать значение постоянного тока. UART дает столько точности, сколько необходимо. Аналоговая версия проста, скажем, для 4 бит, а для 8 бит требуется некоторая работа, чтобы получить точность.

Ответы (1)

Я не человек PIC, но обычно для последовательного стандарта вам нужны три строки:

  • Отправить (ТХ)
  • Получить (прием)
  • Земля (земля)

Поскольку вам не нужен RX, вы можете использовать заземление схемы и использовать контакт 3 для TX, если ваш Arduino и ваш PIC согласуются со скоростью передачи данных и другими параметрами, связанными с последовательной связью (стоповые биты, биты четности и т. д.). Теоретически это может быть стандартная последовательная связь, если вы можете заставить свой PIC сделать это.

SPI невозможен, так как SPI требует независимой линии синхронизации.

Еще одна вещь, которую следует учитывать, - это протокол Dallas 1-wire , однако на практике его будет сложнее реализовать, чем реальный или взломанный последовательный порт.

Спасибо за это! Я читал о возможном использовании serial. Будет обновлено, как это происходит
Хотел бы я поставить -1 за то, что не являюсь PIC-человеком, но это было бы несправедливо, поэтому вместо этого я проголосовал ;)
Так что это на самом деле ответ. Я сделал это с помощью битового удара UART. Вы можете найти мой код здесь . Это довольно очевидно. Поскольку мне нужно было только Tx, мне нужна была только одна линия.