Страница 1 из 1
Передача данных мк. Нужен совет.
Добавлено: Чт фев 12, 2009 14:21:27
Alexeus
Есть мк NEC в некотором промышленном устройстве, он передает данные последовательным интерфейсом (второй такой же мк их принимает). Используются линии 1)SCK -тактовая, 2)шина данных- содержит 8 бит. И 3)шина по лог.уровню которой определяется готовность мк к приему.
Используемые выводы имеют или функцию обычных портов или функцию последовательного интерфейса SerialIn, SerialOut, SCK. По даташиту максимальная частота предделителя для этого интерфейса fx/2^5 (32), при кварце 8мГц это 250кГц. (стоит 8мГц кварц)
Засада в том, что данные передаются с гораздо меньшей скоростью- около 2кГц/такт.
как так может быть? Хотел подставить вместо второго мк (мастера) свой- Мегу8 в режиме послед.передачи SPI, соответственно она и тактовать должна, так мега при кварце в 1Мгц на самом большом делителе все-равно намноооого быстее тактирует.
Добавлено: Чт фев 12, 2009 14:34:57
МитяРа
Вопрос-то в чём?
Используй не аппаратную, а программную реализацию протокола...
Добавлено: Чт фев 12, 2009 21:43:31
Lonleystranger
Можно через MAX232 поэксперементировать, подсоединить к порту компа, определить скорость передачи, и потом уже ставить контроллер, запрограммировать на определенную скорость передачи - и вперед!
Добавлено: Чт фев 12, 2009 22:22:05
Alexeus
определить скорость... если вы про USART, то там не через этот интерфейс. Просто последовательная передача.Скорость мне известна только так: 1байт за 7милисек. А аппаратно настроить SPI Меги8 не получается на такую скорость- не хватает делителя, очень уж скоростной режим получается.
Re: Передача данных мк. Нужен совет.
Добавлено: Чт фев 12, 2009 23:01:52
pirotehnick
Alexeus писал(а):
По даташиту максимальная частота предделителя для этого интерфейса fx/2^5 (32)
А помоему 128...?
Alexeus писал(а):
так мега при кварце в 1Мгц на самом большом делителе все-равно намноооого быстее тактирует.
Тактируй от часового

При преддилителе 16 как раз получиться где-то 2 кГц. Или организуй "самодельный" SPI, частоту подберешь как раз с помощью циклов задержки.
Добавлено: Пт фев 13, 2009 01:08:10
Alexeus
я в курсе, что на меге8 128 макс. делитель SPI, речь шла о мк НЕК и 2^5 это к нему относится и на борту у него кварц 8мГц прицеплен.
Если от часового тактовать, боюсь только на это и хватит мк
может генератор отдельно на шину посадить... на К561ЛА7 можно слабать.
Добавлено: Пт фев 13, 2009 01:48:36
pirotehnick
Я чёго-то не совсем понял... Так что нужно сделать-то??? Если заставить МК работать на высоких оборотах при низкой частоте SPI, то единственный вариант ручником организовывать последовательную передачу. Другой вариант , если требуется процессорное время, добавить ещё один контроллер, которому приходят данные от первого, а тот отправляет их дальше на болле низкой скорости.
Что касается режима работы SPI мк NEC, то надо точно посмотреть по даташиту и загруженной в него проги, возможно там установлен делитель частоты, если он есть, или сам SPI организован ручным способом...
Добавлено: Пт фев 13, 2009 10:53:51
Alexeus
pirotehnick писал(а):Я чёго-то не совсем понял... Так что нужно сделать-то???
Хотелось бы что бы мк мега8 работал на высоких оборотах (8-14Мгц), а SPI тактовал импульсы 2кГц, но аппаратно это наверное невозможно (просто делителя не хватает)...
добавлять еще контроллер считаю лишним.
pirotehnick писал(а): Что касается режима работы SPI мк NEC, то надо точно посмотреть по даташиту и загруженной в него проги, возможно там установлен делитель частоты, если он есть, или сам SPI организован ручным способом...
Прибор промышленный, что там загружено неизвестно... но по даташиту его делителя так же не хватает для аппаратной реализации той частоты, на которой фактически работает его SPI. Возможно что эта частота тактуется другим МК, там блин в схеме наворочено, я еще до конца не разобрался...
Вот теперь понятно, либо програмно организовывать, либо пробовать тактовать извне. Но тратить мк только на тактовку не рационально.
вопрос тогда один: Может кто подскажет ссылки на работы с мк, где внешнее тактирование для интерфейса (не для самого мк) реализовано обычной логикой на микросхеме, типа к561ла7 и т.п.
Добавлено: Пт фев 13, 2009 11:49:06
ARV
а в чем проблема сделать программный SPI? программно можно хоть раз в сутки тактировать...
Добавлено: Сб фев 14, 2009 18:28:37
Alexeus
ARV писал(а):а в чем проблема сделать программный SPI? программно можно хоть раз в сутки тактировать...
а как обычно это реализовывается? нужно прерывание по таймеру делать или как?
Добавлено: Вс фев 15, 2009 00:42:42
pirotehnick
Просто берёшь и по временным диаграммам организуешь алгоритм передачи и приёма байта. Можно по прерываниям, зедержки по таймеру или по вложенным циклам, вообщем по разному можно сделать...