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

 
 
> mega128 -> UART1,2 -> mega162, аппаратная несовместимость, можно ли обойти ?
west329_
сообщение Nov 3 2008, 09:15
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 378
Регистрация: 10-09-07
Из: UKR/Voz
Пользователь №: 30 423



Отлаживался проект до полного завершения на м128, изначально конечно использовать такой контроллер из за двух аппаратных юартов глупо, как замену был остановлен выбор на м162 собственно из за тех же 2 апаратных юартов.

Проект был закончен, вчера, попытались пересобрать на м162.

Как мы и предпологали, заменой одной только строчки
Код
#include "iom128.h"

на
Код
#include "iom162.h"

не обойдётся.

Сначало отказался работать таймер, пришлось коректировать
Код
void timer0_init(void)
{
#ifdef __ATmega128__
TCCR0 = 0x00; //stop             //10mSec
ASSR  = 0x00; //set async mode
TCNT0 = 0xB9; //set count
OCR0  = 0x47;
TCCR0 = 0x07; //start timer
TIMSK |= 0x01; //ovf T0 active
#endif

#ifdef __ATmega162__
TCCR0 = 0x00; //stop
TCNT0 = 0xB9; //set count
OCR0  = 0x47; //set compare value
TCCR0 = 0x05; //start timer

TIMSK |= 0x02; //timer interrupt sources
#endif
}


А также немного в других частях, в целом весь проект на С то 95% кода неизменно. А вот периферия sad.gif
Но как мы не старались запустить юарты у нас не получилось sad.gif
Из возможностей юарта используем только прерывание RX, при этом как только подключается устройство к порту контроллер падает и всё, помогает только передёргивание питания.


Если кто то уже использовал в свои разработках м162 с 2 юартами откликнитесь. Интересует участок инициализации.

С ув.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
west329_
сообщение Nov 3 2008, 09:35
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 378
Регистрация: 10-09-07
Из: UKR/Voz
Пользователь №: 30 423



Код
void uart1_init(void)
{
  
UCSR1B = 0x00; //disable while setting baud rate
UCSR1A = 0x00;

UCSR1C = 0x06;

UBRR1L = 0x07; //set baud rate lo
UBRR1H = 0x00; //set baud rate hi
//UCSR1B = 0xB8;
//UCSR1A = 0x00; //enable  //???????????
UCSR1B = 0x98; //without UDR is now empty int


}


Возможно может проблема в режимах совместимости между 162 и 161 ?
Изначально при конфигурации фьюз битов я нетрогал флаг М161С, он так и остался пустым в ПониПрог
Go to the top of the page
 
+Quote Post
defunct
сообщение Nov 3 2008, 11:01
Сообщение #3


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(west329_ @ Nov 3 2008, 11:35) *
Возможно может проблема в режимах совместимости между 162 и 161 ?
Изначально при конфигурации фьюз битов я нетрогал флаг М161С, он так и остался пустым в ПониПрог

Да да, по умолчанию m162 в режиме совместимости.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 27th June 2025 - 10:59
Рейтинг@Mail.ru


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