реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Быстрый обмен между Atmega ( SPI ? )
Gegham
сообщение Jun 6 2009, 12:11
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 16-04-09
Пользователь №: 47 790



Всем Привет.
Недавно стал работать с микроконтроллерами smile.gif

Задача такова.

Имеются два Atmega16 (для примера).

Нужно организовать быстрый обмен между ними.

Размер пакетов максимум 30 byte. с частотой 20 микросекунд.

Как я понимаю самый быстри обмен будет через SPI ?

Если Spi работает с частатой 4000 kHz , то через сколко количество тактов удастя передать 1 Byte.

Могу поменять Мк на более быстрый если надо.


Спасибо.
Go to the top of the page
 
+Quote Post
OlegH
сообщение Jun 7 2009, 05:17
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 186
Регистрация: 14-01-06
Из: Украина, г.Харьков
Пользователь №: 13 168



ну так один байт будет передаваться минимум 2 микросекунды. а 30 байт соответственно - минимум 60 микросекунд. и сделать быстрее на данной архитектуре нереально (частота SPI-slave максимум - CLK/4, то есть у вас выбрана уже максимально возможная для CLK=16MHz).
у меня в нескольких проектах используется обмен между основной mega16 или mega128 и подчиненной tiny2313 или mega162 по SPI. мороки программной с этим прилично... отладка была сложной.... подчиненная полностью написана на ассемблере чтоб успевала что-то сделать с приходящими байтиками и еще на фоне выполняла свою задачу (2 UART с буферизацией на tiny2313 и 4 UART на mega162)...
Go to the top of the page
 
+Quote Post
Gegham
сообщение Jun 7 2009, 05:49
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 16-04-09
Пользователь №: 47 790



Цитата(Олег Хохлов @ Jun 7 2009, 08:17) *
ну так один байт будет передаваться минимум 2 микросекунды. а 30 байт соответственно - минимум 60 микросекунд. и сделать быстрее на данной архитектуре нереально (частота SPI-slave максимум - CLK/4, то есть у вас выбрана уже максимально возможная для CLK=16MHz).


Понятно . спасибо большое!
Причина редактирования: Излишнее цитирование.
Go to the top of the page
 
+Quote Post
head_sk
сообщение Jul 6 2009, 06:04
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 80
Регистрация: 3-07-09
Пользователь №: 50 897



Цитата(Олег Хохлов @ Jun 7 2009, 08:17) *
у меня в нескольких проектах используется обмен между основной mega16 или mega128 и подчиненной tiny2313 или mega162 по SPI. мороки программной с этим прилично... отладка была сложной.... подчиненная полностью написана на ассемблере чтоб успевала что-то сделать с приходящими байтиками и еще на фоне выполняла свою задачу (2 UART с буферизацией на tiny2313 и 4 UART на mega162)...

У меня получалось подчиненную и на С написать, но мороки тоже было нереально много. Малейшая задержка, и слейв не успевает среагировать на пришедший байт, данные потерялись. Положительный момент в том, что пока писал данный алгоритм на С, пришлось очень хорошо разобраться в GCC
Go to the top of the page
 
+Quote Post
Палыч
сообщение Jul 6 2009, 06:18
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(Gegham @ Jun 6 2009, 15:11) *
Размер пакетов максимум 30 byte. с частотой 20 микросекунд.
Наверное, из аппаратных средств - только USART на скорости 2М.
Go to the top of the page
 
+Quote Post
head_sk
сообщение Jul 6 2009, 06:22
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 80
Регистрация: 3-07-09
Пользователь №: 50 897



Можно попробовать параллельный 8-ми битный, но тогда точно все на асме писать придеться.
Go to the top of the page
 
+Quote Post
Палыч
сообщение Jul 6 2009, 06:26
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(head_sk @ Jul 6 2009, 09:22) *
тогда точно все на асме писать придеться.
Почему же обязательно на ассемблере? Если расстояние небольшое - можно и с помощью параллельного порта + пара служебных линий/прерываний
Go to the top of the page
 
+Quote Post
adc
сообщение Jul 6 2009, 06:26
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 409
Регистрация: 29-10-07
Пользователь №: 31 836



Цитата
Можно попробовать параллельный 8-ми битный, но тогда точно все на асме писать придеться.

Почему сразу на асме? Положить в порт байт и дернуть ногой МК можно и на С.


--------------------
Умный программист пишет тупым кодом гениальные вещи, а не наоборот...
Go to the top of the page
 
+Quote Post
head_sk
сообщение Jul 6 2009, 06:40
Сообщение #9


Частый гость
**

Группа: Участник
Сообщений: 80
Регистрация: 3-07-09
Пользователь №: 50 897



Можно и на С конечно, просто хотел скрыто способствовать тому, чтобы человек выучил ассемблер. Для того что бы покорить контроллер, сперва нужно покорить его ассемблер, раньше я этого не понимал, сейчас считаю, это истиной. smile.gif smile.gif
Go to the top of the page
 
+Quote Post
adc
сообщение Jul 6 2009, 06:46
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 409
Регистрация: 29-10-07
Пользователь №: 31 836



Цитата(head_sk @ Jul 6 2009, 10:40) *
Можно и на С конечно, просто хотел скрыто способствовать тому, чтобы человек выучил ассемблер. Для того что бы покорить контроллер, сперва нужно покорить его ассемблер, раньше я этого не понимал, сейчас считаю, это истиной. smile.gif smile.gif

bb-offtopic.gif
Эх, зачем изучать ассемблер, если контроллеры меняются через каждый год? Портирование проектов на С в разы быстрее чем на асме.
Ассемблер скоро отомрет как вид)))) Им будут пользоваться только разработчики компиляторов. smile3046.gif


--------------------
Умный программист пишет тупым кодом гениальные вещи, а не наоборот...
Go to the top of the page
 
+Quote Post
XVR
сообщение Jul 6 2009, 08:34
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(adc @ Jul 6 2009, 10:46) *
bb-offtopic.gif
Эх, зачем изучать ассемблер, если контроллеры меняются через каждый год? Портирование проектов на С в разы быстрее чем на асме.
Ассемблер скоро отомрет как вид)))) Им будут пользоваться только разработчики компиляторов. smile3046.gif
Ой, что сейчас будет maniac.gif
Go to the top of the page
 
+Quote Post
adc
сообщение Jul 6 2009, 08:47
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 409
Регистрация: 29-10-07
Пользователь №: 31 836



Цитата(XVR @ Jul 6 2009, 12:34) *
Ой, что сейчас будет maniac.gif

biggrin.gif Думаете опять начнется битва религий? Думаю нет. Я сам ассемлерщик до мозга кости... :-) и знаю как непросто переползти с асма на С(в том смысле отдать часть своей разработки на откуп программистам компилятора). Но с другой стороны заметил за собой стремление писать на асме приближенно по структуре к С. Очень помогает)))


--------------------
Умный программист пишет тупым кодом гениальные вещи, а не наоборот...
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 23:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.01453 секунд с 7
ELECTRONIX ©2004-2016