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

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

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

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

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

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

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

 
Опции темы
Непрочитано 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,378
Сказал спасибо: 1,955
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
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,378
Сказал спасибо: 1,955
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
nml на пути к лучшему
По умолчанию

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

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

Так что варианты
1) надеяться на стабильность питания и температуры
2) перешить фузы на внешний кварц, отпаять часовой, припаять кварц и 2*27 пик
nml вне форума  
Непрочитано 26.07.2009, 00:48  
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 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.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
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.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 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.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию

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

в вашем случае - изеряйте секундные (минутные,часовые) интервалы и подстраивайте внутрений генератор...
picavr вне форума  
Непрочитано 28.07.2009, 01:34  
rubel
Гражданин KAZUS.RU
 
Аватар для rubel
 
Регистрация: 24.11.2006
Адрес: ДНР
Сообщений: 612
Сказал спасибо: 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:23.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot