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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Странности таймеров в STR912
artur_off
сообщение Jan 18 2010, 16:01
Сообщение #1


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

Группа: Свой
Сообщений: 118
Регистрация: 24-05-08
Из: Odessa
Пользователь №: 37 784



Наткнулся на одну неприятную особенность таймеров STR912.

Таймеры тактируются от PCLK. Частота PCLK 48 МГц. Надо организовать прерывание таймера через 1мкс. Значения регистра совпадения и предделителя рассчитаны правильно, но прерывание возникает с периодом больше чем 1 мкс.

В поисках по форуму, наткнулся на пост уважаемого AlexandrY:

Цитата
Кстати, обнаружил, что програмный такт у STR в 1.4 раза длинее чем у LPC при выполнении из RAM.
Т.е. если симулятор для LPC покажет 60 000 000 тактов при выполнении процедуры, а потом измерить это время при выполнении на мекете с частотой ядра 60 Мгц то получим ровно 1 сек. Для STR91 получим 1.4 сек при выполнении из области DTCM RAM, а из области мапированной на AHB RAM еще длинее.


Но так как таймеры тактируются от сигнала PCLK да и сказанно там про программный такт, то как по мне частота тикания таймера от сказанного в цитате не зависит.

Тогда вопрос, изза чего таймер тикает медленее?

Попытка подключить источник тактового сигнала Fmstr вместо PCLK не увенчалась успехом.

Сообщение отредактировал artur_off - Jan 18 2010, 16:04


--------------------
 Big time. 
Go to the top of the page
 
+Quote Post
scifi
сообщение Jan 19 2010, 06:33
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Я бы всё-таки ещё раз проверил, что регистры инициализируются правильными значениями. Например, надо помнить, что в этом хитромудром таймере счётчик начинает считать не с нуля, а со значения 0xFFFC.
К тому же, как проверяется значение периода прерывания? 1 мкс - это довольно мало, так что если не спешить, то можно поймать не все прерывания. Я бы начал с бОльшего периода, убедился, что всё работает верно, а потом стал бы уменьшать период.
Go to the top of the page
 
+Quote Post
artur_off
сообщение Jan 19 2010, 12:45
Сообщение #3


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

Группа: Свой
Сообщений: 118
Регистрация: 24-05-08
Из: Odessa
Пользователь №: 37 784



То, что таймер считает не с нуля а с 0xFFFC знаю.
Ради интереса выставил сделал счетчик, который каждую секунду должен зажигать светодиод.

Но период не 1 сек, а примерно 1,3-1,5.


--------------------
 Big time. 
Go to the top of the page
 
+Quote Post
artur_off
сообщение Feb 9 2010, 12:59
Сообщение #4


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

Группа: Свой
Сообщений: 118
Регистрация: 24-05-08
Из: Odessa
Пользователь №: 37 784



Решил не создавать еще одну тему, так как вопрос касается тех же таймеров.
У кого-то получалось настроить их тактирование от fMSTR?
Если да, то поделитесь плиз опытом.

бит TI23SEL в регистре SCU_CLKSNTR сброшен, то есть EXTCLK настроено на fMSTR.
таймер тоже настроен
TIM2->CR1 |= 1;


--------------------
 Big time. 
Go to the top of the page
 
+Quote Post
Warlockwolf
сообщение Feb 9 2010, 18:06
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 17-06-08
Пользователь №: 38 358



Цитата(artur_off @ Feb 9 2010, 15:59) *
У кого-то получалось настроить их тактирование от fMSTR?


А в каком месте написано что так можно сделать? По пдфке,как я понял, работа или от PCLK или с внешней ноги. на внешнюю ногу я настраивал, и подавал туда 32 килогерца. все работает.
Go to the top of the page
 
+Quote Post
artur_off
сообщение Feb 9 2010, 18:25
Сообщение #6


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

Группа: Свой
Сообщений: 118
Регистрация: 24-05-08
Из: Odessa
Пользователь №: 37 784



В Reference manual, на странице 49 есть картинка с всеми тактовыми сигналами и там видно, что EXTCLK имеет два источника, первый fMSTR через 16-ти битный предделитель, а второй сигнал от ноги.
На странице 125 видно, что к таймеру можно подключить либо EXTCLK(от внешней ноги или от fMSTR, в зависимости от настройки регистра SCU->CLKCNTR, по умолчанию подключено fMSTR) либо PCLK.
Но проблема в том, что при настройке соответствующих регистров, ничего не меняется.
Таймер тикать не хочет.


--------------------
 Big time. 
Go to the top of the page
 
+Quote Post
Warlockwolf
сообщение Feb 9 2010, 18:50
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 17-06-08
Пользователь №: 38 358



http://www.st.com/mcu/devicedocs-STR912FAW44-101.html
http://www.st.com/stonline/products/literature/rm/13742.pdf

не нашел. или не там ищу??


http://www.st.com/mcu/devicedocs-STR912FAW44-101.html
http://www.st.com/stonline/products/literature/rm/13742.pdf

не нашел. или не там ищу??
Go to the top of the page
 
+Quote Post
artur_off
сообщение Feb 9 2010, 18:56
Сообщение #8


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

Группа: Свой
Сообщений: 118
Регистрация: 24-05-08
Из: Odessa
Пользователь №: 37 784



Опа. Походу у меня референс мануал старый.
Внизу скрин с него.



Сообщение отредактировал artur_off - Feb 9 2010, 18:57


--------------------
 Big time. 
Go to the top of the page
 
+Quote Post
artur_off
сообщение Feb 10 2010, 18:59
Сообщение #9


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

Группа: Свой
Сообщений: 118
Регистрация: 24-05-08
Из: Odessa
Пользователь №: 37 784



Думаю, что эту тему надо перенести в раздел для начинающих ))


--------------------
 Big time. 
Go to the top of the page
 
+Quote Post
Aprox
сообщение Feb 11 2010, 07:53
Сообщение #10


Местный
***

Группа: Участник
Сообщений: 374
Регистрация: 7-11-07
Из: Moscow
Пользователь №: 32 131



Цитата(artur_off @ Feb 10 2010, 21:59) *
Думаю, что эту тему надо перенести в раздел для начинающих ))
Не спешите. Я тоже столкнулся с проблемой тактирования периферии в STR91xx от внутренней частоты PCLK. Причем два раза для разных устройств- для UART- ов и для таймеров. На таймере запрограммировал PWM, генерирующий меандр с частотой 100 Гц. Получил 100, 5 Гц. Задающий кварц 25МГц- идеальный, проверял. Пришлось тупо корректировать загрузку кэпчур-регистра, чтобы убрать ошибку частоты в 0,5%. С UART получилась похожая история- при загрузке генератора скорости стандартными значениями из мануала, фактическая скорость следования битов оказалась на 2% ниже требуемой. Только на 57600 оказалась точной, а для других- всегда с занижением. Чем это объяснить- нет никаких мыслей. Пришлось также тупо корректировать загрузки генератора скорости, чтобы получить стандартные частоты. Проблема так и осталась нерешенной. Боюсь выплывет какой-нибудь неприятностью чуть позже.
Go to the top of the page
 
+Quote Post
koyodza
сообщение Feb 12 2010, 18:32
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 213
Регистрация: 28-02-07
Из: Киев
Пользователь №: 25 744



Цитата(artur_off @ Jan 19 2010, 14:45) *
Ради интереса выставил сделал счетчик, который каждую секунду должен зажигать светодиод.

Но период не 1 сек, а примерно 1,3-1,5.

Чушь какая-то.
Два-три года назад реализовывал проект на STR911, таймера использовал для генерации нескольких частот (использовались аналоговой частью прибора - как сигналы возбуждения, синхронными детекторами и т.п.). Никаких таких проблем не было. Если бы у меня частота отличалась хоть на 1%, просто ничего бы не работало.

У STR91 есть особенность работы, поищите в мануале Special interrupt mode control. Я плохо помню подробности, но смысл там в том, что при его использовании при выполнении программы RCLKDIV устанавливается в какое-то значение, а в прерываниях он кажись становится 1. Ну а вся пакость в том, что переключается не только тактовая ядра, но и все частоты, которые получаются из RCLK. Выход - отказаться от использования Special interrupt mode control
Go to the top of the page
 
+Quote Post
artur_off
сообщение Feb 12 2010, 21:30
Сообщение #12


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

Группа: Свой
Сообщений: 118
Регистрация: 24-05-08
Из: Odessa
Пользователь №: 37 784



Цитата(koyodza @ Feb 12 2010, 20:32) *
<br />Чушь какая-то.<br />Два-три года назад реализовывал проект на STR911, таймера использовал для генерации нескольких частот (использовались аналоговой частью прибора - как сигналы возбуждения, синхронными детекторами и т.п.). <b>Никаких</b> таких проблем не было. Если бы у меня частота отличалась хоть на 1%, просто ничего бы не работало.<br /><br />У STR91 есть особенность работы, поищите в мануале Special interrupt mode control. Я плохо помню подробности, но смысл там в том, что при его использовании при выполнении программы RCLKDIV устанавливается в какое-то значение, а в прерываниях он кажись становится 1. Ну а вся пакость в том, что переключается не только тактовая ядра, но и все частоты, которые получаются из RCLK. Выход - отказаться от использования Special interrupt mode control<br /><br />
<br /><br /><br />

Это называется Special Interrupt mode IRQ(есть также для FIQ).
Этот режим выключен.

Цитата
The special interrupt mode using IRQ causes the CPU to operate at full speed (fMSTR as
clock frequency) when the IRQ service routine reads the vector address register in the VIC
and jumps then to the specified interrupt routine with the speed selected by the RCLKDIV
clock divider.


Как я понял из перевода и диаграмм тактовых сигналов, если включен этот режим, то CPU тактируется от fMSTR, а обработчик прерывания от RCLK.


--------------------
 Big time. 
Go to the top of the page
 
+Quote Post
Aprox
сообщение Feb 16 2010, 07:22
Сообщение #13


Местный
***

Группа: Участник
Сообщений: 374
Регистрация: 7-11-07
Из: Moscow
Пользователь №: 32 131



Цитата(artur_off @ Feb 13 2010, 00:30) *
Как я понял из перевода и диаграмм тактовых сигналов, если включен этот режим, то CPU тактируется от fMSTR, а обработчик прерывания от RCLK.
Кроме того, если бы происходило произвольное изменение PCLKDIV, то изменения частот таймеров и UART были бы в РАЗЫ, а наблюдаются всего проценты. Я тоже грешил на делитель для PCLK, но по здравому размышлению отказался. Больше похоже на PLL. Может ведь так быть, что присваивая настройки PLL для генерации 96МГц, на самом деле эта PLL генерит на несколько процентов меньше? Проверить это можно только частотомером с выхода, например, таймеров. Других способов я не вижу.
Go to the top of the page
 
+Quote Post
artur_off
сообщение Feb 16 2010, 08:40
Сообщение #14


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

Группа: Свой
Сообщений: 118
Регистрация: 24-05-08
Из: Odessa
Пользователь №: 37 784



Цитата(Aprox @ Feb 16 2010, 09:22) *
Кроме того, если бы происходило произвольное изменение PCLKDIV, то изменения частот таймеров и UART были бы в РАЗЫ, а наблюдаются всего проценты. Я тоже грешил на делитель для PCLK, но по здравому размышлению отказался. Больше похоже на PLL. Может ведь так быть, что присваивая настройки PLL для генерации 96МГц, на самом деле эта PLL генерит на несколько процентов меньше? Проверить это можно только частотомером с выхода, например, таймеров. Других способов я не вижу.
Я тоже так думаю. У меня появился осциллограф, правда древний, как унты чукчи, но меряет частоту до 20 MHz. Надо попробовать измерить частоту например ШИМ.


--------------------
 Big time. 
Go to the top of the page
 
+Quote Post
koyodza
сообщение Feb 17 2010, 16:29
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 213
Регистрация: 28-02-07
Из: Киев
Пользователь №: 25 744



Цитата(Aprox @ Feb 16 2010, 09:22) *
Кроме того, если бы происходило произвольное изменение PCLKDIV, то изменения частот таймеров и UART были бы в РАЗЫ, а наблюдаются всего проценты

Ваше предположение не вполне верно. Дело в том, что частота в "нормальном" режиме и в "обработчике прерывания" разная, она и правда меняется в разы. Но частота ведь всё время меняется, и на выходе таймера вы видите уже проинтегрированное значение. smile3046.gif

К слову, не PCLKDIV, а RCLKDIV rolleyes.gif

------------
Хм, посмотрел на блок-схему, освежил в памяти... Чего-то оно не очень освежилось...
Всё равно проверьте ещё раз насчёт настроек RCLKDIV и Special Interrupt Mode, если меня не подводит память - там какая-то засада была именно с таймерами, из-за чего я сразу отказался от использования этого режима
Go to the top of the page
 
+Quote Post
artur_off
сообщение Feb 17 2010, 18:10
Сообщение #16


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

Группа: Свой
Сообщений: 118
Регистрация: 24-05-08
Из: Odessa
Пользователь №: 37 784



Цитата(koyodza @ Feb 17 2010, 18:29) *
Ваше предположение не вполне верно. Дело в том, что частота в "нормальном" режиме и в "обработчике прерывания" разная, она и правда меняется в разы. Но частота ведь всё время меняется, и на выходе таймера вы видите уже проинтегрированное значение. smile3046.gif

К слову, не PCLKDIV, а RCLKDIV rolleyes.gif

------------
Хм, посмотрел на блок-схему, освежил в памяти... Чего-то оно не очень освежилось...
Всё равно проверьте ещё раз насчёт настроек RCLKDIV и Special Interrupt Mode, если меня не подводит память - там какая-то засада была именно с таймерами, из-за чего я сразу отказался от использования этого режима


Да вроде как наладилось. Отказался от библиотек ST.

Измерил частоту ШИМ с помощью осца. Отклонение рассчитанных значений и измеренных составило меньше одного процента и если учитывать, что частота определялась на глаз и осц довольно древний, то с уверенностью можно сказать, что после отказа от библиотек ST таймеры затикали нормально.
За Special Interrupt mode спасибо. Буду иметь ввиду   smile.gif  .

Сообщение отредактировал artur_off - Feb 17 2010, 18:28


--------------------
 Big time. 
Go to the top of the page
 
+Quote Post
koyodza
сообщение Feb 18 2010, 14:53
Сообщение #17


Местный
***

Группа: Свой
Сообщений: 213
Регистрация: 28-02-07
Из: Киев
Пользователь №: 25 744



Цитата(artur_off @ Feb 17 2010, 20:10) *
Да вроде как наладилось. Отказался от библиотек ST.

Вот так и рождаются нездоровые сенсации...
А разобраться в чём дело значит не захотели. Библиотеки-то со всеми исходниками, можно ведь посмотреть и определить, кто и где был неправ
Go to the top of the page
 
+Quote Post
artur_off
сообщение Feb 18 2010, 16:20
Сообщение #18


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

Группа: Свой
Сообщений: 118
Регистрация: 24-05-08
Из: Odessa
Пользователь №: 37 784



Цитата(koyodza @ Feb 18 2010, 16:53) *
Вот так и рождаются нездоровые сенсации...
А разобраться в чём дело значит не захотели. Библиотеки-то со всеми исходниками, можно ведь посмотреть и определить, кто и где был неправ

К сожалению нету времени в них копаться. Может как нибудь на досуге.
Один из примеров. Как только начинал с ним работать, не хотели прерывания генерироваться. Поднял на форуме тему, в одном из сообщений подсказали попробовать объявить обработчик прерывания таким образом __irq void ........ (void) (в библиотеках ST почему-то это дело написано без __irq).

Сообщение отредактировал artur_off - Feb 18 2010, 16:25


--------------------
 Big time. 
Go to the top of the page
 
+Quote Post
Aprox
сообщение Feb 20 2010, 13:30
Сообщение #19


Местный
***

Группа: Участник
Сообщений: 374
Регистрация: 7-11-07
Из: Moscow
Пользователь №: 32 131



Цитата(koyodza @ Feb 18 2010, 17:53) *
Вот так и рождаются нездоровые сенсации...
А разобраться в чём дело значит не захотели. Библиотеки-то со всеми исходниками, можно ведь посмотреть и определить, кто и где был неправ
Я залезал в исходники, ничего криминального не нашел. Более того, залез в реальный кристалл JTAG-отладчиком- смотрел коды в регистрах управления периферией и SCU- все правильно, точно по мануалу. Смотрел и бит в SCU, отвечающий за Special Interrupt Mode- этот бит стоит в нуле. А таймеры и скорость UART-ов все равно отличаются от ожидаемого на пару процентов.
Go to the top of the page
 
+Quote Post
artur_off
сообщение Feb 20 2010, 15:32
Сообщение #20


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

Группа: Свой
Сообщений: 118
Регистрация: 24-05-08
Из: Odessa
Пользователь №: 37 784



Цитата(Aprox @ Feb 11 2010, 09:53) *
Не спешите. Я тоже столкнулся с проблемой тактирования периферии в STR91xx от внутренней частоты PCLK. Причем два раза для разных устройств- для UART- ов и для таймеров. На таймере запрограммировал PWM, генерирующий меандр с частотой 100 Гц. Получил 100, 5 Гц. Задающий кварц 25МГц- идеальный, проверял. Пришлось тупо корректировать загрузку кэпчур-регистра, чтобы убрать ошибку частоты в 0,5%. С UART получилась похожая история- при загрузке генератора скорости стандартными значениями из мануала, фактическая скорость следования битов оказалась на 2% ниже требуемой. Только на 57600 оказалась точной, а для других- всегда с занижением. Чем это объяснить- нет никаких мыслей. Пришлось также тупо корректировать загрузки генератора скорости, чтобы получить стандартные частоты. Проблема так и осталась нерешенной. Боюсь выплывет какой-нибудь неприятностью чуть позже.


Если вы говорите, что в UART скорость была на 2% ниже, то попробуйте в целях эксперимента немного повысить частоту PLL, AlexandrY говорил, что розганял STR912 до 133 MHz. (Попробовал бы у себя, но у меня UART тикает вроде нормально). Запишите значения например N=202, M=26, P=2(данные значения для кварца 25MHz) (частота PLL примерно 97.115MHz) и посмотрите, какая получается скорость передачи в UART. Если вдруг процессор не запустится, то лечится следующим образом, выпаиваете кварц и на его место запаиваете кварц на меньшую частоту, скажем 12 MHz, стираете прошивку и запаиваете старый.


--------------------
 Big time. 
Go to the top of the page
 
+Quote Post
koyodza
сообщение Feb 24 2010, 19:37
Сообщение #21


Местный
***

Группа: Свой
Сообщений: 213
Регистрация: 28-02-07
Из: Киев
Пользователь №: 25 744



Как обычно всё смешалось в одну кучу:
Цитата(artur_off @ Jan 19 2010, 14:45) *
Ради интереса выставил сделал счетчик, который каждую секунду должен зажигать светодиод.
Но период не 1 сек, а примерно 1,3-1,5.

Цитата(artur_off @ Feb 20 2010, 17:32) *
... в UART скорость была на 2% ниже ...


Это, как говорится, две большие разницы: в случае с уартом налицо проблема неправильной настройки делителей. В STR91 (как и во многих других МК уровнем чуть повыше 51 и АВР) делитель частоты уарта может иметь некое подобие дробного коэффициента, там используется Fractional baud rate generation. Многие противники использования библиотек от ST просто игнорируют этот момент, и получают свои % отличия.
В случае же с таймерами, описанным Вами в начале, отличие составляет десятки %. Чем оно может быть вызвано - одну из версий я уже выдвигал. Возможно, причина в чём-то другом, но однозначно это не их проблема, а Ваша. Ещё раз повторю: я реализовывал проект на данном МК, в котором недопустимо было отличие даже в сотые доли %, всё прекрасно работает.
Go to the top of the page
 
+Quote Post
Aprox
сообщение Feb 25 2010, 20:52
Сообщение #22


Местный
***

Группа: Участник
Сообщений: 374
Регистрация: 7-11-07
Из: Moscow
Пользователь №: 32 131



Цитата(koyodza @ Feb 24 2010, 22:37) *
.... в случае с уартом налицо проблема неправильной настройки делителей. В STR91 (как и во многих других МК уровнем чуть повыше 51 и АВР) делитель частоты уарта может иметь некое подобие дробного коэффициента, там используется Fractional baud rate generation. Многие противники использования библиотек от ST просто игнорируют этот момент, и получают свои % отличия.
В случае же с таймерами, описанным Вами в начале, отличие составляет десятки %. Чем оно может быть вызвано - одну из версий я уже выдвигал. Возможно, причина в чём-то другом, но однозначно это не их проблема, а Ваша. Ещё раз повторю: я реализовывал проект на данном МК, в котором недопустимо было отличие даже в сотые доли %, всё прекрасно работает.
У меня с UART была и другая проблема- он изредка двоил символами на прием в присутствии прерываний таймера. Полез на ST форум и обнаружил, что у многих такое наблюдается. Тогда полез в исходники ST библиотеки и обнаружил ошибку в IRQ-обработчике. Там было реализовано nested прерывания без обновления приоритета VIC1. Тогда полез в support от ST и нашел новую версию ST-библиотеки от 2009 года. В этой новой библиотеке уже нет ошибки пв прерываниях. Надеюсь, установку скорости UART и счет таймеров( или PLL?) тоже подправили. Теперь буду пробовать новую версию библиотеки. О результатах вскорости доложу.

Что же касается отличий в 2% от заданной скорости UART, то это похоже на ошибку округления до ближайшего целого при расчете fructional divider в старой версии ST библиотеки. Буду испытывать новую версию.
Go to the top of the page
 
+Quote Post
artur_off
сообщение Feb 26 2010, 06:19
Сообщение #23


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

Группа: Свой
Сообщений: 118
Регистрация: 24-05-08
Из: Odessa
Пользователь №: 37 784



Цитата(Aprox @ Feb 25 2010, 22:52) *
У меня с UART была и другая проблема- он изредка двоил символами на прием в присутствии прерываний таймера. Полез на ST форум и обнаружил, что у многих такое наблюдается. Тогда полез в исходники ST библиотеки и обнаружил ошибку в IRQ-обработчике. Там было реализовано nested прерывания без обновления приоритета VIC1. Тогда полез в support от ST и нашел новую версию ST-библиотеки от 2009 года. В этой новой библиотеке уже нет ошибки пв прерываниях. Надеюсь, установку скорости UART и счет таймеров( или PLL?) тоже подправили. Теперь буду пробовать новую версию библиотеки. О результатах вскорости доложу.

Что же касается отличий в 2% от заданной скорости UART, то это похоже на ошибку округления до ближайшего целого при расчете fructional divider в старой версии ST библиотеки. Буду испытывать новую версию.


Поделитесь новой библиотекой)))


--------------------
 Big time. 
Go to the top of the page
 
+Quote Post
Aprox
сообщение Feb 27 2010, 07:57
Сообщение #24


Местный
***

Группа: Участник
Сообщений: 374
Регистрация: 7-11-07
Из: Moscow
Пользователь №: 32 131



Цитата(artur_off @ Feb 26 2010, 09:19) *
Поделитесь новой библиотекой)))
Она в свободном доступе на сайте STM по разделу support.
Уже кое-что попробовал. Действительно, обработчик прерываний в новой библиотеке стал работать предсказуемо за счет отказа от nested и правильного обновления приритетов при каскадировании VIC1 и VIC0. Понадобилось 2 года (с 2007 по 2009), чтобы устранить ошибки в ST библиотеке.

Что же касается ошибки в 2% при установке длительности периода PWM на таймерах, то я обнаружил причину. Она из серии хреновых мануалов. Оказывается, чтобы поделить PCLK на пределителе таймера в N раз, нужно грузить в пределитель число N-1. В разделе мануала, где даются формулы расчета периода PWM, ничего про это не говорится! И в руководстве библиотеки ST тоже молчок. А узнаешь про -1 только в разделе "описание регистров TIMx". Hо идеального совпадения периода PWM с расчетным все равно не получилось после исправления оплошности с N-1 пределителя. Завышение частоты составило в 5-ом знаке по отношению к частоте задающего кварца. Если при расчете значения OCR2 вычитать не -5, как в мануале, а -4, то совпадение получаем идеальным.

Что касается неточной установки скорости UART-ов, то этот момент еще с новой библиотекой не проверялся.
Go to the top of the page
 
+Quote Post
artur_off
сообщение Feb 27 2010, 13:20
Сообщение #25


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

Группа: Свой
Сообщений: 118
Регистрация: 24-05-08
Из: Odessa
Пользователь №: 37 784



Цитата(Aprox @ Feb 27 2010, 09:57) *
 Завышение частоты составило в 5-ом знаке по отношению к частоте задающего кварца. Если при расчете значения OCR2 вычитать не -5, как в мануале, а -4, то совпадение получаем идеальным.
Ну так правильно, надо вычитать -4. Ведь при сбросе, значение счетного регистра устанавливается в значение 0xFFFC.

Если честно, не нашел библиотеки.

Сообщение отредактировал artur_off - Feb 27 2010, 13:36


--------------------
 Big time. 
Go to the top of the page
 
+Quote Post
Aprox
сообщение Feb 27 2010, 15:32
Сообщение #26


Местный
***

Группа: Участник
Сообщений: 374
Регистрация: 7-11-07
Из: Moscow
Пользователь №: 32 131



Цитата(artur_off @ Feb 27 2010, 16:20) *
Ну так правильно, надо вычитать -4. Ведь при сбросе, значение счетного регистра устанавливается в значение 0xFFFC.
А фирменном мануале написано -5.
Цитата
Если честно, не нашел библиотеки.
Ловите
Прикрепленный файл  new_91x_lib.zip ( 450.73 килобайт ) Кол-во скачиваний: 150
Go to the top of the page
 
+Quote Post
artur_off
сообщение Feb 27 2010, 16:15
Сообщение #27


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

Группа: Свой
Сообщений: 118
Регистрация: 24-05-08
Из: Odessa
Пользователь №: 37 784



 
Цитата(Aprox @ Feb 27 2010, 17:32) *
Ловите
Прикрепленный файл  new_91x_lib.zip ( 450.73 килобайт ) Кол-во скачиваний: 150


Благодарствую.


--------------------
 Big time. 
Go to the top of the page
 
+Quote Post

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

 


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


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