kpiter 0 July 2, 2007 Posted July 2, 2007 · Report post Здравствуйте! На одной шине клока - spi_clk, данных к spi устройству - spi_sdi и данные с spi устройства - spi_sdo. Всего 3 утройства АЦП, и два ЦАПа (в одном корпусе с 4мя аналоговыми выходами). Как правильно организовать последовательную работу с этими 3мя устройствами? Я вижу эту огранизацию так: заводится счетчик. Первые, например, 32 такта работает АЦП, проверяем если счетчик достиг 33 выключаем chip select АЦП, включаем chip select ЦАП, 24 такта работает ЦАП, проверяем если счетчик достиг 57 выключаем chip select ЦАП, проверяем если счетчик достиг 58 включаем chip select ЦАП, 24 такта работает ЦАП, проверяем если счетчик достиг 82 обнуляем счетчик и все начинаеться сначала. Так правильно арбитрировать 3 устройства таким способом или нет? %) Quote Share this post Link to post Share on other sites More sharing options...
LeonY 0 July 2, 2007 Posted July 2, 2007 · Report post Здравствуйте! На одной шине клока - spi_clk, данных к spi устройству - spi_sdi и данные с spi устройства - spi_sdo. Всего 3 утройства АЦП, и два ЦАПа (в одном корпусе с 4мя аналоговыми выходами). Как правильно организовать последовательную работу с этими 3мя устройствами? Я вижу эту огранизацию так: заводится счетчик. Первые, например, 32 такта работает АЦП, проверяем если счетчик достиг 33 выключаем chip select АЦП, включаем chip select ЦАП, 24 такта работает ЦАП, проверяем если счетчик достиг 57 выключаем chip select ЦАП, проверяем если счетчик достиг 58 включаем chip select ЦАП, 24 такта работает ЦАП, проверяем если счетчик достиг 82 обнуляем счетчик и все начинаеться сначала. Так правильно арбитрировать 3 устройства таким способом или нет? %) Вроде все правильно, но существует еще несколько вариантов. Прежде чем что-то предлагать Вам, хотелось бы выяснить некоторые детали: - всегда ли Вам нужна описанная жесткая последовательность обращений к устройствам и никакая другая? Ваш способ не позволит менять ее без значительных изменеий в проекте - все это (то, что Вы описали) бежит под управлением процессора или State machine? Если второе, то подразумевается жесткая последовательность обращений - SPI Master контроллер Вашей собственной разработки или что-то готовое. Если "что-то готовое", то оно накладывает определенные ограничения, с которыми приходится считаться. Ни под что готовое (то, что знаю я) Ваше описание не слишком подходит. Quote Share this post Link to post Share on other sites More sharing options...
kpiter 0 July 3, 2007 Posted July 3, 2007 · Report post жесткая последовательность обращений к устройствам и никакая другая? Да, нужна жесткая и БЫСТРАЯ последовательность обращения к устройствам. все это (то, что Вы описали) бежит под управлением процессора или State machine? State machine, с помощью case проверяется значение счетчика и соответственно включаются по chip select АЦП или ЦАП. На процессоре, мне кажеться, было бы проще и управлять устройствами и обрабатывать данные с АЦП, но т.к. нужна быстрая работа поэтому считаю что жесткая логика лучше... SPI Master контроллер Вашей собственной разработки или что-то готовое. Если "что-то готовое", то оно накладывает определенные ограничения, с которыми приходится считаться. Ни под что готовое (то, что знаю я) Ваше описание не слишком подходит. ПЛИС, АЦП и ЦАП стоят на Spartan-3E Starter Kit Board. Простите за незнание, а SPI Master контроллер это что? Я думал, что управление по SPI ведется в самом простом случае по 3 проводам: клок, chip select и вывод или ввод данных. Т.е. все эти три проводника подключены не посредственно к ПЛИС без использования дополнительного контроллера. А сигналы управления, клок и chip select генерируются дизайном. Quote Share this post Link to post Share on other sites More sharing options...
Edit2007 3 July 12, 2007 Posted July 12, 2007 · Report post SPI MASTER - это устройство которое генерирует тактовую частоту, все остальные ведомые Quote Share this post Link to post Share on other sites More sharing options...