Сделал остановы, та же фигня. может какие настройки выставить?vitalik_1984 писал(а):Конечно нужно делать остановы.Только так скорость вашего восприятия совпадает со скоростью программы.Так же если все время на стрелку смотреть можно всю жизнь просидеть и не отловить всех жуков.Чтобы не смотреть там где вам не нужно контроллер работает в обычном режиме.
Мелкие вопросы по МК и ПЛИС.
-
Prosperous
- Встал на лапы
- Сообщения: 129
- Зарегистрирован: Ср янв 18, 2012 19:37:10
Re: Мелкие вопросы по МК и ПЛИС.
- Реклама
Re: Мелкие вопросы по МК и ПЛИС.
Добрый день!
Прошу помощи, совета по интерфейсу SPI. В устройстве 10 плат, на каждой из которых находится микроконтроллер Mega8 (собирает информацию от др. микросхем). Все десять плат завязаны по SPI на общую плату (там стоит Mega32), куда поступает информация для последующей передачи на компьютер по Ethernet’у. Вот у меня и вопрос: Mega32 как ведущее устройство должна сама по очереди опрашивать ведомые (Mega8) или есть всё же возможность (по прерыванию) ведомому инициировать передачу информации?! Что то в даташите не совсем вкурил… Спасибо заранее!!
Прошу помощи, совета по интерфейсу SPI. В устройстве 10 плат, на каждой из которых находится микроконтроллер Mega8 (собирает информацию от др. микросхем). Все десять плат завязаны по SPI на общую плату (там стоит Mega32), куда поступает информация для последующей передачи на компьютер по Ethernet’у. Вот у меня и вопрос: Mega32 как ведущее устройство должна сама по очереди опрашивать ведомые (Mega8) или есть всё же возможность (по прерыванию) ведомому инициировать передачу информации?! Что то в даташите не совсем вкурил… Спасибо заранее!!
-
Prosperous
- Встал на лапы
- Сообщения: 129
- Зарегистрирован: Ср янв 18, 2012 19:37:10
Re: Мелкие вопросы по МК и ПЛИС.
разобрался я, косяк был в настройках кварца. Да, кстати, он даже без выставления точек останова по шагам идет, а не тупо выполняет программу, как писали вышеProsperous писал(а):Сделал остановы, та же фигня. может какие настройки выставить?
- Леонид Иванович
- Друг Кота
- Сообщения: 4779
- Зарегистрирован: Сб апр 02, 2011 12:40:46
- Откуда: Минск
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
В подобных системах для связи между контроллерами использую UART. Там есть специальный режим многопроцессорной связи, когда адрес передается с установленным девятым битом. Каждый процессор автоматически откликается на "свою" посылку. Если линия короткая, то передаю данные в формате TTL (в качестве буферов с Z-состоянием использую 74125). Если платы далеко друг от друга, то применяю ADM485. Делать мультимастерную сеть не советую, очень трудно будет реализовать арбитраж (если только не использовать CAN). Пусть лучше всегда обмен инициирует единственный мастер.Димаn писал(а):Прошу помощи, совета по интерфейсу SPI. В устройстве 10 плат, на каждой из которых находится микроконтроллер Mega8 (собирает информацию от др. микросхем). Все десять плат завязаны по SPI на общую плату (там стоит Mega32)
Re: Мелкие вопросы по МК и ПЛИС.
Димаn
По моему субъективному мнению, SPI хорош на малых расстояниях. Хотя можно ставить шинные формирователи-и-приемники, удлинняя линию, но на практике этого не встречал.
По моему субъективному мнению, SPI хорош на малых расстояниях. Хотя можно ставить шинные формирователи-и-приемники, удлинняя линию, но на практике этого не встречал.
- Реклама
- vitalik_1984
- Поставщик валерьянки для Кота
- Сообщения: 2482
- Зарегистрирован: Пт авг 27, 2010 05:57:06
- Откуда: Тюмень
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Кто его знает как там в железном стимуляторе выглядит я еще не запускал своего дракона в режиме отладки, камней подходящих не было.Но вот что точно известно, что если на Run нажать вы там стрелку не увидите, пока до точки останова не дойдете.Либо на паузу не нажмете.Prosperous писал(а):, кстати, он даже без выставления точек останова по шагам идет, а не тупо выполняет программу, как писали выше
В поисках истины человек развивается.
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Мелкие вопросы по МК и ПЛИС.
Также в СиЛабовском отладчике.vitalik_1984 писал(а):Кто его знает как там в железном стимуляторе выглядит я еще не запускал своего дракона в режиме отладки, камней подходящих не было.Но вот что точно известно, что если на Run нажать вы там стрелку не увидите, пока до точки останова не дойдете.Либо на паузу не нажмете.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Re: Мелкие вопросы по МК и ПЛИС.
Спасибо, Леонид Иванович, SmarTrunk!!
Действительно, наверное USART'ом лучше сделать. Хотя платы находятся в корпусе под 19'' стойку (соединены между собой шлейфами) - сложно оценить близко это или нет, да и помехи... Просто настораживает что центральный контроллер Mega32 будет всё время опрос производить своих подчиненных Meg8 на предмет наличия изменения состояния линий (к этим Мегам подключены 2-а расширитля портов PCF8575 - итого на каждой плате 32 входа).
P.S. Строчц быстро, надо успеть на обеде еще миску молока съесть....
Действительно, наверное USART'ом лучше сделать. Хотя платы находятся в корпусе под 19'' стойку (соединены между собой шлейфами) - сложно оценить близко это или нет, да и помехи... Просто настораживает что центральный контроллер Mega32 будет всё время опрос производить своих подчиненных Meg8 на предмет наличия изменения состояния линий (к этим Мегам подключены 2-а расширитля портов PCF8575 - итого на каждой плате 32 входа).
P.S. Строчц быстро, надо успеть на обеде еще миску молока съесть....
- Леонид Иванович
- Друг Кота
- Сообщения: 4779
- Зарегистрирован: Сб апр 02, 2011 12:40:46
- Откуда: Минск
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
У меня была похожая задача, в подчиненных процессорах был организован буфер событий. Вообще, нужно подробнее знать задачу (частоту поступления событий, требуемое время реакции). Можно еще организовать общую линию INT, куда подключить выходы с открытым коллектором от всех контроллеров. Этот сигнал будет говорить о том, что нужно опросить контроллеры, что-то поменялось.Димаn писал(а):Просто настораживает что центральный контроллер Mega32 будет всё время опрос производить своих подчиненных Meg8 на предмет наличия изменения состояния линий
Если платы соединены шлейфами, я бы все-таки использовал драйверы RS-485. Это ненамного дороже обычных TTL-буферов с тремя состояниями, зато помехозащищенность отличная и надежность в плане выхода из строя при перекоммутации разъемов.
Re: Мелкие вопросы по МК и ПЛИС.
В дополнение и развитие сказанного Л.И. ( пока ходил котов накормить, он меня опередил
) .
Линию INT я бы задействовал так. Исходное состоянеие - все на приеме. Периодически раз в несколько мс ( мкс в зав. от времени ответа ) ведущий посылает стартовый импульс и переходит на прием. Если кто-то из ведомых имеет что сообщить, он в отведенное ему время посылает ответный импульс. По длительности задержки ответа определяется номер ведомого, желающего сказать.
485-й, если сеть идет не в пределах предприятия, а внутри одной стойки - по-моему, избыточно. У меня банальная токовая петля работала внутри помещения без вопросов.
Конечно, все зависит от конкретного задания.
Линию INT я бы задействовал так. Исходное состоянеие - все на приеме. Периодически раз в несколько мс ( мкс в зав. от времени ответа ) ведущий посылает стартовый импульс и переходит на прием. Если кто-то из ведомых имеет что сообщить, он в отведенное ему время посылает ответный импульс. По длительности задержки ответа определяется номер ведомого, желающего сказать.
485-й, если сеть идет не в пределах предприятия, а внутри одной стойки - по-моему, избыточно. У меня банальная токовая петля работала внутри помещения без вопросов.
Конечно, все зависит от конкретного задания.
Re: Мелкие вопросы по МК и ПЛИС.
Похоже, у меня похожая задача! А вообще делаю что то вроде сигнализации для дежурной смены. Например пропадание канала связи или сбой аппаратуры отследить на компьютере. Очевидно, что эти события не часты и носят случайный характер, ну а время реакции наверное должно составлять несколько секунд, что для временных показателей микроконтроллеров даже вполне по силам. Входные сигналы - банально земелька станционная (делаю через оптопару развязку).Леонид Иванович писал(а): У меня была похожая задача, в подчиненных процессорах был организован буфер событий...
Насчет 485.... Гмм.... Может не надо если в одном корпусе всё?!
Re: Мелкие вопросы по МК и ПЛИС.
Спасибо, Jack_A!
Я вот тоже насчет INT подумал что хорошая идея! Не надо центральный контроллер "гонять" по напрасну по кругу. А вообще в микросхеме-расширителе портов PCF8575 уже есть выход INT - как токо на входе портов что то меняется - он выдает 0. Токо выход этой микросхемы - I2C.
Я вот тоже насчет INT подумал что хорошая идея! Не надо центральный контроллер "гонять" по напрасну по кругу. А вообще в микросхеме-расширителе портов PCF8575 уже есть выход INT - как токо на входе портов что то меняется - он выдает 0. Токо выход этой микросхемы - I2C.
- avreal
- Опытный кот
- Сообщения: 842
- Зарегистрирован: Чт дек 31, 2009 19:27:45
- Откуда: Бровари, Україна
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Внутри помещения (метра четыре UTP и шлейфов) у меня работает I2C. ATmega328 опрашивает как раз десяток ATmega48.Jack_A писал(а): 485-й, если сеть идет не в пределах предприятия, а внутри одной стойки - по-моему, избыточно. У меня банальная токовая петля работала внутри помещения без вопросов.
Конечно, все зависит от конкретного задания.
На 400 кГц и на семи метрах устойчиво работало день, но потом от греха подальше опустил на 100 кГц, так как и 50 достаточно.
Обстановка в общем спокойная, рядом симисторами включаются несколько вентиляторов разного размера и клапанов (CO2 и всякие гадости в установку пускают).
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
Re: Мелкие вопросы по МК и ПЛИС.
Пока пил кофий, идея конкретизировалась. INT для ведущего пассивный, активным его делает запросивший ведомый. И не надо через расширитель портов - прямо на самом МК разве свободного входа не осталось ? Получив запрос, ведущий по UART (SPI) посылает широковещательный запрос : "Кто меня звал ?" . Для ведомых в зависимости от его номера выделяется свой тайм-слот, поэтому если поговорить захотят одновременно несколько, сообщение каждого не будет иметь коллизий с остальными. А уж разобравшись, кто там возникает, уже обычным адресным сообщением ведущий : " N-й, ну че там у тебя ? " 
Re: Мелкие вопросы по МК и ПЛИС.
Совершенно верно!Jack_A писал(а): INT для ведущего пассивный, активным его делает запросивший ведомый.
У меня задача - примерно 300 линий контролировать на наличие земельки станциооной. Без расширителей портов никак...Jack_A писал(а): И не надо через расширитель портов - прямо на самом МК разве свободного входа не осталось ?
Разве так можно сделать??? Надо мне понюхать даташит....Jack_A писал(а): Получив запрос, ведущий по UART (SPI) посылает широковещательный запрос : "Кто меня звал ?" .
Re: Мелкие вопросы по МК и ПЛИС.
Отправил в ЛС.
- avreal
- Опытный кот
- Сообщения: 842
- Зарегистрирован: Чт дек 31, 2009 19:27:45
- Откуда: Бровари, Україна
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
А я вот никак не соберусь («работает — не трогай!») переписать у себя I2C всё начисто на мультимастер. Вот у кого что возникло — посылает по I2C на адрес хоста (ATmega328).Jack_A писал(а):Получив запрос, ведущий по UART (SPI) посылает широковещательный запрос : "Кто меня звал ?"
Если возникло «почти одновремённо», то арбитраж разрулит и просто сообщение от второго немного задержится. С учётом нечастости во времени таких вещей шина только разгрузится. И без прерываний ненужный поллинг уберётся, точнее, будет перывание по приходу чего-то на I2C (в пакете — обратный адрес пославшего).
Если хосту что-то конкретное захотелось записать в устройство — посылает запись.
Если что-то нужно прочитать (а оно может не сразу быть готово! сейчас с одним мастером и поллингом приходится записать команду, после чего читать до получения результата, лишняя работа на шине), то хост просто шлёт в устройство «дай мне вон то», когда оно будет готово, устройство запишет в хост ответ (со своим адресом в пакете для разбора).
Т.е. операция чтения из устройства распадается на две операции записи из хоста в устройство и и з устройства в хост, между ними шина свободна.
Это всё потребует немного больше ОЗУ в хосте (есть лишнее, так что всё нормально), но упростит общую логику.
Но, как уже сказал, «работает — не трогай!»
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
-
mr.boroda
- Встал на лапы
- Сообщения: 124
- Зарегистрирован: Вт июл 10, 2012 00:13:27
- Откуда: Белгородская обл.
Re: Мелкие вопросы по МК и ПЛИС.
как замерять импульсный ток и напряжение на тиристорном автомобильной зу. Если использовать просто делитель напряжения, то будет что попало показывать, как отфильтровать? Конденсатор?
- Леонид Иванович
- Друг Кота
- Сообщения: 4779
- Зарегистрирован: Сб апр 02, 2011 12:40:46
- Откуда: Минск
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Я тоже делал сигнализацию, контролирующую состояние спец. аппаратуры. Центральный процессор регулярно опрашивал всех подчиненных, потому что кроме чтения событий нужно было мониторить наличие и исправность подчиненных.Димаn писал(а):Похоже, у меня похожая задача! А вообще делаю что то вроде сигнализации для дежурной смены.


