|
максимальная скорость COM-порта?, получится ли? |
|
|
|
Sep 1 2005, 03:02
|

Местный
  
Группа: Свой
Сообщений: 497
Регистрация: 9-06-05
Из: Новосибирск
Пользователь №: 5 852

|
Вообще говоря 25 выборок очень мало, но если их хватает и 25, то должно хватать 6-8 разрядов, 16 совершенно не к чему, если все-таки нужен приличный синус, то ставь ЦАП 8-разрядов, 64 или 128 выборок, а после активный фильтр, лучше 2 , второго порядка каждый, у меня в такой схеме искажения были лучше 0.1%
|
|
|
|
|
Sep 1 2005, 05:10
|
Местный
  
Группа: Свой
Сообщений: 303
Регистрация: 3-03-05
Пользователь №: 3 044

|
Цитата(skopus @ Sep 1 2005, 00:39) Стоит задача сделать из него генератор синусоидального сигнала с частотой 780гц . То есть в ком-порт будут отправляться дискретные значения амплитуды, которые беруться из таблицы, хранящейся в памяти контроллера, а верхний софт считает все это из порта и будет выводить на экран в виде графика. Интересно, а что, верхний софт такой тупой, что сам не может содержать таблицы синуса и брать их из своей памяти, что бы вывести на экран?
--------------------
Опыт - чудесная вещь: легко использовать, можно продать, трудно пропить.
|
|
|
|
|
Sep 1 2005, 08:20
|

Профессионал
    
Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264

|
Цитата(skopus @ Sep 1 2005, 01:39) 1/780 = 0.00128205 секунды за это время нужно отправить 25 послыок по 18 бит (так как значение амплитуды 16 разрядное) Вы можете передавать значения приращения сигнала (дельта-модуляция) это уменьшит разрядность Ваших данных, что 'разгрузит' скорость передачи.
--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
|
|
|
|
|
Sep 1 2005, 08:28
|

Участник

Группа: Свой
Сообщений: 65
Регистрация: 31-08-05
Из: Moscow
Пользователь №: 8 124

|
Цитата(BVU @ Sep 1 2005, 11:20) Цитата(skopus @ Sep 1 2005, 01:39) 1/780 = 0.00128205 секунды за это время нужно отправить 25 послыок по 18 бит (так как значение амплитуды 16 разрядное) Вы можете передавать значения приращения сигнала (дельта-модуляция) это уменьшит разрядность Ваших данных, что 'разгрузит' скорость передачи. но ведь если посылка будет 10 байт а не 18, то все равно получается 780*25*10=195000 - это же больше стандартной скорости 115200.
|
|
|
|
|
Sep 1 2005, 08:56
|

Профессионал
    
Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264

|
Цитата(skopus @ Sep 1 2005, 12:28) Цитата(BVU @ Sep 1 2005, 11:20) Цитата(skopus @ Sep 1 2005, 01:39) 1/780 = 0.00128205 секунды за это время нужно отправить 25 послыок по 18 бит (так как значение амплитуды 16 разрядное) Вы можете передавать значения приращения сигнала (дельта-модуляция) это уменьшит разрядность Ваших данных, что 'разгрузит' скорость передачи. но ведь если посылка будет 10 байт а не 18, то все равно получается 780*25*10=195000 - это же больше стандартной скорости 115200. Хорошо давайте так - передавайте скорость изменения вашего сигнала (ускорение). Может быть в 8-бит то уложитесь, а Программе на PC отдать всю остальную обработку по восстановлению сигнала. По всей видимости 'в лоб' эта не решается (1 выборка значения -> передача в порт). Если уж связались с COM портом здесь необходима информационная компрессия при граничной скорости передачи (во времени). Есть еще вариант: необходимо рассмотреть, как быстро надо перестраивать параметры амплитуды, частоты и фазы вашего синуса? Передаете Вашей PC программе 'блоком' эти три значения, при изменении снова 'блок' и т.д.
--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
|
|
|
|
|
Sep 1 2005, 09:04
|

Участник

Группа: Свой
Сообщений: 65
Регистрация: 31-08-05
Из: Moscow
Пользователь №: 8 124

|
Цитата(BVU @ Sep 1 2005, 11:56) Цитата(skopus @ Sep 1 2005, 12:28) Цитата(BVU @ Sep 1 2005, 11:20) Цитата(skopus @ Sep 1 2005, 01:39) 1/780 = 0.00128205 секунды за это время нужно отправить 25 послыок по 18 бит (так как значение амплитуды 16 разрядное) Вы можете передавать значения приращения сигнала (дельта-модуляция) это уменьшит разрядность Ваших данных, что 'разгрузит' скорость передачи. но ведь если посылка будет 10 байт а не 18, то все равно получается 780*25*10=195000 - это же больше стандартной скорости 115200. Хорошо давайте так - передавайте скорость изменения вашего сигнала (ускорение). Ускорение - это вторая производная от синуса. То есть -sin. От этого ничего не меняется абсолютно, но идея красивая
|
|
|
|
|
Sep 1 2005, 09:15
|

Профессионал
    
Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264

|
Цитата(skopus @ Sep 1 2005, 13:04) Цитата(BVU @ Sep 1 2005, 11:56) Цитата(skopus @ Sep 1 2005, 12:28) Цитата(BVU @ Sep 1 2005, 11:20) Цитата(skopus @ Sep 1 2005, 01:39) 1/780 = 0.00128205 секунды за это время нужно отправить 25 послыок по 18 бит (так как значение амплитуды 16 разрядное) Вы можете передавать значения приращения сигнала (дельта-модуляция) это уменьшит разрядность Ваших данных, что 'разгрузит' скорость передачи. но ведь если посылка будет 10 байт а не 18, то все равно получается 780*25*10=195000 - это же больше стандартной скорости 115200. Хорошо давайте так - передавайте скорость изменения вашего сигнала (ускорение). Ускорение - это вторая производная от синуса. То есть -sin. От этого ничего не меняется абсолютно, но идея красивая   бывает 'зарапортовался'. Но есть еще возможность - как поднять тактовую частоту Вашего mega128 на кварце скажем 16.000000Mz и получить максимально совместимые для PC скорость передачи по COM порту в 256000.
--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
|
|
|
|
|
Sep 1 2005, 10:38
|

Участник

Группа: Свой
Сообщений: 65
Регистрация: 31-08-05
Из: Moscow
Пользователь №: 8 124

|
Цитата(BVU @ Sep 1 2005, 12:15) Цитата(skopus @ Sep 1 2005, 13:04) Цитата(BVU @ Sep 1 2005, 11:56) Цитата(skopus @ Sep 1 2005, 12:28) Цитата(BVU @ Sep 1 2005, 11:20) Цитата(skopus @ Sep 1 2005, 01:39) 1/780 = 0.00128205 секунды за это время нужно отправить 25 послыок по 18 бит (так как значение амплитуды 16 разрядное) Вы можете передавать значения приращения сигнала (дельта-модуляция) это уменьшит разрядность Ваших данных, что 'разгрузит' скорость передачи. но ведь если посылка будет 10 байт а не 18, то все равно получается 780*25*10=195000 - это же больше стандартной скорости 115200. Хорошо давайте так - передавайте скорость изменения вашего сигнала (ускорение). Ускорение - это вторая производная от синуса. То есть -sin. От этого ничего не меняется абсолютно, но идея красивая   бывает 'зарапортовался'. Но есть еще возможность - как поднять тактовую частоту Вашего mega128 на кварце скажем 16.000000Mz и получить максимально совместимые для PC скорость передачи по COM порту в 256000. проще припаять обычный ЦАП, чем заменить кварц... Скорее всего так и придется сделать.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|