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

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Нашел транзистор. Понюхал.
Сообщения: 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 КБ) 230 скачиваний
Модератор
Аватара пользователя
Сообщения: 4614
Зарегистрирован: Чт мар 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м?
Друг Кота
Аватара пользователя
Сообщения: 25447
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

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

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

Сообщение SmarTrunk »

Ну можно поставить "изоляторы", вроде быстрых оптических 1N136, 1N137, или неоптические ADUM... Тогда питание и земли могут быть разные. Я бы в любом случае поставил, если бы вдруг захотел тянуть SPI на метр.
Друг Кота
Аватара пользователя
Сообщения: 25447
Зарегистрирован: Чт янв 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 не существует.
С уважением,
Виктор.
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 162
Зарегистрирован: Вс дек 09, 2012 12:14:44

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

Появился у меня RGB светодиод и захотелось им поиграться. Начал с самого простого - подключил к трем портам, подал единички на два из них (к R и B), должен был получиться лиловый цвет. Но получилась какая то хренотень мягко говоря - круг красный наполовину пересекающийся с синим кругом, ну и соответсвенно в месте пересечения образующий что то похожее на лиловый цвет. но при этом отчетливо видно красную и синию составляющие. И так со всему другими цветами, образующимися смешиванием других(желтый, голубой и белый). Ни в одном из вариантов не получается плавности цвета.

Вопрос такой, это так и должно быть? Или светодиод корявый? Либо надо как по особому их зажигать? Просто я если честно ожидал некой плавности, а тут такое
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

А кому удавалось обмануть оптику? Светодиод из себя что представляет? Вот и думай почему так выходит.

Чтобы цвета смешивались в прозрачной оптике нужен рассеиватель. или светодиод надо брать с матовой оптикой.
Контактная информация:
Chettuser

Сообщение Chettuser »

Это называется аддитивное смешивание цветов.
Скорее всего таки должно быть, поскольку в RGB 3 кристалла и светят они прямо. Выход - светорассеиватель. С матовым стеклом вряд ли получится - картина будет примерно та же, пятнами.
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

ut1wpr писал(а):Сочетаний FRONT FRONT или REAR FRONT не существует.
Так и отдельного использования FRONT и REAR я лично не встречал, зато встречал rising edge и falling edge.
Edge и переводится как граница или острие.Вот и подумал, что фронт можно использовать в этом смысле.
К сожалению с русскими принятыми терминами не знаком. :dont_know:
Спасибо за разъяснение.
Так то я знаю что значит FRONT на английском языке только вот в русском его немного по другому уже можно трактовать. Никто не говорит повернись фронтом.
Контактная информация:
Ответить

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