vladimir_orl 0 Posted June 3, 2013 · Report post Спасибо за ответ. Почему она тогда в отсоединённом состоянии (от мастера) показывает 0,5 В? Люди советуют делать подтяжку на +5 В резистором 10к. Попробовал, но фронты сильно завалены. Quote Ответить с цитированием Share this post Link to post Share on other sites
DmitryM 0 Posted June 3, 2013 · Report post Спасибо за ответ. Почему она тогда в отсоединённом состоянии (от мастера) показывает 0,5 В? Люди советуют делать подтяжку на +5 В резистором 10к. Попробовал, но фронты сильно завалены. Потому что рекомендуется делать подтяжку на стороне мастера, иначе, паралельное включение подтяжек на слейвах приведет к малому сопротивлению, которое мастер не сможет прокачать. Quote Ответить с цитированием Share this post Link to post Share on other sites
Fujitser 0 Posted June 11, 2013 · Report post Народ, подскажите, может кто знает, какой-нибудь доступный (freeware) инструмент под WinXP, кабель-переходник (желательно USB) с помощью которого можно было бы читать/писать по I2C(типа мастера шины), ну и соответствующий софт позволяющий просто всем этим делом управлять (делать дампы, записывать обратно, анализировать и т.п.) ? Под WinXP не знаю, а под Linux рекомендую i2ctools. Quote Ответить с цитированием Share this post Link to post Share on other sites
vladimir_orl 0 Posted July 9, 2013 · Report post Здравствуйте, уважаемые форумчане. Опять куча вопросов про SPI. Точнее про одну из реализаций. Сейчас разбираю, как общаются два устройства (собственно мастер и слэйв) по SPI в третьем режиме. Особенно заинтересовал сигнал Clock. Начало понятное - вначале 1, затем происходит спад с 1 на 0, затем восемь фронтов с 0 на 1. Так вот, там есть ещё один цикл, девятый, по длительности примерно равный всему байту. Фото осциллографа - в пристёжке. Это что - сигнал самосинхронизации? И как его учитывать, если я хочу написать программный слэйв? У меня сейчас сделано определение начала по длительности сигнала, когда 1. Quote Ответить с цитированием Share this post Link to post Share on other sites
ZASADA 0 Posted July 9, 2013 · Report post Здравствуйте, уважаемые форумчане. Опять куча вопросов про SPI. Точнее про одну из реализаций. Сейчас разбираю, как общаются два устройства (собственно мастер и слэйв) по SPI в третьем режиме. Особенно заинтересовал сигнал Clock. Начало понятное - вначале 1, затем происходит спад с 1 на 0, затем восемь фронтов с 0 на 1. Так вот, там есть ещё один цикл, девятый, по длительности примерно равный всему байту. Фото осциллографа - в пристёжке. Это что - сигнал самосинхронизации? И как его учитывать, если я хочу написать программный слэйв? У меня сейчас сделано определение начала по длительности сигнала, когда 1. чета фото не видно Quote Ответить с цитированием Share this post Link to post Share on other sites
vladimir_orl 0 Posted July 9, 2013 · Report post Жёлтый - это как раз сигнал клок. Видно, что после меандра идёт ещё спад длительностью равный примерно один байт. Quote Ответить с цитированием Share this post Link to post Share on other sites
ZASADA 0 Posted July 9, 2013 (edited) · Report post в середине чипселект? какая микросхема такие клоки формирует? больше похоже на самопального программного мастер-SPI . в любом случае никакой самосинхронизации нет в природе. слэйв на прием представляет из себя примитивный сдвиговый регистр. появился чипселект и такты-по каждому такту записывается 1 бит.Тоже самое на передачу. по каждому такту содержимое сдвигового регистра выдвигается наружу на мисо. Edited July 9, 2013 by ZASADA Quote Ответить с цитированием Share this post Link to post Share on other sites
vladimir_orl 0 Posted July 9, 2013 · Report post Жёлтый – CLK Розовый - MISO Зелёный – MOSI Показано начало обмена, пока ещё слэйв нули выдаёт. Линии "чипселект" там нет. Поскольку мастер и слэйв "заточены" друг под друга. Quote Ответить с цитированием Share this post Link to post Share on other sites
ZASADA 0 Posted July 9, 2013 (edited) · Report post значит кривая реализация программного мастер-SPI. и по осциллограмме кажется, что слэйв переводит MISO в 3 состояние по 9 срезу. может там обмен 9 бит? Edited July 9, 2013 by ZASADA Quote Ответить с цитированием Share this post Link to post Share on other sites
vladimir_orl 0 Posted July 9, 2013 · Report post В обрывках документации пишется про 8 битные данные. Насколько я знаю, в 3-м режиме данные читаются по фронту. Quote Ответить с цитированием Share this post Link to post Share on other sites
ZASADA 0 Posted July 9, 2013 · Report post на укрупненной осциллограмме видно, что 8 бит. мастер пишет 1011 0000, слейв отвечает 0000 0000 и переходит в 3 состояние лишний такт или ошибка реализации мастера (скорее всего) или специально сделан для самольномого протокола обмена. на стандартном SPI его быть не должно. Quote Ответить с цитированием Share this post Link to post Share on other sites
vladimir_orl 0 Posted July 9, 2013 · Report post Да, спасибо. Я и говорю, что это один из вариантов реализации SPI. Я вот просто думаю, зачем разработчики это всё сделали. Или это выдержка минимальной необходимой для слэйва паузы или так клоком какой-то управляющий сигнал для слэйва передаётся. Хотя может сам слэйв линию клока захватывает. Аналогично как в I2C. Quote Ответить с цитированием Share this post Link to post Share on other sites
ZASADA 0 Posted July 9, 2013 · Report post в SPI слейв линию клока захватить не может. в SPI она четко описана - для мастера выход для слейва вход. без вариантов. Quote Ответить с цитированием Share this post Link to post Share on other sites
vladimir_orl 0 Posted July 9, 2013 · Report post И ещё вопрос интересный. Если писать программный SPI для третьего режима. Там ведь захват данных по фронту клока. А когда мы включаем SPI, мы тоже выставляем на клоке единицу как начальное состояние. Если мы пишем монитор данных, как мы отличим фронт начального состояния от "рабочего" фронта? И ещё вопрос интересный. Если писать программный SPI для третьего режима. Там ведь захват данных по фронту клока. А когда мы включаем SPI, мы тоже выставляем на клоке единицу как начальное состояние. Если мы пишем монитор данных, как мы отличим фронт начального состояния от "рабочего" фронта? Quote Ответить с цитированием Share this post Link to post Share on other sites
ZASADA 0 Posted July 9, 2013 · Report post И ещё вопрос интересный. Если писать программный SPI для третьего режима. Там ведь захват данных по фронту клока. А когда мы включаем SPI, мы тоже выставляем на клоке единицу как начальное состояние. Если мы пишем монитор данных, как мы отличим фронт начального состояния от "рабочего" фронта? в нормальном SPI все проблемы с ложными клоками решает сигнал чипселект. Более того, есть много микросхем, которые без чипселекта просто не работают. Quote Ответить с цитированием Share this post Link to post Share on other sites