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

 
 
> Нужна помощ с UART ATmega16, Подскажите в чем дело ?
Costia
сообщение Aug 3 2008, 15:13
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 24
Регистрация: 23-06-08
Пользователь №: 38 507



МК ATmega16 (dip) обвес нечего примечательного диодный каскад и пара кнопочек + кондюк резистр и диод на резе.

MAx232EPE (dip) обвес конденсаторы(105) выполненено по схеме


Все это питаю от USB

Пишу на CodeVisioAVR

Код
#include <mega16.h>
#include <stdio.h>

void initialization(void){
DDRA = 0xFF;
PORTA = 0xFF;
TCCR0 = 0x05;

UCSRA=0x00;
UCSRB=0x10;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x0C; }

void main (void){
initialization();
while (1){
PORTA++;
putsf("hello world");
while (!(TIFR&0x01));
TIFR = 0x01;
};
}




прошиваю через COM с помощью UNIPROF
дальше все это подключаю и мониторю с помощью LookRS232 и ComVC и там и там "helloworld" не наблюдаю но обе программы конектятся и пишут что все гуд , попытался замкнут ношки max232 *11 - 12) сообщения назад не возращается . попытался замкнут 2-3 ножки комп порта результат нулевой. вследствии того что прошиваю я через com port отпадает вариант что он не рабочий. Диоды на мк мигают все гуд значет мк тоже работает.

материал брал с http://www.123avr.com/z4.htm
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 24)
LamerMan
сообщение Aug 3 2008, 16:51
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 44
Регистрация: 9-03-08
Пользователь №: 35 755



Для начала можно попробовать просто записать один символ в регистр uart, не пользуясь putsf.
Когда ты замыкаешь на компе TX и RX по идее буковки, которые ты посылаешь через терминал, должны появляться в терминале без включенного локального эха. Если локальное эхо включено - появятся сразу две буквы. Вообще ничего не появляется?

Сообщение отредактировал LamerMan - Aug 3 2008, 16:52
Go to the top of the page
 
+Quote Post
SysRq
сообщение Aug 3 2008, 17:11
Сообщение #3


Чайник, 1 литр
****

Группа: Свой
Сообщений: 655
Регистрация: 17-05-06
Из: Moscow
Пользователь №: 17 168



По линку написано, что перемычки CTS\RTS и DTR\DSR не обязательны. Ежели у вас их нет, то управление потоком в настройках порта на компе ставить исключительно как "Нет", иначе замыкание RX на TX в любом месте схемы ничего не даст.

Ну и разделительной емкости между питанием и землей не видать, у меня MAX3232 не заводился без нее толком при питании от USB О_о

Сообщение отредактировал SysRq - Aug 3 2008, 17:12
Go to the top of the page
 
+Quote Post
Costia
сообщение Aug 3 2008, 17:38
Сообщение #4


Участник
*

Группа: Новичок
Сообщений: 24
Регистрация: 23-06-08
Пользователь №: 38 507



Цитата(SysRq @ Aug 3 2008, 21:11) *
По линку написано, что перемычки CTS\RTS и DTR\DSR не обязательны. Ежели у вас их нет, то управление потоком в настройках порта на компе ставить исключительно как "Нет", иначе замыкание RX на TX в любом месте схемы ничего не даст.

Ну и разделительной емкости между питанием и землей не видать, у меня MAX3232 не заводился без нее толком при питании от USB О_о



Если не сложно можно по подробнее что за разделительная емкость ?

да, у меня стоят перемычки .

Если точнее то когда ставлю замыкаю Rx Tx на максе и в програме COmVS отсылаю символы то возращаются какито цифры ???

УБрал перемычки CTS-RTS и DTR-DSR замкнул Rx Tx LookRS232 молчит как партезеан а ComVs при передачи сылается на ошибку .
Go to the top of the page
 
+Quote Post
SysRq
сообщение Aug 3 2008, 17:39
Сообщение #5


Чайник, 1 литр
****

Группа: Свой
Сообщений: 655
Регистрация: 17-05-06
Из: Moscow
Пользователь №: 17 168



Цитата(Costia @ Aug 3 2008, 21:30) *
Если не сложно можно по подробнее что за разделительная емкость ?

Go to the top of the page
 
+Quote Post
Costia
сообщение Aug 3 2008, 18:02
Сообщение #6


Участник
*

Группа: Новичок
Сообщений: 24
Регистрация: 23-06-08
Пользователь №: 38 507



Я вот про это и говарил .... я проверял все уже по 10 раз все правельно(кроме моего написания) все по схеме все прозвонено дважды и просмотренно и все не работает ........ Конденсатор подцепил между питанием и землей и нефига не пашет а прога comvs выдает ошибку при отправки ?????????? а есть каконебуд мение капризный интерфейс ?

Я тут подумал что по идеи надо сначало добиватся чтобы при замыкания Tx Rx на комп порте должны биты возращатся . Если ктонебуд делал можно поподробно, с помощью каких программ мониторили и как замыкали ?
Go to the top of the page
 
+Quote Post
LamerMan
сообщение Aug 3 2008, 18:10
Сообщение #7


Участник
*

Группа: Новичок
Сообщений: 44
Регистрация: 9-03-08
Пользователь №: 35 755



Цитата(Costia @ Aug 3 2008, 22:02) *
Я тут подумал что по идеи надо сначало добиватся чтобы при замыкания Tx Rx на комп порте должны биты возращатся . Если ктонебуд делал можно поподробно, с помощью каких программ мониторили и как замыкали ?


в linux есть программа minicom, в windows есть hyper terminal. Я просто замыкаю rx и tx и смотрю как выводится эхо вводимых данных. Как было сказано выше нужно выставить управление потоком в none, если стоит hardware или software.
Go to the top of the page
 
+Quote Post
Aesthete Animus
сообщение Aug 3 2008, 19:08
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 222
Регистрация: 9-06-07
Пользователь №: 28 317



Советую такую последовательность действий:
1. Запускаете терминалку (я предпочитаю Zoc, для непривередливых подойдет и HyperTerminal), замыкаете txd rxd без подключения Вашего девайса и наблюдаете эхо сигнал. В противном случае ищем багу на компе.
2. Подключаете Ваш девайс и дергаете ножкой txd со стороны PC, при этом щупаете мультиметром за нужку 12 максика (за rxd со стороны меги) и наблюдаете за изменением сигнала. Если все происходит ожидаемо - можно двигаться дальше. Иначе - ищем багу в цепи txd.
3. Замыкаете выходы txd-rxd максика со стороны меги. При этом мегу нужно либо вовсе вытащить (если она в дип колодке) или стереть прошивку в меге - во избежании несчатных случаев. Опять же, дергаете ножкой txd со стороны PC и наблюдаете за ножкой 14 максика (RXD со стороны PC). Уровень на ней должен изменяться примерно от примерно -7.5 до +7.5 вольт в карйних положениях. Если это так, то все должно работать. (Естесственно, txd rxd надо разомкнуть)

P.S. Проверьте, снять ли ресет с контроллера
P.P.S. Ссылки на сайт avr123 на этом форуме считаются дурным тоном.
P.P.P.S. Если всеже перейдете на avr gcc, то с примерами будет проще wink.gif

Так же отмечу, что врятли кто будет разбираться, что означает строчка типа такой
"UCSRC=0x86"
Обычно этом записывают ввиде битовых сдвигов в перемешку с битовым "или" - читать такой код проще.
Go to the top of the page
 
+Quote Post
Costia
сообщение Aug 3 2008, 19:22
Сообщение #9


Участник
*

Группа: Новичок
Сообщений: 24
Регистрация: 23-06-08
Пользователь №: 38 507



Попробовал Виндовз терминал , выполнен он конечно в лучших традициях виндовз но я не догнал как там сообщения отсылать , попробовал файл - не увенчалось успехом говарит о сетевой ошибки . управления потоком стоит - ноне и когда я в программе ComVs отсылаю сообщения возращаются биты но в текст он не переводит а тока в 10ричиную систему . как только отключаю питание max232 биты не приходят следственно .... чтота есть но хваленая LookRS232 все есче молчит
Go to the top of the page
 
+Quote Post
Aesthete Animus
сообщение Aug 3 2008, 19:32
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 222
Регистрация: 9-06-07
Пользователь №: 28 317



Цитата(Costia @ Aug 3 2008, 23:22) *
Попробовал Виндовз терминал , выполнен он конечно в лучших традициях виндовз но я не догнал как там сообщения отсылать , попробовал файл - не увенчалось успехом говарит о сетевой ошибки . управления потоком стоит - ноне и когда я в программе ComVs отсылаю сообщения возращаются биты но в текст он не переводит а тока в 10ричиную систему . как только отключаю питание max232 биты не приходят следственно .... чтота есть но хваленая LookRS232 все есче молчит

Вообще-то, при нажатии на клавиши терминалка посылает в порт код нажатого символа... О каком сообщении Вы говорите, какие биты у вас там ходят - мне не понятно. Скачайте триальную версию zoc`а.
Go to the top of the page
 
+Quote Post
Costia
сообщение Aug 3 2008, 20:14
Сообщение #11


Участник
*

Группа: Новичок
Сообщений: 24
Регистрация: 23-06-08
Пользователь №: 38 507



Попробовал эту программу чесно говаря лень даже в нее везжать ..
что касается битов то они просто в логе пишутся .

Колличество установленных СОМ портов:
COM3
COM1

Базовый регистр порта : $3F8

00:02:42 $FF 1 1 1 1 1 1 1 1 [ 1 ] 255

Подключено к : Com1

00:02:51 $00 0 0 0 0 0 0 0 0 [ 2 ] 0
00:03:30 $31 0 0 0 1 0 1 0 0 [ 3 ] 72
00:03:30 $00 0 0 0 0 0 0 0 0 [ 4 ] 0


Какие могут быть причины отсуствия " Эхо " я бы уже полез в биос но дело в том что прошиваю мк я через комп порт и не жалуюсь ???

все я разобрался с виндовым терминалом там одно окно и в него призодят символы которые приходят от порта я питания выключа и по клаве стучу и символов нет клаву покдлюча И ВОТ ОНО эХОООО
ураа !!!!

судя по своим сообщениям я туплю не хуже своиего UART а .. извеняюсь просто спать хочется Но это дело принципов !

так я замыкал контакты на максе тоесть и адптер в порядке но когда мк поключаю hello world нету тоесть проблема с мк .... дайте пожалуйста код для мк который какоенебуд сообщения через уарт передает с учетом что у меня встроенный тактовый гениратор и мега16
Go to the top of the page
 
+Quote Post
Aesthete Animus
сообщение Aug 3 2008, 20:15
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 222
Регистрация: 9-06-07
Пользователь №: 28 317



Цитата(Costia @ Aug 4 2008, 00:11) *
все я разобрался с виндовым терминалом там одно окно и в него призодят символы которые приходят от порта я питания выключа и по клаве стучу и символов нет клаву покдлюча И ВОТ ОНО эХОООО
ураа !!!!

Ну да, так и должно быть... Кстати, где стоит перемычка, со стороны меги или со стороны PC? Или это мега шлет эхо?
Go to the top of the page
 
+Quote Post
Costia
сообщение Aug 3 2008, 20:23
Сообщение #13


Участник
*

Группа: Новичок
Сообщений: 24
Регистрация: 23-06-08
Пользователь №: 38 507



со стороны меги я выдернул её из колодки и зымакаю ножки ..
Go to the top of the page
 
+Quote Post
Aesthete Animus
сообщение Aug 3 2008, 20:32
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 222
Регистрация: 9-06-07
Пользователь №: 28 317



Теперь кстати не лишним будет заставить как раз мегу слать эхо. Я так обычно проверяю работоспособность ком порта wink.gif
Go to the top of the page
 
+Quote Post
Costia
сообщение Aug 3 2008, 20:49
Сообщение #15


Участник
*

Группа: Новичок
Сообщений: 24
Регистрация: 23-06-08
Пользователь №: 38 507



а код даш ???
Go to the top of the page
 
+Quote Post
Aesthete Animus
сообщение Aug 3 2008, 20:55
Сообщение #16


Местный
***

Группа: Свой
Сообщений: 222
Регистрация: 9-06-07
Пользователь №: 28 317



Пример срихтован из какого-то старого исходника для avr gcc, так что где-то могут быть опечатки, а может вообще не заработает под CV biggrin.gif

Код
#include ... // Я хз какие хидеры надо подключать в CV,

#define F_CPU 16000000UL
#define BAUD 38400 // Скорость COM порта

void uart_init(unsigned short ubrr)
{
    UBRRH = (unsigned char)(ubrr >> 8);
    UBRRL = (unsigned char)ubrr;
    UCSRB = (1 << RXEN)|(1 << TXEN);    
    UCSRC = (1 << URSEL)|(1 << UCSZ1)|(1 << UCSZ0);
}


uart_send(unsigned char b)
{
    while ( !(UCSRA & (1 << UDRE)) );
    UDR = b;
}

unsigned char uart_rcvr(void)
{
    while ( !(UCSRA & (1<<RXC)) );
    return UDR;
}


int main(void)
{
    unsigned char b;

    uart_init(F_CPU/16/BAUD - 1);

    for (;;)
    {
        b = uart_rcvr(); // Блокируемся и ждем символа
        uart_send(b); // Блокируемся и ждем пока символ отправится
    }

    return 0;
}
Go to the top of the page
 
+Quote Post
Costia
сообщение Aug 3 2008, 21:35
Сообщение #17


Участник
*

Группа: Новичок
Сообщений: 24
Регистрация: 23-06-08
Пользователь №: 38 507



одним словом код странный проще самому изобразить ... напиши плиз как ты реализуеш отправку какогонебуд сообщения по uart, а лучше какуюниебуд инфу
Go to the top of the page
 
+Quote Post
Aesthete Animus
сообщение Aug 3 2008, 22:52
Сообщение #18


Местный
***

Группа: Свой
Сообщений: 222
Регистрация: 9-06-07
Пользователь №: 28 317



Ну во первых, о каком сообщении идет речь? RS232 - байт-ориентированный интерфейс. Вы можите послать байт, можите послать последовательность (независимых байтов), можите сами порезат это на пакеты и слать "сообщения". Главное что нужно иметь - это функция посылки/ приема одного байта. У меня это uart_recv/uart_send. Дальше, если хотим послать буфер, то в простейшем случае делаем так:

Код
void uart_write(void *vbuffer, size_t size)
{
    register unsigned char *buffer = (unsigned char*)buffer;
    
    while (size--)
    {
        uart_send(*buffer);
        buffer++;
    }
}

int
main (void)
{
    ...
    char message[] = "Hello, world\n";
    
    uart_write(message, sizeof(message)); // message отводится на стадии компиляции,
                                                             // поэтому sizeof здесь допустимо использовать.
    ...
}


В Си есть такая замечательная функция как printf - незаменимая вещь при отладке. Разберитесь, как ее использовать с вашим компилятором. Заодно, покурите доки на то, что вообще такое RS232 и как он работает. В общем, RTFM...
Go to the top of the page
 
+Quote Post
Costia
сообщение Aug 5 2008, 18:42
Сообщение #19


Участник
*

Группа: Новичок
Сообщений: 24
Регистрация: 23-06-08
Пользователь №: 38 507



Уважаемые тут возник такой момент что я подумал а вдруг avr123 пиздеж и провакация и сделал все в лучших традициях этой статьи
http://www.pcports.ru/articles/avr6.php
и что вы думает все заработало ... но вот суть вопроса . в программе Terminal v1.9b все работает как и обещали а вот в программе LookRS232 & COMVS нефига не работает тоесть не эха не сообщения ... чем это может быть вызвано ?
Go to the top of the page
 
+Quote Post
Aesthete Animus
сообщение Aug 5 2008, 19:30
Сообщение #20


Местный
***

Группа: Свой
Сообщений: 222
Регистрация: 9-06-07
Пользователь №: 28 317



Цитата(Costia @ Aug 5 2008, 22:42) *
...чем это может быть вызвано ?

Это скорее всего связано с игнорированием Вами официальной документации, а также с поиском готовых решений вместо создания своих! К тому же, пример http://www.pcports.ru/articles/avr6.php сделан по меньшей мере безграмототно.
Go to the top of the page
 
+Quote Post
Costia
сообщение Aug 5 2008, 20:14
Сообщение #21


Участник
*

Группа: Новичок
Сообщений: 24
Регистрация: 23-06-08
Пользователь №: 38 507



Дело в том что я глубоко убежден что многие вещи нельзя преодалеть с прышка а следовательно если действовать по шагова то надо разобратся с железом и проверить его роботоспособность другова варианта кроме как использования чужова кода я не вижу !
Go to the top of the page
 
+Quote Post
Aesthete Animus
сообщение Aug 5 2008, 20:32
Сообщение #22


Местный
***

Группа: Свой
Сообщений: 222
Регистрация: 9-06-07
Пользователь №: 28 317



Цитата(Costia @ Aug 6 2008, 00:14) *
...другова варианта кроме как использования чужова кода я не вижу !

Другой вариант - читать даташиты, Application Notes.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 5 2008, 20:40
Сообщение #23


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Costia @ Aug 5 2008, 22:14) *
Дело в том что...

Модератор:
Дело в том, что на форуме принят русский язык общения. Не сочтите за труд придерживаться хоть сколь-нибудь близких к литературному русскому норм правописания.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Costia
сообщение Aug 5 2008, 20:48
Сообщение #24


Участник
*

Группа: Новичок
Сообщений: 24
Регистрация: 23-06-08
Пользователь №: 38 507



НАсчет официальной документации .. я буду вам благодарен если поделитесь такой . енглиш знаю только азы поэтому дш на енгле читать затруднительно .

Модератор . Я учту ваши замечания .
Go to the top of the page
 
+Quote Post
Aesthete Animus
сообщение Aug 5 2008, 20:56
Сообщение #25


Местный
***

Группа: Свой
Сообщений: 222
Регистрация: 9-06-07
Пользователь №: 28 317



Во-первых, http://atmel.com/dyn/resources/prod_documents/doc2466.pdf
Во-вторых, здес много полезного http://atmel.com/dyn/products/app_notes.asp?family_id=607
В-третьих, я лично не встречал хороших переводов даташитов. Да и не нужно это, доки пишутся простым техническим языком - достаточно элементарных знаний языка и электронного словаря под рукой.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 09:42
Рейтинг@Mail.ru


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