|
скорость SPI, что быстрее програмный или апаратный? |
|
|
|
 |
Ответов
|
Feb 19 2007, 19:58
|
Гуру
     
Группа: Участник
Сообщений: 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 при всем желании невозможно физически...
|
|
|
|
|
Feb 19 2007, 20:24
|

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)  Обычно под "синхронным" понимается использование байтов синхронизации и указанное число битов данных, без старт- и стоп- битов, которые как раз свойственны асинхронной передаче. Что такое "байтов синхронизации"? Как-то сложно всё(:-).
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Feb 19 2007, 20:36
|
Гуру
     
Группа: Участник
Сообщений: 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 программно - очень накладно.
|
|
|
|
|
Feb 20 2007, 02:29
|

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 МГц. И все довольны, особенно автор топика. Почему нельзя использовать?
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Feb 20 2007, 03:31
|
Гуру
     
Группа: Участник
Сообщений: 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 битам, тоже экзотика. Если получатель допускает такой формат посылки - да, можно так и сделать. А если нет - облом.
|
|
|
|
|
Feb 20 2007, 10:14
|
Знающий
   
Группа: Свой
Сообщений: 709
Регистрация: 3-05-05
Пользователь №: 4 693

|
Цитата(rx3apf @ Feb 20 2007, 03:31)  Автору надо передать 9 битов данных. А будет передано 11, причем два из них с жестко заданными значениями. Для чего, кому и куда надо передать данные - в вопросе не было. Типично, обмен по SPI таких извращений не позволяет. Хотя и значения, не кратные 8 битам, тоже экзотика. Если получатель допускает такой формат посылки - да, можно так и сделать. А если нет - облом. Как правило, получатель именно требует такой формат ;О) ЦАПы,АЦПы... Есть вариант, некратные 8 биты совать программно, а 8-бит аппаратно. Или формировать посылку так, чтобы передавать кратно 8 битам, а остаток ненужных бит впустую вдвигался в приёмник и там погибал. Безвестно. Делал и так, и так.
|
|
|
|
|
Feb 20 2007, 12:18
|
Гуру
     
Группа: Участник
Сообщений: 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. Вот тут да, ужас, летящий на крыльях ночи...
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|