Твою махарайку к ПЛК ОВЕН без специального переходного устройства (адаптера) подключить нельзя, вот и весь сказ. Никто этот адаптер за спасибо делать не будет. Ты прослезишься, когда узнаешь цену вопроса.
Вид для печати
Мне кажется, что уважаемый коллега capzap здесь ошибается. Синхронность SPI означает, что данные сопровождаются своим клоком. Частота этого клока может быть любой (условно). Поэтому ПЛК, если именно он передает данные, генерирует клок с такой скоростью, с которой у него получается. И он же сопровождает этот клок своим MOSI. Так что вполне можно дергать частоту SCLK.
Иное дело, что я не знаю, может ли ПЛК хоть приблизительно на частоте 20 кГц сгенерить все это. Не пробовал. Но сильно удивлен был бы, если бы нельзя было. Какой-то мелкоскопический атмел работает с софтовой реализацией подобных протоколов (и даже асинхронных!) на своей тактовой 8-16 МГц, а тут такая махина на 180 МГц не может...
Речь, конечно же, идет о генерации посылки в пределах одного цикла работы МК.
Если автору темы это уже не интересно, ну, что поделаешь. Но я бы попробовал. Генерить SPI - плевое дело.
не забывайте, что существует некое второе устройство и подстраиваться необходимо под его характеристики тактовой частоты.
На аппаратном уровне я не отрицаю что плк может иметь интерфейс поддерживающий подобный вид соединения но в овенах этого нет, а всё остальное извините, хоть в пределах цикла, хоть каждый цикл, это невозможно.
Я предлагаю таки остановиться на устройстве c spi. Может есть ему замена с стандартными интерфейсами.
Да нет же, коллега! Ничегошеньки подобного. Слейв должен покорно принимать то, что ему скармливают. Иначе он не Слейв, а Бунтарь - и место ему на галерах :)
Пойду дальше. Если тот слейв, что есть у автора темы, таки правильный слейв, то 19200, о которых автор говорит - вообще отфонарная цифра. Можно рассмотреть, что будет реально в системе, если ПЛК и слейв таки будут работать по SPI, но с частотой, скажем, 2 кГц. Повлияет ли это на характеристики системы. И тогда уже вообще можно не волноваться за скорость. Поставить преобразование уровня - и все.
Я бы так и сделал.
А предлагать автору все переиначить - ну, да, это русский же форум :)
Помоему это Вы образно говоря, предлагаете из сала варенье делать. Это протокол передачи данных между микросхемами, здесь мы рассматриваем несколько иные устройства, программно можно реализовать все что угодно, но на практике это может и не работать
За цикл Вы не сможете передать на выход несколько импульсов, потому что один цикл - одно состояние выхода, если один импульс за цикл, Вы не можете контролировать сколько времени продлится истинное время цикла между минимальной и максимальной границей, соответственно оконечное устройство на другой стороне проводов, однозначно будет принимать ложные срабатывания.
Да, насчет генерации в пределах цикла - тут я погорячился. Неправ.
Но. Но я пытаюсь показать автору, что есть решение. Уж там пусть он решает, кого послушать. Понимаешь? Поэтому быстренько беру свои слова обратновзад и формулирую более корректно:
Итак, если реальный объем передаваемых данных и частота этого действия позволяют работать с низкими частотами SPI, то ПЛК можно заставить генерить такой сигнал (в функции Мастера). Учитывая, что состояние выходов ПЛК изменяетсмя не чаще раза в один его рабочий цикл, реальная частота будет... ну, сотни герц (я не знаю, чем еще загружен ПЛК у автора). Устраивает это - вперед и с песней. Нет - ну, значит нет.
Kassik , а почему вы не хотите связать плк с микроконтроллером по UART? UART очень легко преобразовать в RS-232 или RS-485. В любом микроконтроллере есть аппаратный UART, а во многих и по 2 аппаратных UAR-та, к тому-же, SPI 50 см не тянет, нужно не более 30 см. Если Вы немного программер на С, то это для Вас будет не сложно.
"это специальное переходное устройство" всего лишь МК и переходник RS232-TTL к нему, заказал несколько комплектов
IVM пожалуйста не плачь и не слезись.
согласен, программу уже написал, жду ардуиновские платы и переходники в уровень RS232
Именно так и хочу, например, у ATmega2560 более одного аппаратного UART-а, в том числе заказано несколько штук готовых плат с этими МК.
Не сложно, но после AVR-studio ардуиновская среда разработки выглядит аскетично и язык сокращенный как ANSI C, но работать можно.