Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Не работает USART на скорости 19200 с кварцом 11,0592
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
Anthoni
USART посылает не то что надо, взглянул на осциллограф - скорость сильно медленная. Кварц 11,0592, фузы уже вроде все перепробовал устанавливать (CKOPT,CKSEL1,SUT1..0) - безрезультатно. Вроде всё работает верно, кроме USART. В протезусе всё нормально... Помогите!
chief_olimp
такие вопросы нужно задавать в разделе для начинающих это раз.
Здесь не так много ясновидящих это два.
Где кусок программы? На чем проверял в железе?
Anthoni
Как бывалый - имею право smile.gif .
Проверял софтом ПК (заведомо рабочим), написаным для этого МК и работающим на ск.19200. +
Цитата
взглянул на осциллограф
, +
Цитата
В протезусе всё нормально...



Код
#define FCLK 11059200    
#define BAUD 19200
// Calculate the UBRR setting
#define UBRR ((long) FCLK/(16*BAUD)-1)

инициализация:
Код
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: BAUD
UCSRA=0x00;
UCSRB=0x98;
UCSRC=0x86;
UBRRH=UBRR >> 8;
UBRRL=UBRR & 0xFF;


смотрел в регистры: 35 - загружается в UBBRL (что по документации соответствует 19200 с кварцем 11,0592)
GDI
А какой камень у вас? Какой компилятор? Какие инклюды подключены (какой камень выбран в настройках проекта)?

Вообще, хорошо заданный вопрос содержит в себе половину ответа, а у вас явно плохо заданный вопрос.
chief_olimp
Раньше был опыт использования связки ПК - МК? Если нет то давай сюда схему кабеля распиновку
Duhas
битик удвоения скорости не трогали?
lackertong
Ну да, вроде все верно. Схема нужна, сильно медленно, может там прерывания чужие идут бесконтрольно, процессор просто зашивается.
Anthoni
Цитата(GDI @ Apr 29 2010, 11:42) *
А какой камень у вас? Какой компилятор? Какие инклюды подключены (какой камень выбран в настройках проекта)?

Вообще, хорошо заданный вопрос содержит в себе половину ответа, а у вас явно плохо заданный вопрос.


CVAVR 2.03.4

Код
Chip type           : ATmega8515
Program type        : Application
Clock frequency     : 11,059200 MHz
Memory model        : Small
External RAM size   : 0
Data Stack size     : 128
*****************************************************/

#include <mega8515.h>
#include <stdio.h>
#include <stdlib.h>
#include <delay.h>
#include <string.h>

#define FCLK 11059200    
#define BAUD 19200
// Calculate the UBRR setting
#define UBRR ((long) FCLK/(16*BAUD)-1)



Цитата(chief_olimp @ Apr 29 2010, 11:44) *
Раньше был опыт использования связки ПК - МК? Если нет то давай сюда схему кабеля распиновку


Да, всё правильно связано, через max232. Есть даже рабочий зашитый проц (AT89S8253), который нормально работает в этой схеме, по работе которого писал для меги8515. Он должен ответить при правильном получении байта, но увы байт сильно "медленный".

Цитата(Duhas @ Apr 29 2010, 12:13) *
битик удвоения скорости не трогали?

Пока нетрогал smile.gif, в протеусе работает нормально, через виртуальный ком-порт связано с приложением и там же тестировалось/отлаживалось...

Цитата(lackertong @ Apr 29 2010, 12:27) *
Ну да, вроде все верно. Схема нужна, сильно медленно, может там прерывания чужие идут бесконтрольно, процессор просто зашивается.

Вот это щас и проверю...
Anthoni
Так и есть, проблема оказалась в прерываниях. По запросу внешнего прерывания МК должен был слать 1 байт на ПК, прерывание было настроено - ISC11, ISC10: 0 0 The low level of INT1 generates an interrupt request, видимо МК слал кучу одинаковых байтов пока нога была в "0" (что мне и показалось на осциллографе как "медленный" 1 байт smile.gif ). Вылечил установкой в MCUCR ISC11, ISC10: 1 0 - The falling edge of INT1 generates an interrupt request.
Всем большое спасибо за оперативный отклик! CLOSED!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.