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

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

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

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

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

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

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

 
Опции темы
Непрочитано 23.10.2012, 15:57  
Zemlyanov
Гражданин KAZUS.RU
 
Регистрация: 17.09.2006
Сообщений: 633
Сказал спасибо: 78
Сказали Спасибо 69 раз(а) в 57 сообщении(ях)
Zemlyanov на пути к лучшему
По умолчанию Программный UART для Mega8. Проблемы

Необходимо сделать программный UART на Mega8. Так как делаю его первый раз то за основу взял пример для МК Mega16 .
В CV создал проект для Mega8 ,вставил исходники программного UART для Mega16. Скомпилировал. Запустил в PROTEUS все работает. Но в примере программного UART для M16 были настройки для кварца 16 МГц и скорости 4800. А мне на Mega8 нужна скорость 9600 и кварц 110592 ( так как хочу использовать и аппаратный UART) . Первое что я сделал поменял скорость на нужную мне 9600 вместо 4800, проверил в Proteus , все работает нормально. Затем решил в настройках поставить кврац нужной мне частоты 11.0592 Мгц. Запустил в Proteus и тут началась фигня, UART начал передавать кашу. В чем проблема я не пойму, то ли это глючит Proteus, или я где-то ступил.
Посмотрите кто может, что не так, файлы для CV и Proteusa прикрепил .
Вложения:
Тип файла: rar UartProgMega8.rar (57.3 Кб, 274 просмотров)
Реклама:

Последний раз редактировалось Zemlyanov; 23.10.2012 в 15:59.
Zemlyanov вне форума  
Непрочитано 23.10.2012, 16:03  
Zemlyanov
Гражданин KAZUS.RU
 
Регистрация: 17.09.2006
Сообщений: 633
Сказал спасибо: 78
Сказали Спасибо 69 раз(а) в 57 сообщении(ях)
Zemlyanov на пути к лучшему
По умолчанию Re: Программный UART для Mega8 .Проблемы

Настройки UART находятся в заголовочном файле softuart.h


Код:
 //______________________Настройки___________________  __________________
#ifndef F_CPU
   #define F_CPU       16000000L      //тактовая частота мк
#endif
#define PRESCALER      64L            //прескалер таймера. 
#define BAUD_RATE      9600L          //скорость обмена 

#define IN_BUF_SIZE    32             //вместимость приемного буфера

//пин приемника
#define RX_PINX       PIND
#define RX_PORTX      PORTD
#define RX_DDRX       DDRD
#define RX_PIN        7  

//пин передатчика
#define TX_PORTX      PORTD
#define TX_DDRX       DDRD
#define TX_PIN        6
Zemlyanov вне форума  
Непрочитано 28.10.2012, 17:24  
Zemlyanov
Гражданин KAZUS.RU
 
Регистрация: 17.09.2006
Сообщений: 633
Сказал спасибо: 78
Сказали Спасибо 69 раз(а) в 57 сообщении(ях)
Zemlyanov на пути к лучшему
По умолчанию Re: Программный UART для Mega8 .Проблемы

Ну что ,никто не подскажет в чем проблема ? Куда смотреть, почему с кварцем 16мгц на скорости 9600 проблем нет а с кварцем 11.0592 мгц есть. Что править, куда смотреть, реально ли вообще при моем кварце передавать данные с такой скорость?
Zemlyanov вне форума  
Непрочитано 28.10.2012, 18:01  
_guardianangel
Почётный гражданин KAZUS.RU
 
Регистрация: 01.04.2009
Адрес: Рязань
Сообщений: 1,140
Сказал спасибо: 21
Сказали Спасибо 635 раз(а) в 344 сообщении(ях)
_guardianangel на пути к лучшему
По умолчанию Re: Программный UART для Mega8 .Проблемы

Сообщение от Zemlyanov Посмотреть сообщение
#define F_CPU 16000000L
Замените на
Код:
#define F_CPU 11059200L
_guardianangel вне форума  
Непрочитано 28.10.2012, 18:08  
jump
Почётный гражданин KAZUS.RU
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 7,981
Сказал спасибо: 0
Сказали Спасибо 4,939 раз(а) в 2,369 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: Программный UART для Mega8 .Проблемы

Zemlyanov,
а в железе что? проверьте константы, рассчитываемые CV для разных кварцев и сравните
jump вне форума  
Непрочитано 28.10.2012, 18:10  
Zemlyanov
Гражданин KAZUS.RU
 
Регистрация: 17.09.2006
Сообщений: 633
Сказал спасибо: 78
Сказали Спасибо 69 раз(а) в 57 сообщении(ях)
Zemlyanov на пути к лучшему
По умолчанию Re: Программный UART для Mega8 .Проблемы

Да это я менял. Я уже все что можно поменял. Сперва думал что Proteus глючит . Но в железе тоже самое. Мне кажется что тут дело с расчетом значения для таймера и частотой кварца.

Вот расчет для таймера
Код:
#define TIMER_CONST (0xff - (F_CPU/(BAUD_RATE*3*PRESCALER)))   

#if PRESCALER==1L 
  #define CSXX (0‹‹CS02)|(0‹‹CS01)|(1‹‹CS00)
#elif PRESCALER==8L 
  #define CSXX (0‹‹CS02)|(1‹‹CS01)|(0‹‹CS00)
#elif PRESCALER==64L 
  #define CSXX (0‹‹CS02)|(1‹‹CS01)|(1‹‹CS00)
#elif PRESCALER==256L 
  #define CSXX (1‹‹CS02)|(0‹‹CS01)|(0‹‹CS00)
#elif PRESCALER==1024L 
  #define CSXX (1‹‹CS02)|(1‹‹CS01)|(1‹‹CS00)
Zemlyanov вне форума  
Непрочитано 28.10.2012, 18:11  
Zemlyanov
Гражданин KAZUS.RU
 
Регистрация: 17.09.2006
Сообщений: 633
Сказал спасибо: 78
Сказали Спасибо 69 раз(а) в 57 сообщении(ях)
Zemlyanov на пути к лучшему
По умолчанию Re: Программный UART для Mega8 .Проблемы

Таймер генерирует прерывания, соответствующие интервалам передачи одного бита данных (104 мкс) при скорости обмена 9600 бит/с.
Zemlyanov вне форума  
Непрочитано 28.10.2012, 18:45  
Ara41
Почётный гражданин KAZUS.RU
 
Регистрация: 30.09.2006
Сообщений: 1,560
Сказал спасибо: 158
Сказали Спасибо 661 раз(а) в 431 сообщении(ях)
Ara41 на пути к лучшему
По умолчанию Re: Программный UART для Mega8 .Проблемы

Если переставить частоту на 11,0592 МГц, то можно поглядеть в дебагере, что ложится в TCNT0. Для этой частоты получается FA, т.е. FF-FA==5.
А в соответствии с формулой 11059200/(9600*3*64)==6. Небольшая нестыковка. Попробуйте поправить для своей частоты формулу на:
#define TIMER_CONST (0xff - (F_CPU/(BAUD_RATE*3*PRESCALER))+1)
Ara41 вне форума  
Сказали "Спасибо" Ara41
Zemlyanov (28.10.2012)
Непрочитано 28.10.2012, 18:55  
Zemlyanov
Гражданин KAZUS.RU
 
Регистрация: 17.09.2006
Сообщений: 633
Сказал спасибо: 78
Сказали Спасибо 69 раз(а) в 57 сообщении(ях)
Zemlyanov на пути к лучшему
По умолчанию Re: Программный UART для Mega8 .Проблемы

Урааа !!! Помогло . Ara41 спасибо вам. В Proteuse все заработало нормально на скорости 9600. Осталось проверить в железе.
Zemlyanov вне форума  
Непрочитано 29.12.2012, 18:41  
ZiperRu
Частый гость
 
Регистрация: 25.06.2009
Сообщений: 12
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
ZiperRu на пути к лучшему
По умолчанию Re: Программный UART для Mega8 .Проблемы

Сообщение от Ara41 Посмотреть сообщение
Если переставить частоту на 11,0592 МГц, то можно поглядеть в дебагере, что ложится в TCNT0. Для этой частоты получается FA, т.е. FF-FA==5.
А в соответствии с формулой 11059200/(9600*3*64)==6. Небольшая нестыковка. Попробуйте поправить для своей частоты формулу на:
#define TIMER_CONST (0xff - (F_CPU/(BAUD_RATE*3*PRESCALER))+1)
чёто я непойму как юто так? в какм отладчике сматреть? мне надо настроить резонатор стоит 16М а скорость нужна 19200 как мне это реализовать? добрые люди всё оппробовал нето приходит в протеусе
ZiperRu вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какие могут быть проблемы при вкл/откл UART в ATmega128? Don_Ambrosio Микроконтроллеры, АЦП, память и т.д 26 12.06.2014 13:53
Программный SPI Slave для AVR artyomugr Микроконтроллеры, АЦП, память и т.д 17 28.06.2012 13:55
Программный приемник по UART Fair88Play Микроконтроллеры, АЦП, память и т.д 23 21.06.2012 18:27
Проблемы с передачей по UART, нужна помощь sansan25 Микроконтроллеры, АЦП, память и т.д 3 28.01.2012 13:19
Проблемы с приемом данных через UART Tiny 2313 SoapMaker Микроконтроллеры, АЦП, память и т.д 0 08.04.2008 10:35


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


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