Как принять 2 байта информации за один сеанс?

Тема в разделе "ESP8266, ESP32", создана пользователем chaplin, 23 ноя 2019.

  1. chaplin

    chaplin Нуб

    Есть неизвестное устройство, которое выдает информацию в виде 2х байт на два 7ми сегментных индикатора через два последовательных сдвиговых регистра 74htc495. Задача: подключиться паралельно до сдвиговых регистров и принять на ESP8266 эти 2байта. Пробовал через I2C и SPI, но принять больше одного байта не получилось. Пока примитивно принимаю по-битно с digitalRead. Защелка, такт и данные на разных пинах имеются. Есть у кого идеи упростить решение?
     
  2. Daniil

    Daniil Гуру

    как?
     
  3. ostrov

    ostrov Гуру

    Мб 595? Тогда в обратном порядке, почти как с 74HC165.
     
  4. chaplin

    chaplin Нуб

    Код уже не сохранился.. Там стандартные методы -
    I2C - onRecive, read
    SPI - shiftIn
     
  5. chaplin

    chaplin Нуб

    74hc595n - правильно
     
  6. ostrov

    ostrov Гуру

    Ну так протокол простейший, отщелкнули, битов накидали, защелкнули. Если умеете отправлять на регистр, то и считать не проблема.
     
  7. chaplin

    chaplin Нуб

    Дело в том, что мастер отщелкивает, передает два байта и защелкивает, а в регистре только 1 байт остается. Остальное вываливается.
     
  8. ostrov

    ostrov Гуру

    Это как? Сигнал исходящий кривой или принять его не получается? Это разные вещи.
     
  9. parovoZZ

    parovoZZ Гуру

    I2C слишком интеллектуален для такой задачи. Буфер SPI в ESP способен за раз 16 бит принять?
     
  10. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Ардуиновский шифт-ин - только под один байт заточен. В АВР бейсике - управляемый до 256 бит, В Пик бейсике - тоже управляемый..
    То что хочет ТС - называется "снифферинг". А программа слежения - сниффер.
    При передаче в регистр сдвига мастер никак не обязан "оформлять" начало и конец чего либо. Так что все зависит от изощренности сниффера ловить райз-ап (0-1) фронты сигнала сдвига (SH_CP) и сигнала сохранения ST_CP). (Сигнала сохранения может и не быть. Схема может работать с автосохранением - через Q7" на ST_CP).
    ПС. В арсенале ардуины не густо, но есть - прерывания (Interrupts). Попробуйте их. Тут реально не сложно будет.
     

    Вложения:

    • 74HC595.JPG
      74HC595.JPG
      Размер файла:
      54,9 КБ
      Просмотров:
      176
    Последнее редактирование: 26 ноя 2019
  11. chaplin

    chaplin Нуб

    В итоге, есть ли смысл заморачиваться, если я читаю бит при каждом сдвиге до защелки и записываю значение в int? С прерываниями интересно, но не понятно пока..
     
  12. Ariadna-on-Line

    Ariadna-on-Line Гуру

    А что такое "при каждом сдвиге" ? - бесконечный цикл чтения текущего значения и сравнение с предыдущим. По изменению - отработка.
    С прерываниями не нужен цикл отслеживания события. Работает "железо периферии" процессора. Его ради этого туда пихают. Написали процедуру обработчика прерывания, сконфигурили линию по какому событию срабатывать, и процессор перейдет на обработчика ТОЛЬКО по событию. Программа быстрей и эффективней. Вот вам идея :>)) В хелпе ардуины есть.
     
    Последнее редактирование: 27 ноя 2019