Мелкие вопросы по МК и ПЛИС.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

Там же стрелочками обозначено. первая стрелочка - старт, следующий фронт работает в холостую, а последующие будут работать на информационную часть.
Контактная информация:
Реклама
Нашел транзистор. Понюхал.
Сообщения: 161
Зарегистрирован: Вт мар 25, 2008 22:10:23
Откуда: Минск

Сообщение Лютик »

Alexeyslav, а можете на картинке показать, чтото все-равно никак не могу въехать :cry:
Реклама
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

Так на картинке все и показано. стрелочками.
Контактная информация:
Модератор
Аватара пользователя
Сообщения: 4618
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

Сообщение Аlex »

говорится об инициализирующем импульсе(спад-фронт)
Там говорится не об импульсе, а о первом перепаде с высокого уровня на низкий. Это и есть начальная синхронизация. :
Изображение
ssi.PNG
(28.93 КБ) 1095 скачиваний
Дальше, по каждому нарастающему фронту меняются данные:
Изображение
ssi.PNG
(29.15 КБ) 1031 скачивание
Реклама
Эиком - электронные компоненты и радиодетали
Нашел транзистор. Понюхал.
Сообщения: 161
Зарегистрирован: Вт мар 25, 2008 22:10:23
Откуда: Минск

Сообщение Лютик »

Аlex, в соответствии с Вашей трактовкой, алгоритм следующий(поправьте, если не прав):
1. CLK -> LOW // синхронизация
2. задержка для обеспечения частоты
3. CLK -> HIGH
4. считываем DO
5. задержка
...

Я так делал и 1 бит недотягивает, работает нормально, если:
1. CLK -> LOW // синхронизация
2. задержка для обеспечения частоты
3. CLK -> HIGH // синхронизация
4. задержка для обеспечения частоты
5. CLK -> LOW
6. задержка для обеспечения частоты
7. CLK -> HIGH
8. считываем DO
9. задержка
...

Где я туплю :oops: ?
Реклама
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

Зачем ты считываешь первый раз? первый раз считывать не надо! В твоем алгоритме первое считывание D0 - это стартовый импульс, считаешь всегда "0".
Контактная информация:
Реклама
Нашел транзистор. Понюхал.
Сообщения: 161
Зарегистрирован: Вт мар 25, 2008 22:10:23
Откуда: Минск

Сообщение Лютик »

Alexeyslav, видимо, я чтото не так понимаю. В общем, как я понимаю(смотреть картинку):
Линия в покое - CLK=1 (CSn опускаем). После чего мы делаем спад и затем фронт и приходим в интервал 1го бита данных. Где и как он пустой?
Я понимаю что считываю ноль, и я уже написал код и все работает, но хочу разобраться с этим раз и на всегда, помогите пожалуйста :cry:
Вложения
ssi.PNG
(29.15 КБ) 236 скачиваний
Модератор
Аватара пользователя
Сообщения: 4618
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

Сообщение Аlex »

После чего мы делаем спад и затем фронт и приходим в интервал 1го бита данных.
Всё верно. Сначала спад, затем, после каждого переднего фронта, читаем бит.
Просто первый спад является синхронизацией девайса для начала пакета. Чё он там делает (сохраняет ли какие данные, устанавливает данные в вых. сдвиговые регистры, ....), в принципе пофиг, это не должно Вас волновать. Видимо, это Вас смутило и запутало. Ваша задача начать пакет и по каждому нарастающему фронту читать свой бит, и всё.
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

По спаду ВЕДУЩЕЕ устройство выставляет данные на шину, а ВЕДОМОЕ по фронту фиксирует это значение и сохраняет. Теперь если с этой точки зрения посмотреть на данные, то в начале посылки у вас ВСЕГДА будет читаться один лишний бит, который равен нулю - его надо просто проигнорировать если реализуете ВЕДОМОЕ устройство, и передать перед посылкой данных если ВЕДУЩЕЕ.
Он же и является стартовым импульсом, по аналогии с асинхронным протоколом.
Контактная информация:
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

Alexeyslav писал(а): а ВЕДОМОЕ по фронту фиксирует это значение и сохраняет
Выражайтесь точнее тут надо читать по восходящему фронту читает. Фронт бывает и нисходящий.
Alexeyslav писал(а):Теперь если с этой точки зрения посмотреть на данные,
тут тоже непонятно с какой точки? Которую вы только что описали?
Контактная информация:
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

С любой точки зрения. Передача этого "нуля" ничем не отличается от передачи остальных бит. Просто он первый.
Контактная информация:
Мучитель микросхем
Аватара пользователя
Сообщения: 424
Зарегистрирован: Сб авг 25, 2007 22:02:05
Откуда: Германия, Viernheim

Сообщение unalex »

vitalik_1984 писал(а):Фронт бывает и нисходящий

передний фронт 0-1 задний фронт 1-0
фронт 0-1 спад 1-0

а если в тексте фигурирует и фронт и спад, то думаю ежу становится понятно что есть что
Коктейль "Рекурсивный": 20% спирта, 30% воды, 50% коктейля "Рекурсивный"...
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 162
Зарегистрирован: Вс дек 09, 2012 12:14:44

Сообщение 1essor1 »

такой вопрос - на каком максимальном расстоянии можно расположить 2 мк связанные проводами по SPI? и еще - какой способ передачи выбрать для связи без сбоев если провода (а соответственно и расстояние между мк) от 1 до 2м?
Друг Кота
Аватара пользователя
Сообщения: 25862
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

SPI - интерфейс для ОДНОЙ платы или блока. Тащить его в кабель можно, только если кабель должным образом терминировать. Значит потребуется приемопередатчики (по обеим линиям) и согласование линии у приемников.
Плюс к этому, питание устройств не может быть независимым, иначе может возникнуть перекос между землями с неустранимыми помехами и опасностью повреждения драйверов линии и приемников.
Друг Кота
Сообщения: 6014
Зарегистрирован: Чт ноя 26, 2009 11:16:50
Откуда: Москва

Сообщение SmarTrunk »

Ну можно поставить "изоляторы", вроде быстрых оптических 1N136, 1N137, или неоптические ADUM... Тогда питание и земли могут быть разные. Я бы в любом случае поставил, если бы вдруг захотел тянуть SPI на метр.
Друг Кота
Аватара пользователя
Сообщения: 25862
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

И изоляторы можно, и питание можно объединить через кабель. Все это можно.
Только автор, по моему, вообще планировал соединить чипы pin-to-pin...
Мучитель микросхем
Аватара пользователя
Сообщения: 424
Зарегистрирован: Сб авг 25, 2007 22:02:05
Откуда: Германия, Viernheim

Сообщение unalex »

1essor1 писал(а):какой способ передачи выбрать для связи без сбоев если провода (а соответственно и расстояние между мк) от 1 до 2м?
1-Wire(до 300м)
RS-232(до 15м)
RS-485(до 1 км)
I2C - можно на 2 метра и теоретически больше(уменьшая скорость)
Коктейль "Рекурсивный": 20% спирта, 30% воды, 50% коктейля "Рекурсивный"...
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 162
Зарегистрирован: Вс дек 09, 2012 12:14:44

Сообщение 1essor1 »

Я наверное не очень верно указал условия - один мк1 - по SPI выводит байт на сдвиговый регистр, а затем происходит считывание байта мк2 (последовательный вывод - параллельный ввод) - при этом мк2 и регистр находятся на одном блоке, мк1 на другом. Возможно это по извратски, но задумка была такая)
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

Вообще условие очень простое - соединить можно без согласования только когда это соединение нельзя считать длинной линией. Понятие это зависит от частоты - 1Мгц на 1 метр линии уже требует согласования, в то время как передавать с частотой 100Гц по линии протяженностью 1км - без проблем. Больше требуется расстояние - снижай скорость на которой работает SPI.
Контактная информация:
Вымогатель припоя
Сообщения: 581
Зарегистрирован: Ср янв 05, 2011 10:03:18

Сообщение ut1wpr »

vitalik_1984 писал(а):Выражайтесь точнее тут надо читать по восходящему фронту читает. Фронт бывает и нисходящий.
Я уже около 20 лет в импульсной технике топчусь, и там, именно с целью избежать разночтения, приняты термины ФРОНТ импульса и его СПАД. По аналогии с международными RISE и FALL. Сочетаний FRONT FRONT или REAR FRONT не существует.
С уважением,
Виктор.
Ответить

Вернуться в «Разные вопросы по МК»