Перейти к содержанию
    

ATMega128 - проблема с SPI Master

В новых мегах можно настроить USART как SPI Master, причем с буферизацией, и такой проблемы быть не должно. Когда-то я воевал с SPI, что-то отложилось про 18 тактов на все. Подробностей не помню, правда...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А какая частота строчной развёртки?

Стандартная. 15.625 КГц.

 

В новых мегах можно настроить USART как SPI Master, причем с буферизацией, и такой проблемы быть не должно. Когда-то я воевал с SPI, что-то отложилось про 18 тактов на все. Подробностей не помню, правда...

Новые меги ... Имеется ввиду ATMega128A- ... ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, и в младших (48/88/168). Если нужно что-то многоногое типа M128 - надо смотреть, я с такими дела не имел...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну, вот полмысли Вам уже высказали- UART - и это не только двойная буферизация , но и работа в сихронном режиме с помощью внешнего сигнала XCK.

Например с 15.625 КГц*8. Что во много меньше чем необходимо по DS

Fxck=Fosc/4
= 5Мгц

 

P/S Кстати , ради чистой проверки идеи , когда-то делал на нем генератор меандра, замечательно получается и с изменением частот меандра , правда чисто в асинхроном режиме. Это к тому, что "разрывов" в форме меанра нет

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не, USART не пойдёт. Там старт и стоп биты. Ещё хужее будет ... А другой пин-несовместимый процессор ставить - эт значит весь проект перелопатить, а он у меня уже в завершённой стадии. Простро я пытаюсь на этой же платформе сделать эмуляцию уже другой машины ...

Изменено пользователем Lisitsin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...делал на нем генератор меандра...
ИМХО - странная и бесполезная идея... Я, конечно, понимаю - бывают случаи, когда некоторых ресурсов (например, таймера) не хватает, но при этом есть неиспользованные ресурсы (например, USART) и логично их использовать так сказать - "нетрадиционно"... Но, в Вашем случае - использовать TxD для генерации меандра... Это, уж извините, - извращение и мазохизм. Ведь "рядом" есть вывод XCK от того же USART, на котором меандр и выводится (абсолютно без "разрывов" :biggrin: ), стоит только настроить USART в Master Synchronous Mode - и всё !

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Там старт и стоп биты. ...

Какие в синхронном режиме старт и стоп биты? Читаем хотя бы тут или напрягаем Гошу 2.1.3. Взаимодействие устройств в синхронном режиме

 

 

Это, уж извините, - извращение и мазохизм.
Целиком согласен . И никогда такое использовать не буду. Был чистый эксперимент

sbornikzadachsotwetami.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какие в синхронном режиме старт и стоп биты? Читаем хотя бы тут или напрягаем Гошу 2.1.3. Взаимодействие устройств в синхронном режиме
Не знаком с Гошей, и поэтому не знаю: где у него про это почитать...

В синхронном и асинхронном режимах USART Frame Format ничем не отличаются. Т.е. в обоих режимах будут присутствовать старт и стоп импульсы. В AVR эти режимы отличаются исключительно тем, что в синхронном режиме тактовую частоту USART у Master с Baund Rate Generatоr можно вывести "наружу" на ногу XCK, а у Slave этот сигнал можно использовать вместо сигнала от Baund Rate Generatоr. Полезность использования синхронного режима я вижу только в том, что при нестабильной тактовой частоте МК (например, при тактировании от RC-генератора) не будет проблем в обмене по последовательному интерфейсу из-за "неточностей" скоростей USART разных МК.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не знаком с Гошей, и поэтому не знаю: где у него про это почитать...

В синхронном и асинхронном режимах USART Frame Format ничем не отличаются. Т.е. в обоих режимах будут присутствовать старт и стоп импульсы. В AVR эти режимы отличаются исключительно тем, что в синхронном режиме тактовую частоту USART у Master с Baund Rate Generatоr можно вывести "наружу" на ногу XCK, а у Slave этот сигнал можно использовать вместо сигнала от Baund Rate Generatоr. Полезность использования синхронного режима я вижу только в том, что при нестабильной тактовой частоте МК (например, при тактировании от RC-генератора) не будет проблем в обмене по последовательному интерфейсу из-за "неточностей" скоростей USART разных МК.

Вот вот, а то я уже тоже испугаться уже хотел ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вот Вы меня по настоящему пугаете. Я уж воспользовался DS микрочип, у них как-то лучшее показаны диаграммы , но если шо, попрошу AVR прислать что нить поподробнее , чем в их даташит.

Ну и ответьте сами себе , на ..на в синхронном режиме , ещё и старт стор биты- чего ещё там нужно подсихронизировать?

 

 

P/S Гоша = Google

post-33339-1349627299_thumb.jpg

post-33339-1349627777_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

на ..на в синхронном режиме , ещё и старт стор биты- чего ещё там нужно подсихронизировать?
Ну, стоповый импульс в синхронном режиме - излишен, а, вот, стартовый - для того же, что и в асинхронном - начало передачи информации.

 

P.S. C ненужностью стопового - погорячился... Для синхронизации тактовых импульсов МК и USART.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да нет там ни старта ни стопа. Ну посмотрите внимательно диаграммы. Всё определяется фронтами и спадами импульсов сихро XCK и схемой сихронизации MC этих импульсов с внутренним передатчиком или приёмником USART. По фронту импульса мастер может принимать или прередавать данные , соответсвенно по спаду того же импульса передать или принять данные. Или наоборот. Зависит от установок.

Вы можете в этом режиме предать сколь угодно байтов без остановочно и без стартов и так же принять. Вся сихронизация определяется именно XCK

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Народ, я уже готов поверить в отсутствие старт/стоп бит в синхронном режиме, но проштудировав datasheet на ATMega128 ничего подобного не нашёл ... Ну будьте любезны, ткните меня носом ... Если это так, я просто возрадуюсь !!!

ЗЫ - а диаграммы эти вообще не оттуда )))

Изменено пользователем Lisitsin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вся сихронизация определяется именно XCK
Импульсы XCK следуют без "перерывов" (иначе Slave не сможет передавать информацию Master'у). Стартовый импульс нужен как сигнал "Далее идут данные"

 

Народ, я уже готов поверить в отсутствие старт/стоп бит в синхронном режиме...
Увы! Разачарую Вас... Я это исследовал в своё время: стартовый и стоповый импульсяы - присутствуют в любом режиме (иначе оно и работать не должно !). Если хотите реализовать формирование сигнала именно на последовательном устройстве AVR, то, имхо, единственный выход USART в режиме SPI.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...