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

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

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

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

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

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

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы
Непрочитано 13.11.2013, 19:53  
den_sad
Прохожий
 
Регистрация: 16.08.2009
Сообщений: 8
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
den_sad на пути к лучшему
По умолчанию Atmega162 и второй USART

Нужна помошь.. уже всю голову себе сломал. У меня был проект под Atmega16 с использованием UART/ Теперь возникла необходимость перекомпилировать проект под Atmega162A-AU. Использую второй UART
вот вырезка кода по инициализации UART
Код:
#define F_CPU 7372800
#define BAUD 19200
#include baud.h  //там макросы для расчета UBRR
void USART_Init(void)
{
  UBRR1H = UBRRH_VALUE;
  UBRR1L = UBRRL_VALUE;
  
   UCSR1A 0;
  
  UCSR1B = (1‹‹RXCIE1)|(1‹‹TXCIE1)|(1‹‹RXEN1)|(1‹‹TXEN1); //разр. прерыв при приеме и передачи, разр приема, разр передачи.
  UCSR1C = (1‹‹URSEL1)|(1‹‹UCSZ11)|(1‹‹UCSZ01); //размер слова 8 разрядов
}
Проблема следующего характера. в терминале (через ft232) приходит какой то бред на отправку символа микроконтроллером. Например отправляю 0x01 а приходит 0xB1

Подключил логический анализатор и увидел что если замкнуть RX и TX на ft232 и отправить 0x01 то прриходит 0x01 и длительность посылки на скорости 19200 около 475мкс. А вот с микроконтроллера приходит сигнал такой же формы но с длительностью фрейма около 20 мс!!!
Кварц стоит 7372800Гц , фьюз делителя на 8 отключен . Самое интересное длительность фрейма с микроконтроллера не поддается изменению - меняю BAUD на 115200 - то же самое, стал напрямую прописывать UBRR1H=0 UBRR1L=23 что соответсвует скорости 19200 по даташиту - ничего не меняется...

В чем может быть загвозlка? такое впечатление что есть какой то предделитель для Usart1? но тогда почему не изменяется длительность при изменении UBRR1?

Выручайте к пятнице плата должна сдаваться руководству
Реклама:

Последний раз редактировалось dosikus; 13.11.2013 в 20:15.
den_sad вне форума  
Непрочитано 13.11.2013, 20:16  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,018
Сказал спасибо: 936
Сказали Спасибо 2,270 раз(а) в 1,565 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Atmega162 и второй USART

den_sad, Оформляйте код как положено.
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 13.11.2013, 20:23  
den_sad
Прохожий
 
Регистрация: 16.08.2009
Сообщений: 8
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
den_sad на пути к лучшему
По умолчанию Re: Atmega162 и второй USART

А что не так? Как правильно?

понял.. надо было теги ставить


А по проблеме не подскажете? Перелопатил даташит - все вроде правильно, подозревал кварц, но _delay_ms(1000) дает секундную задержку, значит с кварцем порядок

Последний раз редактировалось den_sad; 13.11.2013 в 21:15.
den_sad вне форума  
Непрочитано 14.11.2013, 08:15  
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Atmega162 и второй USART

RTFM

The UBRRH Register shares the same I/O location as the UCSRC Register. Therefore some
special consideration must be taken when accessing this I/O location.
Write Access When doing a write access of this I/O location, the high bit of the value written, the USART Register Select (URSEL) bit, controlswhich one of the two registers that will be written. If URSEL is
zero during a write operation, the UBRRH value will be updated. If URSEL is one, the UCSRC
setting will be updated.
The following code examples show how to access the two registers:
niXto вне форума  
Непрочитано 14.11.2013, 09:23  
den_sad
Прохожий
 
Регистрация: 16.08.2009
Сообщений: 8
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
den_sad на пути к лучшему
По умолчанию Re: Atmega162 и второй USART

Сообщение от niXto Посмотреть сообщение
RTFM

The UBRRH Register shares the same I/O location as the UCSRC Register. Therefore some
special consideration must be taken when accessing this I/O location.
Write Access When doing a write access of this I/O location, the high bit of the value written, the USART Register Select (URSEL) bit, controlswhich one of the two registers that will be written. If URSEL is
zero during a write operation, the UBRRH value will be updated. If URSEL is one, the UCSRC
setting will be updated.
The following code examples show how to access the two registers:

И этот момент я проверил, в коде не видно, но URSEL бит равен 0 когда я записываю данные в регистр, и как видно из кода, когда я записываю UCSR1C бит устанавливается в 1... код я сам брал из даташита
den_sad вне форума  
Непрочитано 15.11.2013, 11:38  
kovkaa
Частый гость
 
Регистрация: 15.11.2007
Сообщений: 34
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
kovkaa на пути к лучшему
По умолчанию Re: Atmega162 и второй USART

Сообщение от den_sad Посмотреть сообщение
Нужна помошь.. уже всю голову себе сломал.
Как вариант могу посоветовать для инициализации твоих усартов использовать CodeVision от HPInfortech. Скачай Евалюшин версию, воспользуйся кодевизардом с указанием типа проца и скорости. Хоть я сам пишу на иаре CV-шным генератором пользуюсь часто для настройки аппаратки. Лично у меня никаких проблем на 162-й меге с двумя портами не было.
kovkaa вне форума  
Непрочитано 15.11.2013, 12:38  
den_sad
Прохожий
 
Регистрация: 16.08.2009
Сообщений: 8
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
den_sad на пути к лучшему
По умолчанию Re: Atmega162 и второй USART

Сообщение от kovkaa Посмотреть сообщение
Как вариант могу посоветовать для инициализации твоих усартов использовать CodeVision от HPInfortech. Скачай Евалюшин версию, воспользуйся кодевизардом с указанием типа проца и скорости. Хоть я сам пишу на иаре CV-шным генератором пользуюсь часто для настройки аппаратки. Лично у меня никаких проблем на 162-й меге с двумя портами не было.
Раньше я так тоже делал, теперь стараюсь пользоваться даташитами..

Проблема решилась. Просто заново собрал проект - то есть сделал чистый, копи-паст и все заработало. Встречаюсь с таким уже где то раз третий за 2 года работы с аврками. Необъяснимо но факт. Avr studio 6.1? программаторы USBASP и avrdude через ft2322
den_sad вне форума  
Непрочитано 15.11.2013, 14:12  
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Atmega162 и второй USART

Может, фуз совместимости с мега161 стоял?
niXto вне форума  
Непрочитано 15.11.2013, 14:20  
den_sad
Прохожий
 
Регистрация: 16.08.2009
Сообщений: 8
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
den_sad на пути к лучшему
По умолчанию Re: Atmega162 и второй USART

Сообщение от niXto Посмотреть сообщение
Может, фуз совместимости с мега161 стоял?
Нет, фьюзы были запрограммированы один раз и больше их не трогал
den_sad вне форума  
Непрочитано 15.11.2013, 15:04  
kovkaa
Частый гость
 
Регистрация: 15.11.2007
Сообщений: 34
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
kovkaa на пути к лучшему
По умолчанию Re: Atmega162 и второй USART

Сообщение от den_sad Посмотреть сообщение
Раньше я так тоже делал, теперь стараюсь пользоваться даташитами..
Это тоже полезно, пару раз в начале, а потом начинает надоедать)
kovkaa вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
STM32L152 прерывания от USART _Слон_ ARM 1 10.11.2013 21:12
USART MEGA8 yuta_86 Микроконтроллеры, АЦП, память и т.д 23 12.02.2012 04:30
Как использовать функцию printf для выовода на второй USART igla_85 Микроконтроллеры, АЦП, память и т.д 1 01.06.2009 02:35
Помогите разобраться с USART в CodeVisionAVR vendim Микроконтроллеры, АЦП, память и т.д 20 26.07.2007 16:42
Вопрос по мультипроцессорному обмену USART MEGA8 vikont-s Микроконтроллеры, АЦП, память и т.д 0 10.08.2006 14:55


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


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