Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Калибровка внутреннего генератора(atmega169)

Непрочитано 25.07.2009, 16:30  
Archer07
Прописка
 
Регистрация: 25.03.2009
Сообщений: 137
Сказал спасибо: 22
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
Archer07 на пути к лучшему
По умолчанию Калибровка внутреннего генератора(atmega169)

Всем привет!Хотел написать программу для контроллера,которая будет принимать байт и БЕЗ ИЗМЕНЕНИЯ отправлять его мне назад.А получилось так:например,
tx:5
rx:35 (dec формат)
tx:9
rx:39
...
Я слышал про калибровку внутреннего тактового генератора перед инициализацией uart'а.Что это такое вообще,как ее делают.Просто для atmega16 не видел чтобы кто-то писал про калибровку,а на m169 видимо нужно это делать.С чем это связано,температура влияет на ход генератора?Может кто-нибудь сталкивался с этим на mega169?

код программы ниже.
P.S. Я читал документацию,там нет этого,там просто описывается стандартный для всех мег USART...

;Контроллер принимает байт и тут же его возвращает
;по RS-232
;
;-------------------------------
.include "m169def.inc"

;---------------------------------
.macro outs
ldi r16,@1
sts @0,r16
.endmacro

.macro delay
ldi r21,10
ldi r22,10
ldi r23,10
delay1:
dec r21
brne delay1
dec r22
brne delay1
dec r23
brne delay1
.endmacro

;--------------------------------
.cseg
.org 0
rjmp _RESET

;-----------
.org INT_VECTORS_SIZE
_RESET:
ldi r16,High(RAMEND)
out SPH,r16
ldi r16,Low(RAMEND)
out SPL,r16

USART_Init:
; Set baud rate
ldi r17,0
ldi r16,12
sts UBRRH,r17
sts UBRRL,r16
; Enable receiver and transmitter
ldi r16,(1‹‹RXEN)|(1‹‹TXEN)
sts UCSRB,r16
; Set frame format: 8data, 2stop bit
ldi r16,(1‹‹USBS)|(3‹‹UCSZ0)
sts UCSRC,r16
ldi r16,1‹‹U2X0
sts UCSRA,r16

;-----------
_MAIN:
USART_Receive:
; Wait for data to be received
ldi r16,UCSRA
sbrs r16,RXC
rjmp USART_Receive
lds r16,UDR

mov r18,r16

USART_Transmit:
;Заменяем эту команду командами ниже
;sbis UCSRA,UDRE
lds r16,UCSRA
sbrs r16,UDRE
rjmp USART_Transmit
sts UDR,r18
delay

rjmp _MAIN
Реклама:
Archer07 вне форума  
Непрочитано 25.07.2009, 17:06  
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,394
Сказал спасибо: 2,016
Сказали Спасибо 1,356 раз(а) в 591 сообщении(ях)
nml на пути к лучшему
По умолчанию

Если хотите работать с USART - используйте кварц. Встроенный RC работает очень нестабильно, так что и калибровка вряд ли поможет. Частота будет плавать и от температуры, и от питания, и от пролетающих над платой мух.
nml вне форума  
Непрочитано 25.07.2009, 21:01  
Archer07
Прописка
 
Регистрация: 25.03.2009
Сообщений: 137
Сказал спасибо: 22
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
Archer07 на пути к лучшему
По умолчанию

Дело в том что я не имею возможности работать с внешним кварцем,так как использую AVR Butterfly атмеловскую демонстрационную отладочную плату...Поэтому мне нужно попробовать откалибровать генератор.
Не опишете процедуру,как это делается?
Archer07 вне форума  
Непрочитано 25.07.2009, 23:12  
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,394
Сказал спасибо: 2,016
Сказали Спасибо 1,356 раз(а) в 591 сообщении(ях)
nml на пути к лучшему
По умолчанию

Сообщение от Archer07
Дело в том что я не имею возможности работать с внешним кварцем,так как использую AVR Butterfly атмеловскую демонстрационную
Да... Глянул доку - плата весьма странная. ЖКИ - прекрасно, но на ней вроде как и USART предусмотрен. Может, как демо и сойдет, но в работе я бы такое ни в коем случае не использовал.

Калибровка RC генератора производится, как я понимаю, автоматом - тем числом, что занесено при изготовлении. Подгонять можно изменением OSCCAL - смотриите в даташите.

Так что варианты
1) надеяться на стабильность питания и температуры
2) перешить фузы на внешний кварц, отпаять часовой, припаять кварц и 2*27 пик
nml вне форума  
Непрочитано 26.07.2009, 00:48  
picavr
Почётный гражданин KAZUS.RUN
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,815
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию

Сообщение от Archer07
Дело в том что я не имею возможности работать с внешним кварцем,так как использую AVR Butterfly атмеловскую демонстрационную отладочную плату...
А ручками припаять, делов на 5 минут...
А если не хотите - то поставить датчик температуры и калибровать генератор в зависимости от измереной температуры корпуса и напряжения питания..
Сообщение от Archer07
Поэтому мне нужно попробовать откалибровать генератор.
Геммороя НАМНОГО больше чем просто припаять кварц )))))
Сообщение от Archer07
Не опишете процедуру,как это делается?
А даташиты читаем?.. страница 335 как раз посвящена даному вопросу...
в диапазоне - 40 +80 градусов и напряжении 2-5В частота гуляет от 7 до 8,5 МГЦ .....

Выводим наружу сигнал связаный с частотой кварца, например генератор ШИМ или просто изменения на порту.

Меряем получающуюся частоту в зависимости от температуры и напряжения. Коректируем внутрений генератор.
Как корректировать. Ищем в даташите название регистра корекции гнератора и пишем в него значения пока частота не сравняется с требуемой. Когда наберём статистику влияния температуры и напряжения на частоту - строим табличку и записываем во FLASH.

А у PIC есть серия МК nanoWATT technology, обеспечивают 1% в диапазоне -40 +125 2 - 5,5В ...
Полазил в даташитах некоторых Тини и Мегах.. такого не обнаружил...

-- Прилагается рисунок: --

picavr вне форума  
Непрочитано 26.07.2009, 09:07  
niXto
Почётный гражданин KAZUS.RUN
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
niXto на пути к лучшему
По умолчанию

Зачем так извращаться? У меня во всех проектах все команды имеют вид
F5h - код операции - данные - контрольная сумма
Контроллер смотрит первый байт, и если принято не F5h (11110101) - то частота ушла. Например если принято 11101011 - значит частота забольшая и ее надо понизить через ОСККАЛ, если например 11110010 - частота слишком маленькая. Контроллер корректирует ОСККАЛ и посылает в комп 00h с нулевым 9-м битом - а для компа все ответы от 00hдо 0Fh значит "повторить предыдущую посылку ибо неправильно принята". Синхронизация после включения питания - быстрей 0,1 секунды, в процессе работы - за 10 секунд всего 2-3 повтора. Частота 115200, температура от +10 до +30, пакет данных по 8-16 байт, в одном проекте было по 64. И обязательно контрольная сумма!
niXto вне форума  
Непрочитано 26.07.2009, 12:19  
picavr
Почётный гражданин KAZUS.RUN
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,815
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию

Сообщение от niXto
Зачем так извращаться?
Ваш случай частный, когда есть с чем синхронизироваться. В вашем случае USART.
picavr вне форума  
Непрочитано 26.07.2009, 16:21  
Archer07
Прописка
 
Регистрация: 25.03.2009
Сообщений: 137
Сказал спасибо: 22
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
Archer07 на пути к лучшему
По умолчанию

А возможен ли такой вариант:
на плате есть RTC-часы реального времени.
Это отдельный задающий источник импульсов.Может мне синхронизировать с ним?Так можно?
Archer07 вне форума  
Непрочитано 26.07.2009, 17:28  
picavr
Почётный гражданин KAZUS.RUN
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,815
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию

Сообщение от Archer07
А возможен ли такой вариант:
на плате есть RTC-часы реального времени.
Можно калибровать по ЛЮБОМУ ИСТОЧНИКУ СТАБИЛЬНОЙ ЧАСТОТЫ...

в вашем случае - изеряйте секундные (минутные,часовые) интервалы и подстраивайте внутрений генератор...
picavr вне форума  
Непрочитано 28.07.2009, 01:34  
rubel
Гражданин KAZUS.RUN
 
Аватар для rubel
 
Регистрация: 24.11.2006
Адрес: ДНР
Сообщений: 611
Сказал спасибо: 553
Сказали Спасибо 314 раз(а) в 142 сообщении(ях)
rubel на пути к лучшему
По умолчанию Re: Калибровка внутреннего генератора(atmega169)

Сообщение от Archer07
Всем привет!Хотел написать программу для контроллера,которая будет принимать байт и БЕЗ ИЗМЕНЕНИЯ отправлять его мне назад.А

получилось так:например,
tx:5
rx:35 (dec формат)
tx:9
rx:39
...
Я слышал про калибровку внутреннего тактового генератора перед инициализацией uart'а.Что это такое вообще,как ее делают.Просто для atmega16 не видел

чтобы кто-то писал про калибровку,а на m169 видимо нужно это делать.С чем это связано,температура влияет на ход генератора?Может кто-нибудь сталкивался

с этим на mega169?

код программы ниже.
P.S. Я читал документацию,там нет этого,там просто описывается стандартный для всех мег USART...

...

Калибровка 169 нужна только в контексте данного проекта - тобишь баттерфляя. Вызвано енто тем, что в нем реализованы RTC - Посему разработчики на пины

23,24 МК прицепили именно низкочастотный генератор 32768 Гц, а не обычный 4/8/16 МГц, как то сделано в большинстве проектов.
А для связи по USART(если мне не изменяет память - в проекте на скорости 9600 сделано) - использован внутр. генератор 8МГц(полеленное на 8

программируемым делитетем) = 1 МГц - на эту частоту МК откалиброван еще на заводе. Калибровка действительно нужна - в диапазоне напряжений питания 2..3 вольта(когда садится батарея) уж очень большой уход частоты внутр. генератора --› соответсвенно погрешность скорости UART. Судя по таблице, после калибровки погрешность скорости уарта на такой частоте очень низкая. А про температуру - учитывая, что плата должна использоваться в ознакомительных целях при комнатной температуре (не в индустриальном температурном диапазоне) - на калибровку по ней разработчики забили(хотя стоило бы сделать).


Пример калибровки внутреннего генратора приведен в ПО, прилагаемой к этой плате(недавно уже была тема про баттерфляй) - если считаете что она поможет.

Функция называется OSCCAL_calibration. Правда написано на Си. А вы я смотрю с асма осваивать начали... (ну может и правильно - спорить не смею)


Сообщение от Archer07
А возможен ли такой вариант:
на плате есть RTC-часы реального времени.
Это отдельный задающий источник импульсов.Может мне синхронизировать с ним?Так можно?
где вы там микросхему RTC нашли - не пойму! RTC реализовано с помощью МК!. Состав:
The AVR Butterfly Includes
- ATmega169 AVR microcontroller
- 100 segment LCD Display
- 4Mbit Dataflash
- 32kHz oscillator for RTC
- 4-way directional button
- Light sensor (LDR)
- Temperature Sensor (NTC)
- Speaker for Sound Generation
- Access to pheripherals through header connecto
- RS-232 Level Converter
- Voltage Reading 0-5V



Сообщение от picavr

А ручками припаять, делов на 5 минут...
А если не хотите - то поставить датчик температуры и калибровать генератор в зависимости от измереной температуры корпуса и напряжения питания..
насчет 5 минут - сомнительно(видели бы вы эту плату), а насчет калибровки по температуре - идея! если плату желают использовать где-нить кроме "в доме

" (недайбог конечно) - то можно, тем более что датчик температуры NTC уже на плате есть.
то мона забить в память табличку. Там ее аж 4 Мбита AT45DB (исходники рабочие есть) - и радовайся жизни c ATMEL!

P.S.
Забыл на атмел и пошел на PIC24 и выше. Зачем платить больше?
‹center›
-- Прилагается рисунок: --
‹IFRAME src = "nuke/users_images/28072009/5494592.jpg" frameborder="0" name="fr3191570" scrolling="yes" width="470" height="1074" align="bottom"›[img]nuke/users_images/28072009/5494592.jpg[/img]
‹font color=red›Рисунок не умещается на странице и поэтому сжат!‹/font›
Для того, чтобы просмотреть его полностью, щелкните здесь.

‹/IFRAME›
‹/center›

Прикрепленный файл: 4917782.rar
rubel вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Калибровка эл весов Масса-М osp28 Измерительное оборудование 4 29.09.2009 18:04
Помогите разобраться с АЦП (встроенный atmega169) Archer07 Микроконтроллеры, АЦП, память и т.д 17 02.07.2009 22:08
Калибровка внутреннего RC генератора в ATtiny2313 nagano Микроконтроллеры, АЦП, память и т.д 12 20.08.2008 10:22
Датчик влажности HIH4000-02,калибровка? Zemlyanov Автоматика и аппаратура связи 4 13.12.2007 19:02
PIC12XC805A На чсчет калибровки внутреннего генератора 4 МГЦ cnc10 Микроконтроллеры, АЦП, память и т.д 7 28.05.2007 10:02


Часовой пояс GMT +4, время: 10:07.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.