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

 
 
> Проблемы с USART, Избитая тема, но все-таки
Skaf
сообщение Jun 6 2009, 07:57
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 228
Регистрация: 4-06-09
Пользователь №: 49 940



Вот пытаюсь заставить компьютер принимать данные из контроллера по ком порту.

Но получается что-то странное. Программа просло шлет натуральный ряд от 1 до 200. Следовательно должна наблюдаться наклонная прямая, а наблюдается непойми что.. Хотя закономерность в этом есть… Вот и не понятно в чем дело. Сначала думал, что неправильно число бит настроил или скорость- но вроде правильно. Проверьте пожалуйста, наверно глаз замылился. Кварц у меня на 7.372800, что кратно стандартным скоростям ком порта.


Прикладываю скриншот и код программы



Код
/*************************************
ÏÐÈÌÅÐ ÌÈÃÀÍÈß ÑÂÅÒÎÄÈÎÄÎÌ
Ïðèìåð ïîäêëþ÷åíèÿ íà ðèñóíêå 1
**************************************/

#include <avr/io.h>
#include <util/delay.h>

//#define F_CPU 7372800UL

int main(void) {
DDRA = 0xff;
DDRB = 0b11000111;
DDRC = 0xff;
DDRD = 0xff;

SetupOutUART();

unsigned char i;

while(1){
i++;
_delay_ms(200);
PORTD = ~PORTD;
SendByte(i);
if (i==200){
i=1;
}
_delay_ms(200);
}

}

void SetupOutUART (void){
UCSRB = 0b00011000;
UCSRC = 0b10000110;
UBRRL = 7;

}

void SendByte (unsigned char data){
UDR = data;
}
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Skaf
сообщение Jun 6 2009, 17:34
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 228
Регистрация: 4-06-09
Пользователь №: 49 940



МК мега16. Совсем не работает это значит не мигает светодиод, который висит на PD7 и мигает за счет PORTD = ~PORTD;

Вот реальные байты принятые из ком порта ПК. Должен быть натуральный ряд.

Цитата
FE 03 04 FF 06 FF 08 1F FE 0B FE F8 0E F8 10 1F FF F3 F4 F1 FF 18 1F 1E 1B 1C 1F 1E FF 20 E1 FE 23 24 3F 26 FE FE FF 3A FB F9 FB FF F9 FE 3F 3E FE 3F 36 3F 38 FE 3E E7 3C 3F 3E 3F 7F FC E8 44 FF F4 FF C8 49 FE E9 4C 4D CE CF 50 FD D2 F3 F4 D5 F5 F7 BC 5F EB EF DC 5F 5E FF E0 61 7E 63 64 F6 66 F6 FF EA 7B 6C FF 6E 6F F8 F1 7E 73 74 F7 76 7F 78 7F 7E 7B 7C 7F 7E 7F 80 FE F0 FC FF F8 FF 88 8F FE FF 8C 8F 8E 8F 90 F1 BE F3 94 9F F6 FF FE 99 9E FB 9C 9F 9E 9F BF FE FF FF A5 BE FA E8 FF FE FB FD AF EE EF BF FB F3 B4 BF BE BF FF BF BE BB BC BD BE BF C0 FF FE C3 C4 FF C6 FC C8 F0 03 F8 F0 07 08 1F FE
Go to the top of the page
 
+Quote Post
defunct
сообщение Jun 7 2009, 15:53
Сообщение #3


кекс
******

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



Цитата(Skaf @ Jun 6 2009, 20:34) *
МК мега16. Совсем не работает это значит не мигает светодиод, который висит на PD7 и мигает за счет PORTD = ~PORTD;

Вот реальные байты принятые из ком порта ПК. Должен быть натуральный ряд.
FE 03 04 FF 06 FF 08 1F FE 0B FE F8 0E F8 10 1F FF F3 F4 F1 FF 18 1F 1E 1B 1C 1F 1E FF 20 E1 FE 23 24 3F

А часом это самое мигание PORTD = ~PORTD не убивает данные которые шлет UART? UART тоже висит на PORTD. (банально КЗ между PD2 и PD1 например)

Если взять во внимание что данные по UART передаются в обратном порядке, например 04h передается как "0 - 0010 0000 - 1", то получить FF после передачи 04 можно если частота передатчика завышена относительно частоты приемника, и последний "0" воспринимается как старт бит следующего символа.

08 09 0A

- 0 0001 0000 1 - 0 1001 0000 1 - 0 0101 0000 1 -
превратилось в

08 1F FE

- 0 0001 0000 x - 0 1111 1000 x - 0 0111 1111 1 -

Обилие "1111" тут тоже символ начал приниматься раньше чем нужно (в момент передачи СТОП бита / межсимвольной паузы). Что в свою очередь говорит, что частота передатчика м.б. завышена относительно приемника.


Цитата
Осциллографа нет у меня ( Максимум что могу сделать- понизить скорость передачи и посмотреть на осциллографе на базе звуковой карты ) Вечерком это тоже сделаю.

Проверте на какой частоте работает МК.
Запрограммируйте TIMER1 на тик раз в 500 тактов, в прерывании таймера меняйте какой-нибудь пин любого порта. Измерьте частоту с этого пина низкочастотным частотомером (в китайских тестерах есть частотомер со шкалой 0..20kHz). Потом домножите показания на 1000 и получите частоту МК в Hz, или разделите показания еще на 1000 и будет частота в Mhz.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Skaf   Проблемы с USART   Jun 6 2009, 07:57
- - haker_fox   Цитата(Skaf @ Jun 6 2009, 16:57) Код/****...   Jun 6 2009, 08:15
- - mempfis_   При занесении данных в реистры лучше использовать ...   Jun 6 2009, 08:28
- - Skaf   ЦитатаВ Вашем же случае придется октрывать даташит...   Jun 6 2009, 08:37
- - mempfis_   Да и ещё вопрос вы переключили МК на работу от вне...   Jun 6 2009, 08:39
- - Skaf   Нет, фьюзы я выставил верно. Если отключить кварц-...   Jun 6 2009, 09:00
|- - mempfis_   Попробуйте тогда выполнять пересылку с опросом бит...   Jun 6 2009, 09:32
|- - defunct   Цитата(Skaf @ Jun 6 2009, 12:00) Нет, фью...   Jun 6 2009, 15:14
- - Skaf   Добавил while ( !( UCSRA & (1<<UDRE)...   Jun 6 2009, 10:11
|- - mempfis_   Ну если вы уверены что у ваша программа работает п...   Jun 6 2009, 10:26
- - Skaf   У меня собран кабель-переходник на ST232. Кабель б...   Jun 6 2009, 10:29
|- - mempfis_   Цитата(Skaf @ Jun 6 2009, 13:29) У меня с...   Jun 6 2009, 10:44
- - Skaf   Не вижу смысла добавлять прием данных, пока даже п...   Jun 6 2009, 11:57
- - DpInRock   Цитата120 121 122 123 257 233 126 127 А поточнее н...   Jun 6 2009, 13:12
|- - Dog Pawlowa   Цитата(Skaf @ Jun 6 2009, 20:34) Вот реал...   Jun 7 2009, 08:12
- - @Ark   Впечатление, что скорости не совпадают... Попробуй...   Jun 7 2009, 07:52
- - Skaf   Сделал передачу одного и того же байта- 0xAA. На с...   Jun 7 2009, 08:09
- - @Ark   Зря AA взяли. Лучше F0 или 55. Частоту посмотрели ...   Jun 7 2009, 08:10
- - Skaf   ЦитатаЗря AA взяли. Лучше F0 или 55. Частоту посмо...   Jun 7 2009, 08:25
- - @Ark   У Вас COM-порт какой в компьютере? Настоящий или п...   Jun 7 2009, 09:03
- - Skaf   Обычный железный комп порт в материнке.   Jun 7 2009, 09:10
- - @Ark   Есть вероятность, что проблема с портом компьютера...   Jun 7 2009, 09:28
- - Skaf   СТранно.. до этого я слал ему по одному байту ведь...   Jun 7 2009, 10:00
- - @Ark   Если есть доступ к другому компу, то лучше провери...   Jun 7 2009, 10:17
- - Skaf   Мдя... Подключил я к другому компьютеру... байты F...   Jun 7 2009, 10:36
|- - vvs157   Цитата(Skaf @ Jun 7 2009, 14:36) Мдя... П...   Jun 7 2009, 12:23
- - @Ark   Ну это уже результат. Значит версии про неисправны...   Jun 7 2009, 10:48
- - Skaf   Хм... Резисторов нет- напрямую от контроллера к ST...   Jun 7 2009, 11:07
- - @Ark   Резисторы к питанию +5В поставьте - хуже точно не ...   Jun 7 2009, 11:13
- - Skaf   Чуть позже выложу схемку, хотя зачем она- она сама...   Jun 7 2009, 13:14
- - @Ark   Куда подключили и какого номинала? И почему только...   Jun 7 2009, 13:16
- - Skaf   Я сделал вот что. Запрограммировал мегу на постоян...   Jun 7 2009, 20:21
- - @Ark   Частота скорее всего в норме. Насчет мигания свето...   Jun 7 2009, 21:18
- - Skaf   Светодиод я отключил, толку никакого. Я понизил ...   Jun 8 2009, 18:18
- - @Ark   << Думал может помехи- но провод у меня экра...   Jun 8 2009, 18:47
- - Skaf   Я отпаял весь кабель, соотвтственно вместе с экран...   Jun 8 2009, 19:14
- - @Ark   Желательно все-таки увидеть схему. Либо преобразов...   Jun 8 2009, 19:22
- - Skaf   Преобразователь собран по описанию из статьи http:...   Jun 8 2009, 19:41
|- - OLEG_BOS   Цитата(Skaf @ Jun 8 2009, 22:41) Вот фото...   Jun 8 2009, 20:25
- - @Ark   Кто-то тут уже давал такую ссылку... Тоже проблемы...   Jun 8 2009, 20:06
- - @Ark   вот тут еще почитайте: http://electronix.ru/forum/...   Jun 8 2009, 20:29
|- - Vlad27   Цитата(@Ark @ Jun 8 2009, 23:29) <...   Jun 8 2009, 21:00
- - @Ark   <<Так и керамики как-то не видно>> Пл...   Jun 8 2009, 22:35
- - Skaf   ЦитатаА обратные стороны для обоих рисунков можете...   Jun 9 2009, 12:44
- - rezident   ИМХО стоит заменить м/с ST232 на изделие другой фи...   Jun 9 2009, 13:33
|- - Dog Pawlowa   Цитата(rezident @ Jun 9 2009, 16:33) ИМХО...   Jun 9 2009, 14:44
|- - rezident   Цитата(Dog Pawlowa @ Jun 9 2009, 20:44) Д...   Jun 9 2009, 19:57
- - ZVE   Имел похожие глюки как и у автора, причем на малых...   Jun 9 2009, 17:03
- - XVR   Проверьте тестером напряжения на выводах 2 и 6 ST ...   Jun 9 2009, 17:57
- - @Ark   Добрый вечер! Извините за отсутствие, были нео...   Jun 9 2009, 19:35
- - manul78   ... Согласен, дело в железе... Сам, давно исполь...   Jun 9 2009, 20:13
- - Skaf   ЦитатаИМХО стоит заменить м/с ST232 на изделие дру...   Jul 16 2009, 20:05


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

 


RSS Текстовая версия Сейчас: 29th July 2025 - 19:36
Рейтинг@Mail.ru


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