Есть мк NEC в некотором промышленном устройстве, он передает данные последовательным интерфейсом (второй такой же мк их принимает). Используются линии 1)SCK -тактовая, 2)шина данных- содержит 8 бит. И 3)шина по лог.уровню которой определяется готовность мк к приему.
Используемые выводы имеют или функцию обычных портов или функцию последовательного интерфейса SerialIn, SerialOut, SCK. По даташиту максимальная частота предделителя для этого интерфейса fx/2^5 (32), при кварце 8мГц это 250кГц. (стоит 8мГц кварц)
Засада в том, что данные передаются с гораздо меньшей скоростью- около 2кГц/такт.
как так может быть? Хотел подставить вместо второго мк (мастера) свой- Мегу8 в режиме послед.передачи SPI, соответственно она и тактовать должна, так мега при кварце в 1Мгц на самом большом делителе все-равно намноооого быстее тактирует.
Можно через MAX232 поэксперементировать, подсоединить к порту компа, определить скорость передачи, и потом уже ставить контроллер, запрограммировать на определенную скорость передачи - и вперед!
определить скорость... если вы про USART, то там не через этот интерфейс. Просто последовательная передача.Скорость мне известна только так: 1байт за 7милисек. А аппаратно настроить SPI Меги8 не получается на такую скорость- не хватает делителя, очень уж скоростной режим получается.
Alexeus писал(а):
По даташиту максимальная частота предделителя для этого интерфейса fx/2^5 (32)
А помоему 128...?
Alexeus писал(а):
так мега при кварце в 1Мгц на самом большом делителе все-равно намноооого быстее тактирует.
Тактируй от часового При преддилителе 16 как раз получиться где-то 2 кГц. Или организуй "самодельный" SPI, частоту подберешь как раз с помощью циклов задержки.
Я чёго-то не совсем понял... Так что нужно сделать-то??? Если заставить МК работать на высоких оборотах при низкой частоте SPI, то единственный вариант ручником организовывать последовательную передачу. Другой вариант , если требуется процессорное время, добавить ещё один контроллер, которому приходят данные от первого, а тот отправляет их дальше на болле низкой скорости.
Что касается режима работы SPI мк NEC, то надо точно посмотреть по даташиту и загруженной в него проги, возможно там установлен делитель частоты, если он есть, или сам SPI организован ручным способом...
pirotehnick писал(а):Я чёго-то не совсем понял... Так что нужно сделать-то???
Хотелось бы что бы мк мега8 работал на высоких оборотах (8-14Мгц), а SPI тактовал импульсы 2кГц, но аппаратно это наверное невозможно (просто делителя не хватает)...
добавлять еще контроллер считаю лишним.
pirotehnick писал(а): Что касается режима работы SPI мк NEC, то надо точно посмотреть по даташиту и загруженной в него проги, возможно там установлен делитель частоты, если он есть, или сам SPI организован ручным способом...
Прибор промышленный, что там загружено неизвестно... но по даташиту его делителя так же не хватает для аппаратной реализации той частоты, на которой фактически работает его SPI. Возможно что эта частота тактуется другим МК, там блин в схеме наворочено, я еще до конца не разобрался...
Вот теперь понятно, либо програмно организовывать, либо пробовать тактовать извне. Но тратить мк только на тактовку не рационально.
вопрос тогда один: Может кто подскажет ссылки на работы с мк, где внешнее тактирование для интерфейса (не для самого мк) реализовано обычной логикой на микросхеме, типа к561ла7 и т.п.
Просто берёшь и по временным диаграммам организуешь алгоритм передачи и приёма байта. Можно по прерываниям, зедержки по таймеру или по вложенным циклам, вообщем по разному можно сделать...