otest писал(а):lucifern
Нарисуйте временную диаграмму и всем станет понятно.
Нужна программа на таймер переключения нагрузки.
- Сообщения: 51
- Зарегистрирован: Пн апр 08, 2013 07:56:28
- Реклама
- Сообщения: 51
- Зарегистрирован: Пн апр 08, 2013 07:56:28
Ну а я уже прошивку изменил. Давайте сверять работу с диаграммой.lucifern писал(а):Диаграмма работы во вложении
Добавил дополнительный выход, проверяйте его функциональность. Сделал 3-е состояние (Z) для выходов. Если на RA1 1 на активном выходе 1, на остальных Z, если RA1 0 то на всех выходах Z.
- Вложения
-
- Timer_lucifern.zip
- (12.71 КБ) 195 скачиваний
- Сообщения: 51
- Зарегистрирован: Пн апр 08, 2013 07:56:28
Вот сигнал данных с порта RA1. Кстати,это данные CLC, так что их проще будет пропустить шлюзом через контроллер. C данными CS у меня ничего не получилось ,так как там устанавливается лог 1 и 0 только( упоминал в предыдущем описании работы его как пример, особо на это не стоит обращать внимание)
- Вложения
-
- 20121211_175639.JPG
- (80.8 КБ) 368 скачиваний
- Сообщения: 51
- Зарегистрирован: Пн апр 08, 2013 07:56:28
Нет,малость не так. Когда на RA1 0,то на активном выходе тоже должно быть 0 - это данные! То есть данные CLC 101010101, поэтому их надо пропускать так как они на входе,а на других не активных выходах Z. Когда произойдет переключение на другой порт, то на другом порту, данные с RA1 должны в точности повторяться, на на неактивных портах ZSoir писал(а):Ну а я уже прошивку изменил. Давайте сверять работу с диаграммой.lucifern писал(а):Диаграмма работы во вложении
Добавил дополнительный выход, проверяйте его функциональность. Сделал 3-е состояние (Z) для выходов. Если на RA1 1 на активном выходе 1, на остальных Z, если RA1 0 то на всех выходах Z.
- Реклама
А теперь?lucifern писал(а):Нет,малость не так. Когда на RA1 0,то на активном выходе тоже должно быть 0 - это данные!
- Вложения
-
- Timer_lucifern.zip
- (2.58 КБ) 228 скачиваний
- Сообщения: 51
- Зарегистрирован: Пн апр 08, 2013 07:56:28
Теперь всё замечательно. Осталось проверить полноценную прошивку по часам.А теперь?
Благодарю Вас за такую громадную работу
Как все тесты проведу в полном объеме дам знать.
Есть еще одна задумка насчет пропускания всех данных ( 6 портов данных)через отдельный контроллер на каждое из 10 устройств, а не одного порта, но это уже другой подход.
Кстати, а какая скорость передачи данных? МК вносит некоторую задержку и я с этим не заморачивался, но если критично...lucifern писал(а):...То есть данные CLC 101010101, поэтому их надо пропускать так как они на входе...
- Сообщения: 51
- Зарегистрирован: Пн апр 08, 2013 07:56:28
Если скорость данных будет мала, то я вам после всех тестов отпишусь )
Сигнал у меня CLC- синхронизация. Не думаю , что ему нужна большая скорость, хотя....
Сигнал у меня CLC- синхронизация. Не думаю , что ему нужна большая скорость, хотя....
Думаю лучше сразу сделать по максимуму, потому как это потянет за собой изменения в схему.lucifern писал(а):...Не думаю , что ему нужна большая скорость, хотя....
---
Внес изменения и в схему, и в прошивку. Проверьте правильность работы еще раз, мог что-то зацепить.
- Вложения
-
- Timer_lucifern.zip
- (18.99 КБ) 211 скачиваний
- Сообщения: 51
- Зарегистрирован: Пн апр 08, 2013 07:56:28
Сразу заметно,что схемку малость подкорректировали. Порт данных сделали на осcцилятор. Умно! Все вроде в моделе работает хорошо, кроме порта RB6, на нем оставили при выключении значение лог "0",а не Z, нужно поставить Z. Завтра залью в железо. Только видно по осциллографу,что присутствует задержка, то есть сигнал на выходе отстает на несколько микросекунд от входного. С чем это может быть связанно? Самое главное, в основной прошивке исправьте
А то проверка может затянуться на часы
Недоглядел, исправил.lucifern писал(а):...кроме порта RB6, на нем оставили при выключении значение лог "0",а не Z, нужно поставить Z.
Задержка неизбежна. На обработку события МК тратит какое-то время, тут ничего не поделаешь. Посмотрю может это время удастся немного уменьшить, но немного. Если критично - надо увеличивать частоту МК, но для кварца нужны два вывода. Второй путь - возврат к внешней логике. Но Вы протестируйте для начала.lucifern писал(а): Только видно по осциллографу,что присутствует задержка, то есть сигнал на выходе отстает на несколько микросекунд от входного. С чем это может быть связанно?
- Вложения
-
- Timer_lucifern_work.zip
- Рабочая.
- (1.25 КБ) 214 скачиваний
-
- Timer_lucifern.zip
- Тестовая, ускоренная.
- (1.16 КБ) 208 скачиваний
Забыл рабочую прошивку, добавил в предыдущее сообщение.
- Сообщения: 51
- Зарегистрирован: Пн апр 08, 2013 07:56:28
В общем итог таков:
Контроллер и программа работает так как написана.
Не работает всё это вместе взятое как должно в железе
При измерениях входного и выходного сигнала я понял, что алгоритм работы совсем другой. Вы сделали манипуляционный выход, а не прямой шлюз. При подключении ко входу сигнал CLC с внешнего устройства садится на лог. "1" и получается, что сигнал изначально искажен. На выходе соответственно влияние лог. "1" по входу "модулированной"" сигналом CLC воспринимается высоким уровнем и выставляется в лог. "1", то есть сигнал не проходит.Следовательно на лицо манипуляция. Нужно сделать шлюз, чтобы со входа сигнал подключался к выходу напрямую, без участия логических уровней контроллера. А то получается что если по входу какая то помеха будет присутствовать, то на выходе будет "1". Проще говоря надо смодулировать обычное реле, которое бы переключала один вход на 10 выходов напрямую. Вот как то так.Это реализуемо на чипе контроллера или придется все делать на механических элементах, управляемыми контроллером?
Сигнал на выходе внешнего устройства

Сигнал на входе контроллера

Сигнал на выходе контроллера

Может попробовать хотя бы убрать лог."1" по входу контроллера, вдруг что-нибудь получится?
Или сделать все как нужно.
Контроллер и программа работает так как написана.
Не работает всё это вместе взятое как должно в железе
При измерениях входного и выходного сигнала я понял, что алгоритм работы совсем другой. Вы сделали манипуляционный выход, а не прямой шлюз. При подключении ко входу сигнал CLC с внешнего устройства садится на лог. "1" и получается, что сигнал изначально искажен. На выходе соответственно влияние лог. "1" по входу "модулированной"" сигналом CLC воспринимается высоким уровнем и выставляется в лог. "1", то есть сигнал не проходит.Следовательно на лицо манипуляция. Нужно сделать шлюз, чтобы со входа сигнал подключался к выходу напрямую, без участия логических уровней контроллера. А то получается что если по входу какая то помеха будет присутствовать, то на выходе будет "1". Проще говоря надо смодулировать обычное реле, которое бы переключала один вход на 10 выходов напрямую. Вот как то так.Это реализуемо на чипе контроллера или придется все делать на механических элементах, управляемыми контроллером?
Сигнал на выходе внешнего устройства

Сигнал на входе контроллера

Сигнал на выходе контроллера

Может попробовать хотя бы убрать лог."1" по входу контроллера, вдруг что-нибудь получится?
Последний раз редактировалось lucifern Чт авг 22, 2013 11:05:37, всего редактировалось 2 раза.
- Сообщения: 351
- Зарегистрирован: Пн сен 12, 2011 12:13:46
Мне кажется вы не одиноки , здесь 90% фантазируют.моя очередная идея превращается в утопию
Это- ж надо такое придумать, чтобы использовать МК в качестве сквозного канала.
Это пока первая в мире такая разработка ? Подобный пример есть еще где?
Соир, я бесконечно удивляюсь вашему терпению , к нам новичкам, но думаю даже вы не ожидали финальной цели этой идеи!
- Сообщения: 51
- Зарегистрирован: Пн апр 08, 2013 07:56:28
Аналогов нет,покрайней мере на гражданском рынке и с использованием сразу 10 и больше устройств. Как будет все готово, сюда же выложу полностью функциональное устройство
- Сообщения: 51
- Зарегистрирован: Пн апр 08, 2013 07:56:28
Извините, отдыхал. Завтра начну во все вникать.


