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

 
 
> скорость SPI, что быстрее програмный или апаратный?
yarunt
сообщение Feb 19 2007, 11:10
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 215
Регистрация: 13-12-06
Из: fghgfh
Пользователь №: 23 476



Н ужен быстрый вывод байта на SPI. Вопрос к знающим какой быстрее апаратный или програмный? И еще вопрос как реализовать по апаратному spi 9 бит....возможно ли это?


--------------------
Нельзя впихнуть,невпихуемое?МОЙ БЛОГ
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
=GM=
сообщение Feb 19 2007, 19:42
Сообщение #2


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(yarunt @ Feb 19 2007, 08:10) *
Нужен быстрый вывод байта на SPI. Вопрос к знающим какой быстрее апаратный или програмный? И еще вопрос как реализовать по апаратному spi 9 бит....возможно ли это?

Ну раз SPI никак нельзя использовать для передачи 9 бит, попробуйте использовать USART в СИНХРОННОМ режиме для передачи 9 бит, он допускает работу до Fclk/2. Сам так не пробовал, но не вижу причин, которые могут помешать.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Feb 19 2007, 19:58
Сообщение #3


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(=GM= @ Feb 19 2007, 19:42) *
Цитата(yarunt @ Feb 19 2007, 08:10) *

Нужен быстрый вывод байта на SPI. Вопрос к знающим какой быстрее апаратный или програмный? И еще вопрос как реализовать по апаратному spi 9 бит....возможно ли это?

Ну раз SPI никак нельзя использовать для передачи 9 бит, попробуйте использовать USART в СИНХРОННОМ режиме для передачи 9 бит, он допускает работу до Fclk/2. Сам так не пробовал, но не вижу причин, которые могут помешать.

Вот только синхронный режим USART у AVR неполноценный. Обычно под "синхронным" понимается использование байтов синхронизации и указанное число битов данных, без старт- и стоп- битов, которые как раз свойственны асинхронной передаче. И вся "синхронность" - только в наличии дополнительного сигнала синхронизации и большей скорости. Как следствие - первый бит всегда будет нулевым, последний - "единичным". И использовать это для 9-битной передачи по SPI при всем желании невозможно физически...
Go to the top of the page
 
+Quote Post
=GM=
сообщение Feb 19 2007, 20:24
Сообщение #4


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(rx3apf @ Feb 19 2007, 16:58) *
Цитата(=GM= @ Feb 19 2007, 19:42) *

Цитата(yarunt @ Feb 19 2007, 08:10) *

Нужен быстрый вывод байта на SPI. Вопрос к знающим какой быстрее апаратный или програмный? И еще вопрос как реализовать по апаратному spi 9 бит....возможно ли это?

Ну раз SPI никак нельзя использовать для передачи 9 бит, попробуйте использовать USART в СИНХРОННОМ режиме для передачи 9 бит, он допускает работу до Fclk/2. Сам так не пробовал, но не вижу причин, которые могут помешать.

Вот только синхронный режим USART у AVR неполноценный. Обычно под "синхронным" понимается использование байтов синхронизации и указанное число битов данных, без старт- и стоп- битов, которые как раз свойственны асинхронной передаче. И вся "синхронность" - только в наличии дополнительного сигнала синхронизации и большей скорости. Как следствие - первый бит всегда будет нулевым, последний - "единичным". И использовать это для 9-битной передачи по SPI при всем желании невозможно физически...

Это что ж выходит, нельзя передать инфу без искажений от ведущего МК к ведомому в синхронном режиме? Что-то меня гложут сомнения(:-). Зачем тогда такой режим нужен?
Цитата(rx3apf @ Feb 19 2007, 16:58) *
Обычно под "синхронным" понимается использование байтов синхронизации и указанное число битов данных, без старт- и стоп- битов, которые как раз свойственны асинхронной передаче.

Что такое "байтов синхронизации"? Как-то сложно всё(:-).


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Feb 19 2007, 20:36
Сообщение #5


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(=GM= @ Feb 19 2007, 20:24) *
Цитата(rx3apf @ Feb 19 2007, 16:58) *

Цитата(=GM= @ Feb 19 2007, 19:42) *

Цитата(yarunt @ Feb 19 2007, 08:10) *

Нужен быстрый вывод байта на SPI. Вопрос к знающим какой быстрее апаратный или програмный? И еще вопрос как реализовать по апаратному spi 9 бит....возможно ли это?

Ну раз SPI никак нельзя использовать для передачи 9 бит, попробуйте использовать USART в СИНХРОННОМ режиме для передачи 9 бит, он допускает работу до Fclk/2. Сам так не пробовал, но не вижу причин, которые могут помешать.

Вот только синхронный режим USART у AVR неполноценный. Обычно под "синхронным" понимается использование байтов синхронизации и указанное число битов данных, без старт- и стоп- битов, которые как раз свойственны асинхронной передаче. И вся "синхронность" - только в наличии дополнительного сигнала синхронизации и большей скорости. Как следствие - первый бит всегда будет нулевым, последний - "единичным". И использовать это для 9-битной передачи по SPI при всем желании невозможно физически...

Это что ж выходит, нельзя передать инфу без искажений от ведущего МК к ведомому в синхронном режиме? Что-то меня гложут сомнения(:-). Зачем тогда такой режим нужен?

_Информацию_ можно. Но структура информации будет такой же, как и в асинхронном режиме - т.е. старт-бит, данные, [паритет], стоп.


Цитата(rx3apf @ Feb 19 2007, 16:58) *
Обычно под "синхронным" понимается использование байтов синхронизации и указанное число битов данных, без старт- и стоп- битов, которые как раз свойственны асинхронной передаче.

Цитата(=GM= @ Feb 19 2007, 20:24) *
Что такое "байтов синхронизации"? Как-то сложно всё(:-).

Это (байты или биты синхронизации) используется в синхронных протоколах, когда нет возможности определить начало посылки иным способом. Типично - в беспроводных системах передачи данных. Идет шум или поток данных, некоторая последовательность проверяется коррелятором, при превышении порога (или точном совпадении - зависит от назначения) запускается приемник. Еще синхронные трансиверы типично умеют сами считать CRC16, поскольку скорости большие, и вычислять CRC программно - очень накладно.
Go to the top of the page
 
+Quote Post
=GM=
сообщение Feb 20 2007, 02:29
Сообщение #6


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(rx3apf @ Feb 19 2007, 17:36) *
Цитата(=GM= @ Feb 19 2007, 20:24) *

Это что ж выходит, нельзя передать инфу без искажений от ведущего МК к ведомому в синхронном режиме? Что-то меня гложут сомнения(:-). Зачем тогда такой режим нужен?

_Информацию_ можно. Но структура информации будет такой же, как и в асинхронном режиме - т.е. старт-бит, данные, [паритет], стоп.

Ну так! Человек вроде и спрашивал
Цитата
Нужен быстрый вывод байта на SPI. Вопрос к знающим какой быстрее апаратный или програмный? И еще вопрос как реализовать по апаратному spi 9 бит....возможно ли это?

Вот он вытолкнет 9 бит, а на другой стороне примет, какое ему дело, что будет дополнительно передаваться старт и стоп биты? А вы говорите невозможно...
Цитата(rx3apf @ Feb 19 2007, 17:36) *
Цитата(=GM= @ Feb 19 2007, 20:24) *

Что такое "байтов синхронизации"? Как-то сложно всё(:-).

Это (байты или биты синхронизации) используется в синхронных протоколах, когда нет возможности определить начало посылки иным способом. Типично - в беспроводных системах передачи данных. Идет шум или поток данных, некоторая последовательность проверяется коррелятором, при превышении порога (или точном совпадении - зависит от назначения) запускается приемник. Еще синхронные трансиверы типично умеют сами считать CRC16, поскольку скорости большие, и вычислять CRC программно - очень накладно.

Не, в беспроводных эт понятно, там нет провода синхронизации, приходится её вырабатывать на приёмном конце, да это еще не все, передаётся несущая, чтобы подстроить местный гетеродин, потом преамбула, чтобы подстроить тактовую частоту, потом передается кодовое слово, или фазовый пуск, или по-вашему, байты синхронизации, чтобы указать начало инфобит (вот у меня один раз было изделие, так там был фазовый пуск длиной 288 бит, ей-богу не вру!).

Но при чём здесь беспроводные системы? Автору надо передать 9 бит и 9 импульсов синхронизации.
Предлагается решение 11 бит (добавляется старт и стоп) и 11 импульсов, скорость 8 мбод при тактовой 16 МГц. И все довольны, особенно автор топика. Почему нельзя использовать?


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Feb 20 2007, 03:31
Сообщение #7


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(=GM= @ Feb 20 2007, 02:29) *
Но при чём здесь беспроводные системы? Автору надо передать 9 бит и 9 импульсов синхронизации.
Предлагается решение 11 бит (добавляется старт и стоп) и 11 импульсов, скорость 8 мбод при тактовой 16 МГц. И все довольны, особенно автор топика. Почему нельзя использовать?

Автору надо передать 9 битов данных. А будет передано 11, причем два из них с жестко заданными значениями. Для чего, кому и куда надо передать данные - в вопросе не было. Типично, обмен по SPI таких извращений не позволяет. Хотя и значения, не кратные 8 битам, тоже экзотика. Если получатель допускает такой формат посылки - да, можно так и сделать. А если нет - облом.
Go to the top of the page
 
+Quote Post
mse
сообщение Feb 20 2007, 10:14
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 709
Регистрация: 3-05-05
Пользователь №: 4 693



Цитата(rx3apf @ Feb 20 2007, 03:31) *
Автору надо передать 9 битов данных. А будет передано 11, причем два из них с жестко заданными значениями. Для чего, кому и куда надо передать данные - в вопросе не было. Типично, обмен по SPI таких извращений не позволяет. Хотя и значения, не кратные 8 битам, тоже экзотика. Если получатель допускает такой формат посылки - да, можно так и сделать. А если нет - облом.

Как правило, получатель именно требует такой формат ;О) ЦАПы,АЦПы... Есть вариант, некратные 8 биты совать программно, а 8-бит аппаратно. Или формировать посылку так, чтобы передавать кратно 8 битам, а остаток ненужных бит впустую вдвигался в приёмник и там погибал. Безвестно. Делал и так, и так.
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Feb 20 2007, 12:18
Сообщение #9


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(mse @ Feb 20 2007, 10:14) *
Цитата(rx3apf @ Feb 20 2007, 03:31) *

Автору надо передать 9 битов данных. А будет передано 11, причем два из них с жестко заданными значениями. Для чего, кому и куда надо передать данные - в вопросе не было. Типично, обмен по SPI таких извращений не позволяет. Хотя и значения, не кратные 8 битам, тоже экзотика. Если получатель допускает такой формат посылки - да, можно так и сделать. А если нет - облом.

Как правило, получатель именно требует такой формат ;О) ЦАПы,АЦПы... Есть вариант, некратные 8 биты совать программно, а 8-бит аппаратно. Или формировать посылку так, чтобы передавать кратно 8 битам, а остаток ненужных бит впустую вдвигался в приёмник и там погибал. Безвестно. Делал и так, и так.

Любопытно, никогда таких не видел. Пример можно ? А то все, с которыми я имел дело, имели четко кратный байту формат, и без фиксированных значений битов в обрамлении кадра. Самое изратное, что приходилось видеть - это SPI-режим у VNC-1L. Вот тут да, ужас, летящий на крыльях ночи...
Go to the top of the page
 
+Quote Post
mse
сообщение Feb 20 2007, 13:37
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 709
Регистрация: 3-05-05
Пользователь №: 4 693



Цитата(rx3apf @ Feb 20 2007, 12:18) *
Любопытно, никогда таких не видел. Пример можно ?

AD840x, AD520x...Говорю-ж ЦАПы, АЦАпы. Тыкай в любого, особенно если многоканальное чего.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- yarunt   скорость SPI   Feb 19 2007, 11:10
- - jorikdima   аппаратные решения вроде всегда быстрее программны...   Feb 19 2007, 11:16
- - MRW   Посмотри даташит на контроллер (раздел SPI) и сам ...   Feb 19 2007, 11:28
- - zhevak   Я недавно (в КоудВижн) писал софт-версию квадратно...   Feb 19 2007, 11:37
|- - rx3apf   Цитата(zhevak @ Feb 19 2007, 11:37) Я нед...   Feb 19 2007, 13:42
|- - zhevak   Цитата(rx3apf @ Feb 19 2007, 15:42) А что...   Feb 19 2007, 14:15
- - bgc   не забудьте проверить времянку на устройстве. Быва...   Feb 19 2007, 12:33
- - gormih   Однозначно аппаратный быстрее. Просто потому, что...   Feb 19 2007, 13:30
|- - zhevak   ЦитатаОднозначно аппаратный быстрее. +1 Отличн...   Feb 19 2007, 13:49
|- - rx3apf   Цитата(zhevak @ Feb 19 2007, 13:49) 1). Р...   Feb 19 2007, 14:04
- - yarunt   А еще вопросик .СК\2 Это пределитель на 255 ц...   Feb 19 2007, 15:17
|- - rx3apf   Цитата(yarunt @ Feb 19 2007, 15:17) А еще...   Feb 19 2007, 16:52
|- - tag   Цитата(rx3apf @ Feb 19 2007, 16:52) Цитат...   Feb 21 2007, 12:11
|- - SasaVitebsk   Цитата(tag @ Feb 21 2007, 13:11) ...забав...   Feb 21 2007, 12:27
||- - rx3apf   Цитата(mse @ Feb 20 2007, 13:37) Цитата(r...   Feb 20 2007, 14:31
||- - mse   Цитата(rx3apf @ Feb 20 2007, 14:31) AD840...   Feb 20 2007, 15:25
||- - Сергей Борщ   Цитата(mse @ Feb 20 2007, 14:25) Правда? ...   Feb 20 2007, 15:43
||- - mse   Цитата(Сергей Борщ @ Feb 20 2007, 15:43) ...   Feb 20 2007, 15:49
||- - =GM=   Цитата(mse @ Feb 20 2007, 12:49) Цитата В...   Feb 20 2007, 16:08
|||- - mse   Цитата(=GM= @ Feb 20 2007, 16:08) Ха...   Feb 20 2007, 16:11
||- - rx3apf   Цитата(mse @ Feb 20 2007, 15:49) Цитата(С...   Feb 20 2007, 19:55
||- - =GM=   Цитата(rx3apf @ Feb 20 2007, 16:55) Приме...   Feb 20 2007, 20:41
|- - yarunt   Цитата(=GM= @ Feb 19 2007, 20:42) Цитата(...   Feb 20 2007, 10:17
|- - =GM=   Цитата(yarunt @ Feb 20 2007, 07:17) Я так...   Feb 20 2007, 15:24
- - GDI   ЦитатаЯ так понял ...юарт будет дату а клок... чем...   Feb 20 2007, 10:54
|- - yarunt   [quote name='GDI' date='Feb 20 2007, 1...   Feb 20 2007, 15:03
|- - Сергей Борщ   Цитата(yarunt @ Feb 20 2007, 14:03) Цветн...   Feb 20 2007, 15:53
|- - yarunt   Цитата(Сергей Борщ @ Feb 20 2007, 16:53) ...   Feb 20 2007, 17:28
||- - Сергей Борщ   Цитата(yarunt @ Feb 20 2007, 16:28) На 57...   Feb 20 2007, 17:49
|||- - yarunt   Цитата(Сергей Борщ @ Feb 20 2007, 18:49) ...   Feb 20 2007, 18:03
|||- - Сергей Борщ   Цитата(yarunt @ Feb 20 2007, 17:03) на чи...   Feb 20 2007, 18:18
|||- - rx3apf   Цитата(yarunt @ Feb 20 2007, 18:03) Цитат...   Feb 20 2007, 18:47
||- - =GM=   Цитата(yarunt @ Feb 20 2007, 14:28) По да...   Feb 20 2007, 19:43
|- - SasaVitebsk   Цитата(Сергей Борщ @ Feb 20 2007, 16:53) ...   Feb 20 2007, 23:00
- - =GM=   Цитата(yarunt @ Feb 19 2007, 08:10) Нужен...   Feb 20 2007, 15:43
- - GDI   ЦитатаЦветной дисплей с спи ...9-й бит идет как би...   Feb 20 2007, 15:57
- - Nanobyte   Я бы поставил два дополнительных логических элемен...   Feb 20 2007, 16:16
- - GDI   ЦитатаНа атмеге 128 икварце16мГц при таком кварце ...   Feb 20 2007, 18:05
- - yarunt   Цитата(yarunt @ Feb 19 2007, 12:10) Н уже...   Feb 21 2007, 13:04
|- - yarunt   Цитата(yarunt @ Feb 21 2007, 14:04) Цитат...   Feb 21 2007, 14:21
|- - SasaVitebsk   Цитата(yarunt @ Feb 21 2007, 15:21) Сдела...   Feb 21 2007, 16:55
|- - =GM=   Цитата(yarunt @ Feb 21 2007, 11:21) Цитат...   Feb 21 2007, 17:59
|- - yarunt   [/quote] Давно известно, что все микроконтроллеры ...   Feb 21 2007, 18:34
- - GDI   может тогда просто поставить арм7.. там и частота ...   Feb 21 2007, 17:49
- - GDI   ЦитатаДайте ссылку на EWARM и я судовольствием пер...   Feb 21 2007, 18:36
- - yarunt   Цитата(GDI @ Feb 21 2007, 19:36) ЦитатаДа...   Feb 23 2007, 11:17


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

 


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


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