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

 
 
> Калибровка Tiny13 и софтовый COM-порт на ней
sbw
сообщение Dec 18 2007, 14:53
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 5-10-07
Из: Харьков, Украина
Пользователь №: 31 107



Стоит задача реализовать софтово COM-порт (только передачу) на Тини13.
Столкнулся с тем, что не смотря на автозагрузку заводского калибровочного байта, некоторые процессоры выдают такую частоту в ком-порт, какую компьютер не принимает. То есть с одного прошитого процессора данные в терминалке на экран выводятся, а с другого - нет, или не все, или с мусором.
По даташиту точность заводской калибровки - порядка 10%, видимо этого недостаточно.
В аппнотах описана процедура калибровки с подачей внешней частоты 32кгц, но не понимаю, как это применить к авреалу.
Посоветуйте что-нибудь.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
=GM=
сообщение Dec 19 2007, 12:03
Сообщение #2


Ambidexter
*****

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



Цитата(sbw @ Dec 18 2007, 14:53) *
Стоит задача реализовать софтово COM-порт (только передачу) на Тини13. Столкнулся с тем, что не смотря на автозагрузку заводского калибровочного байта, некоторые процессоры выдают такую частоту в ком-порт, какую компьютер не принимает. То есть с одного прошитого процессора данные в терминалке на экран выводятся, а с другого - нет, или не все, или с мусором.
По даташиту точность заводской калибровки - порядка 10%, видимо этого недостаточно.
В аппнотах описана процедура калибровки с подачей внешней частоты 32кгц, но не понимаю, как это применить к авреалу

Для 10-битных пакетов точность разности частот приёмника и передатчика должна быть не хуже ±(0,5/9,5)=0,053 т.е. порядка ±5%.

Если у вас есть точные 32 КГц, то можно применить алгоритм измерения частоты, только оценивать не входную частоту 32 кГц, а тактовую частоту процессора, думаю 10-50 мс должно хватить на оценку. Ну а зная тактовую, можно настроить длительность одного бита.

Как вариант, можно ещё посылать с ПК байт 0х55 время от времени и по длительности нуля и единицы также оценивать тактовую частоту проца.


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


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 5-10-07
Из: Харьков, Украина
Пользователь №: 31 107



Цитата(=GM= @ Dec 19 2007, 14:03) *
Как вариант, можно ещё посылать с ПК байт 0х55 время от времени и по длительности нуля и единицы также оценивать тактовую частоту проца.


Нет, точных внешних частот без серьезной переделки программатора нет. А вот по поводу идеи подавать посылку с ком-порта компьютера (допустим, это возможно): достаточно ли будет подачи одного байта '$55' ? Или может лучше '00', и оценивать длительность "нулей"? Какую имеет смысл установить скорость передачи этого байта, поменьше? Например, 1200 или меньше? Я так понимаю, что чем длинее посылка - тем выше точность. И, как я понимаю, нельзя рассчитывать на длительность передачи нескольких байт, компьютер может быть неожиданно занят чем-то другим и увеличить паузу между передаваемыми байтами, да?

Пока что я склоняюсь к мысли поставить на плату программатора еще один процессор с кварцем, который бы начинал генерить 100-гц импульсы по ноге MISO через 1с после ресета программируемого проца и до момента проседания в ноль ноги SCK (то есть, если после ресета начинается прошивка программируемого процессора, чтобы этот генератор отрубился и не мешал, и перестал генерить после того, как программируемый процессор решил, что он откалибровался и ему хватит, можно работать). Как вам идея?
Go to the top of the page
 
+Quote Post
=GM=
сообщение Dec 19 2007, 15:10
Сообщение #4


Ambidexter
*****

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



Цитата(sbw @ Dec 19 2007, 14:18) *
А вот по поводу идеи подавать посылку с ком-порта компьютера (допустим, это возможно): достаточно ли будет подачи одного байта '$55' ? Или может лучше '00', и оценивать длительность "нулей"? Какую имеет смысл установить скорость передачи этого байта, поменьше? Например, 1200 или меньше? Я так понимаю, что чем длинее посылка - тем выше точность. И, как я понимаю, нельзя рассчитывать на длительность передачи нескольких байт, компьютер может быть неожиданно занят чем-то другим и увеличить паузу между передаваемыми байтами, да?

Думаю, что достаточно подать один байт в начале программирования, он будет еще как бы признаком старта. Вы же понимаете, что частоты гуляют очень и очень медленно, в основном от температуры или от старения. Измерили вы частоту и за 20-30 минут никуда она серьёзно не убежит. Имеет смысл подавать байт 0х55, потому что программа может измерить длительности четырёх 1 и четырёх 0, и сравнить их между собой, гарантия того, что это не помеха или не простое перетыкание разъёмов. Скорость передачи можно поставить 9600, можно 1200, не имеет значения, 1мс или 10мс, время ничтожное, лишь бы вы успели измерить длительность с приемлемой точностью.
Цитата(sbw @ Dec 19 2007, 14:18) *
Пока что я склоняюсь к мысли поставить на плату программатора еще один процессор с кварцем, который бы начинал генерить 100-гц импульсы по ноге MISO через 1с после ресета программируемого проца и до момента проседания в ноль ноги SCK (то есть, если после ресета начинается прошивка программируемого процессора, чтобы этот генератор отрубился и не мешал, и перестал генерить после того, как программируемый процессор решил, что он откалибровался и ему хватит, можно работать). Как вам идея?

Не знаю ваших задумок, но здесь вы вроде ребёночка выплеснули вместе с водой. У вас же вроде не было точных частот, и вы кварц не хотели ставить, а теперь ставите, да ещё с МК. Оно вам надо?

Вот, кстати ещё, подумал, что таким способом можно обмениваться двум бескварцевым МК, на каждом обмене корректирующим скорость приёмника под чужой передатчик.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post



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

 


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


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