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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> RS-232, не передает обратно в компьютер
XVR
сообщение Oct 18 2010, 19:53
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Дайте схему, как подключали драйвер
Go to the top of the page
 
+Quote Post
AnKing
сообщение Oct 19 2010, 04:39
Сообщение #17


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 2-02-08
Пользователь №: 34 686



Схемы нету но есть фотка

Нижний конец провода идет в комп
Go to the top of the page
 
+Quote Post
XVR
сообщение Oct 19 2010, 06:30
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



По фотке мало что видно, но попробуйте поменять местами 2й и 3й провода на раэъеме.
Надеюсь, что в Гипертерменале не забыли отключить Flow Control?
Go to the top of the page
 
+Quote Post
AnKing
сообщение Oct 19 2010, 15:06
Сообщение #19


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 2-02-08
Пользователь №: 34 686



flow control отключен
провода местами поменял, теперь моргают светодиоды приема и передачи на плате. НО в терминале все равно ничего нет

Вот схема подключения макса на stk48


Сообщение отредактировал AnKing - Oct 19 2010, 15:28
Go to the top of the page
 
+Quote Post
XVR
сообщение Oct 19 2010, 16:53
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Для вашего stk48:
1) Провода к PC должны идти один к одному (2й с stk на 2й на PC, 3-3, 5-5)
2) Поставьте перемычку на разъем MAX232.SIP (тот, что на схеме слева)
3) Не забудьте подать питание на stk48
4) Проверьте в Гипертерминале (с отключенным Flow Control)
Go to the top of the page
 
+Quote Post
AnKing
сообщение Oct 19 2010, 18:00
Сообщение #21


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 2-02-08
Пользователь №: 34 686



Цитата(XVR @ Oct 19 2010, 20:53) *
Для вашего stk48:
1) Провода к PC должны идти один к одному (2й с stk на 2й на PC, 3-3, 5-5)
2) Поставьте перемычку на разъем MAX232.SIP (тот, что на схеме слева)
3) Не забудьте подать питание на stk48
4) Проверьте в Гипертерминале (с отключенным Flow Control)

Поставил провода ровно (2-2, 3-3, 5-5)
поставил перемычку
в гипертерминале ничего назад не идет
питание на stk есть.

а с маленьким rs232toTTL конвертером - светодиоды приема/передачи моргают а в терминале тоже ничего.

Я уже и дополнительный контроллер в комп вставил с двумя ком портами(надеялся мот порты хреновые).... нет.... тот же результат...

Сообщение отредактировал AnKing - Oct 19 2010, 20:37
Go to the top of the page
 
+Quote Post
XVR
сообщение Oct 19 2010, 20:43
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Странно это. Осцилограф есть? Или хотя бы тестер? Посмотрите уровни сигналов на разъеме (2 и 3 ноги). Посмотрите отдельно с компа и с платки, а так же когда они соединены
Go to the top of the page
 
+Quote Post
Mike18
сообщение Oct 19 2010, 20:59
Сообщение #23


Местный
***

Группа: Участник
Сообщений: 206
Регистрация: 23-12-06
Из: Старых Васюков
Пользователь №: 23 821



Цитата(AnKing @ Oct 19 2010, 08:39) *
Схемы нету но есть фотка
...
Нижний конец провода идет в комп

Если на верхнем разъёме D-SUB "вилка" (похоже smile.gif), то этот разъём, IMHO, запаян "зеркально". laughing.gif
То есть провод GND, который должен быть запаян на 5-й выв. разъёма, запаян на 1-й выв., а тот,
который должен быть запаян на 2-й вывод, запаян на 4-й.
(Правильно, в P.S.)


P.S. Не, всё ещё хуже. rolleyes.gif
Кабель, судя по фотографии, должен быть "прямой".
То есть:
2-й выв. нижнего разъёма (на фотографии, коричневый провод) должен соединиться со 2-м выв. верхнего разъёма, а не с 3-м.
3-й(красный) - с 3-м, а не с 4-м.
5-й(жёлтый) - с 5-м, а не с 1-м.

Сообщение отредактировал Mike18 - Oct 19 2010, 21:33


--------------------
Время - материя тонкая и неточная...
Go to the top of the page
 
+Quote Post
AnKing
сообщение Oct 19 2010, 21:40
Сообщение #24


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 2-02-08
Пользователь №: 34 686



Цитата(Mike18 @ Oct 20 2010, 00:59) *
Если на верхнем разъёме D-SUB "вилка" (похоже smile.gif), то этот разъём, IMHO, запаян "зеркально". laughing.gif
То есть провод GND, который должен быть запаян на 5-й выв. разъёма, запаян на 1-й выв., а тот,
который должен быть запаян на 2-й вывод, запаян на 4-й.
(Правильно, в P.S.)


P.S. Не, всё ещё хуже. rolleyes.gif
Кабель, судя по фотографии, должен быть "прямой".
То есть:
2-й выв. нижнего разъёма (на фотографии, коричневый провод) должен соединиться со 2-м выв. верхнего разъёма, а не с 3-м.
3-й(красный) - с 3-м, а не с 4-м.
5-й(жёлтый) - с 5-м, а не с 1-м.


Спаял все как сказали и он заработал smile.gif
Есть только один вопрос
putchar(getchar()); - не передает все печатаемые символы а только выборочно.. например не передает 'a' англицкое
а printf() функция так вообще не работает
putchar('x'); - выводит зяпятую... и такого плана нестыковочки laughing.gif
Go to the top of the page
 
+Quote Post
AnKing
сообщение Oct 20 2010, 17:03
Сообщение #25


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 2-02-08
Пользователь №: 34 686



Переписал все в AVR Studio

Когда отправляю что-нибудь с контроллера (USART_Transmit('T')wink.gif
В терминале(RealTerm) курсор передвигается и моргает лампочка RxD
Но не передается символ.
И горит лампочка Break(Break is when RxD line is broken)
что там может быть брокен?


Код
#include <avr\io.h>
#include <util\delay.h>
#include <stdlib.h>
//#include <avr\interrupt.h>    

void USART_Transmit( unsigned char data )
{
// Wait for empty transmit buffer
while ( !( UCSR0A & (1<<UDRE0)) )
;
// Put data into buffer, sends the data
UDR0 = data;
}

unsigned char USART_Receive( void )
{
/* Wait for data to be received */
while ( !(UCSR0A & (1<<RXC0)) )
;
/* Get and return received data from buffer */
return UDR0;
}

void USART_Init( unsigned int baud )
{
// Set baud rate
UBRR0H = (unsigned char)(baud>>8);
UBRR0L = (unsigned char)baud;
// Enable receiver and transmitter
UCSR0B = (1<<RXEN0)|(1<<TXEN0);
// Set frame format: 8data, 1stop bit
UCSR0C = (0<<USBS0)|(3<<UCSZ00);
}

int main (void)
{

DDRB=0x00;

USART_Init(9600);

while(1)
    {
    //USART_Transmit(USART_Receive());
    USART_Transmit('T');
    PORTB=0x00;
    _delay_ms(500);
    PORTB=0xFF;
    _delay_ms(500);
    }
}
Go to the top of the page
 
+Quote Post
XVR
сообщение Oct 20 2010, 17:40
Сообщение #26


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Неправильно выставлен делитель для USART (UBRR0). Туда надо не скорость записывать, а коэффициент деления - читайте DS smile.gif
Go to the top of the page
 
+Quote Post
AnKing
сообщение Oct 20 2010, 18:59
Сообщение #27


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 2-02-08
Пользователь №: 34 686



Цитата(XVR @ Oct 20 2010, 21:40) *
Неправильно выставлен делитель для USART (UBRR0). Туда надо не скорость записывать, а коэффициент деления - читайте DS smile.gif


не понимаю куда в этой формуле подставлять значения
я пока еще никак не могу понять какую мне частоту лучше выставлять
на stk48 стоит резонатор даташит на которыя я найти нигде не могу (n7.3728j - то что сверху на нем написано)
ставлю ту что по умолчанию - 4 000 000
Нельзя ли примерчик подкинуть пожалста?
Go to the top of the page
 
+Quote Post
rezident
сообщение Oct 20 2010, 19:04
Сообщение #28


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(AnKing @ Oct 21 2010, 00:59) *
на stk48 стоит резонатор даташит на которыя я найти нигде не могу (n7.3728j - то что сверху на нем написано)
Это 7,3728МГц.
Go to the top of the page
 
+Quote Post
AnKing
сообщение Oct 20 2010, 19:28
Сообщение #29


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 2-02-08
Пользователь №: 34 686



В даташите при такой частоте и скорости 115200
UBRRn - 3
как это загнать в регистры?

Цитата(AnKing @ Oct 20 2010, 23:21) *
В даташите при такой частоте и скорости 115200
UBRRn - 3
как это загнать в регистры?


Все понял... подставил 3 вместо baud и все покатило.... передает символ правильно...
теперь тока есть вопрос что такое
"../usart2.c:45: warning: implicit declaration of function 'printf'"
и как ето можно исправить чтобы выводить строки
Go to the top of the page
 
+Quote Post
XVR
сообщение Oct 20 2010, 20:43
Сообщение #30


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата
теперь тока есть вопрос что такое
"../usart2.c:45: warning: implicit declaration of function 'printf'"
Сделайте #include <stdio.h> в начале программы
Go to the top of the page
 
+Quote Post

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

 


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


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