Сотая тема об Atmega и UART
-
germess2006
- Родился
- Сообщения: 10
- Зарегистрирован: Чт ноя 03, 2016 17:07:48
Сотая тема об Atmega и UART
Привет уважаемые Коты, у меня проблема с uart. Подключил Атмега8 через uart к ноутбуку, в терминале отправляю поочерёдно 1 2 3 4 5, а в ответ получаю в том же терминале L f & s M. Пробовал 3 терминала, во всех одинаково.
Схема подключения стандартная, как во многих примерах, Атмега8 с кварцевым резонатором на 8 МГц, 2 конденсатора на 22 пФ, питание от USB ноутбука, 1 кОм резистор между RESET и +5 В, Rx Tx подключил к Tx Rx переходника (кабель USB - COM), кабель в ноутбук, дрова стоят.
Кабель проверял, Tx Rx замыкал, всё отправленное возвращается в точности.
Первый контроллер был SMD, выпаял запаял аналогичный, опять то же, потом собрал ту же схему на DIP - опять то же.
Минус виртуального ком порта и схемы пробовал соединять, ничего не меняется (они все равно в USB одного и того же ноутбука вставляются), внутрисхемный программатор отцеплял.
Фьюзы уже по всякому перепробовал от отчаяния. В код вижене стоит правильная частота, в коде правильная, фьюзы вроде правильные, но не помогает.
Пробовал и на внутренней частоте 4 и 8, и с разными кварцами 4, 8, и с идеальными частотами которые без помех, всё одно, выводит совсем не то что посылаю, а если подаю питание контроллера не от ноута а от от телефонной зарядки 5 В на 2,1 А, то идуд непрерывно кракозябли в терминал, пока общий минус не соединён у источника питания и USB-COM кабеля.
Разные программы уже перепробовал, и просто UDR = '1' и ="1" ни что не помогает, менял местами Rx Tx.
Пробовал в протеусе, там и фьюзы нормально и программа нормально идёт, там всё работает без проблем, но вот в реальности ерунда выходит. Купил для сравнения Ардуино УНО, там сразу эта программа с тем же кабелем USB-COM в терминале всё возвращает, светодиодиком пробовал мигать по входящим данным 1 и 0 итд уже 4 дня гуглю везде сравниваю, у всех проблемма обычно с частотой подключения или контроллера, вроде всё перепроверил. Пытаюсь на 9600 подключаться но в общем весь диапазон перебрал на всякий случай, но 9600 явно адекватнее идёт, с неё и расчёт в программе.
ПОМОГИТЕ пожалуйста кто сможет допереть что не так кроме кривых рук!
Вот код:
#include <mega8.h>
#include <io.h>
#include <delay.h>
#include <stdio.h>
#define F_CPU 8000000 // Рабочая частота контроллера
#define BAUD 9600 // Скорость обмена данными
#define UBRRL_value (F_CPU/(BAUD*16))-1
int init_UART(void) // Инициализация
{
UBRRL = UBRRL_value; //Младшие 8 бит UBRRL_value
UBRRH = UBRRL_value >> 8; //Старшие 8 бит UBRRL_value
UCSRA=0b00000000;
UCSRB=0b00011000;
UCSRC=0b10000110;
}
void send_Uart(unsigned char c) // Отправка байта
{
while(!(UCSRA&(1<<UDRE))) // Устанавливается, когда регистр свободен
{}
UDR = c;
}
void send_Uart_str(unsigned char *s)// Отправка строки
{
while (*s != 0) send_Uart(*s++);
}
void send_int_Uart(unsigned int c)// Отправка числа от 0000 до 9999
{
unsigned char temp;
c=c%10000;
temp=c/100;
send_Uart(temp/10+'0');
send_Uart(temp%10+'0');
temp=c%100;;
send_Uart(temp/10+'0');
send_Uart(temp%10+'0');
}
unsigned char getch_Uart(void)// Получение байта
{
while(!(UCSRA&(1<<RXC))) // Устанавливается, когда регистр свободен
{}
return UDR;
}
void main(void)
{
char data;
PORTB=0x00;
DDRB=0x01;
init_UART(); // инициализация UART
delay_ms(1000); // задержка 1c
send_Uart_str("abc-defg");// отправка строки
send_Uart(13); // перенос строки
send_int_Uart(2013); // отправка числа
send_Uart(13); // перенос строки
while(1)
{
if(UCSRA&(1<<RXC)) // если пришёл байт по UART
{
send_Uart(getch_Uart());
PORTB = 0b00000001;
delay_ms(50);
PORTB = 0b00000000;
}
}
}
Схема подключения стандартная, как во многих примерах, Атмега8 с кварцевым резонатором на 8 МГц, 2 конденсатора на 22 пФ, питание от USB ноутбука, 1 кОм резистор между RESET и +5 В, Rx Tx подключил к Tx Rx переходника (кабель USB - COM), кабель в ноутбук, дрова стоят.
Кабель проверял, Tx Rx замыкал, всё отправленное возвращается в точности.
Первый контроллер был SMD, выпаял запаял аналогичный, опять то же, потом собрал ту же схему на DIP - опять то же.
Минус виртуального ком порта и схемы пробовал соединять, ничего не меняется (они все равно в USB одного и того же ноутбука вставляются), внутрисхемный программатор отцеплял.
Фьюзы уже по всякому перепробовал от отчаяния. В код вижене стоит правильная частота, в коде правильная, фьюзы вроде правильные, но не помогает.
Пробовал и на внутренней частоте 4 и 8, и с разными кварцами 4, 8, и с идеальными частотами которые без помех, всё одно, выводит совсем не то что посылаю, а если подаю питание контроллера не от ноута а от от телефонной зарядки 5 В на 2,1 А, то идуд непрерывно кракозябли в терминал, пока общий минус не соединён у источника питания и USB-COM кабеля.
Разные программы уже перепробовал, и просто UDR = '1' и ="1" ни что не помогает, менял местами Rx Tx.
Пробовал в протеусе, там и фьюзы нормально и программа нормально идёт, там всё работает без проблем, но вот в реальности ерунда выходит. Купил для сравнения Ардуино УНО, там сразу эта программа с тем же кабелем USB-COM в терминале всё возвращает, светодиодиком пробовал мигать по входящим данным 1 и 0 итд уже 4 дня гуглю везде сравниваю, у всех проблемма обычно с частотой подключения или контроллера, вроде всё перепроверил. Пытаюсь на 9600 подключаться но в общем весь диапазон перебрал на всякий случай, но 9600 явно адекватнее идёт, с неё и расчёт в программе.
ПОМОГИТЕ пожалуйста кто сможет допереть что не так кроме кривых рук!
Вот код:
#include <mega8.h>
#include <io.h>
#include <delay.h>
#include <stdio.h>
#define F_CPU 8000000 // Рабочая частота контроллера
#define BAUD 9600 // Скорость обмена данными
#define UBRRL_value (F_CPU/(BAUD*16))-1
int init_UART(void) // Инициализация
{
UBRRL = UBRRL_value; //Младшие 8 бит UBRRL_value
UBRRH = UBRRL_value >> 8; //Старшие 8 бит UBRRL_value
UCSRA=0b00000000;
UCSRB=0b00011000;
UCSRC=0b10000110;
}
void send_Uart(unsigned char c) // Отправка байта
{
while(!(UCSRA&(1<<UDRE))) // Устанавливается, когда регистр свободен
{}
UDR = c;
}
void send_Uart_str(unsigned char *s)// Отправка строки
{
while (*s != 0) send_Uart(*s++);
}
void send_int_Uart(unsigned int c)// Отправка числа от 0000 до 9999
{
unsigned char temp;
c=c%10000;
temp=c/100;
send_Uart(temp/10+'0');
send_Uart(temp%10+'0');
temp=c%100;;
send_Uart(temp/10+'0');
send_Uart(temp%10+'0');
}
unsigned char getch_Uart(void)// Получение байта
{
while(!(UCSRA&(1<<RXC))) // Устанавливается, когда регистр свободен
{}
return UDR;
}
void main(void)
{
char data;
PORTB=0x00;
DDRB=0x01;
init_UART(); // инициализация UART
delay_ms(1000); // задержка 1c
send_Uart_str("abc-defg");// отправка строки
send_Uart(13); // перенос строки
send_int_Uart(2013); // отправка числа
send_Uart(13); // перенос строки
while(1)
{
if(UCSRA&(1<<RXC)) // если пришёл байт по UART
{
send_Uart(getch_Uart());
PORTB = 0b00000001;
delay_ms(50);
PORTB = 0b00000000;
}
}
}
- Реклама
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Сотая тема об Atmega и UART
А вот это вот :нормально приходит ?

Код: Выделить всё
send_Uart_str("abc-defg");// отправка строки
send_Uart(13); // перенос строки
send_int_Uart(2013); // отправка числа
send_Uart(13); // перенос строки
А это вот зря делалименял местами Rx Tx
Re: Сотая тема об Atmega и UART
Есть техническая сторона проблемы, не знаю с чем связана, но многие ноутбуки не правильно работают с преобразователями USB - RS232, даже на FT232.
Использовал различные драйвера и сертифицированное программное обеспечение для частотных преобразователей и промышленных контроллеров, но мой нетбук DNS не видел этих устройств, а снифер показывал о передачи какой-то лажи.
Короче выбросить этот нетбук хотел.
По оконцовке напоследок поставил на него SSD-диск. Мало того, что загружаться стал влёт, так и все мои программы заработали корректно.
Использовал различные драйвера и сертифицированное программное обеспечение для частотных преобразователей и промышленных контроллеров, но мой нетбук DNS не видел этих устройств, а снифер показывал о передачи какой-то лажи.
Короче выбросить этот нетбук хотел.
По оконцовке напоследок поставил на него SSD-диск. Мало того, что загружаться стал влёт, так и все мои программы заработали корректно.
- Mishany
- Электрический кот
- Сообщения: 1031
- Зарегистрирован: Чт июн 20, 2013 00:00:58
- Откуда: москва, м.Сходненская
Re: Сотая тема об Atmega и UART
Кроме скорости есть еще куча настроек в терминале....бит четности, стоп бит......
Re: Сотая тема об Atmega и UART
germess2006
По мне, у Вас стоят неправильно стоят FUSE-биты
RC-генератор сейчас работает на частоте 2МГц Для кварца >1МГц
По мне, у Вас стоят неправильно стоят FUSE-биты
RC-генератор сейчас работает на частоте 2МГц Для кварца >1МГц
Последний раз редактировалось akl Сб ноя 05, 2016 01:45:08, всего редактировалось 2 раза.
- Реклама
-
germess2006
- Родился
- Сообщения: 10
- Зарегистрирован: Чт ноя 03, 2016 17:07:48
Re: Сотая тема об Atmega и UART
Аlex писал(а):А вот это вот :нормально приходит ?Код: Выделить всё
send_Uart_str("abc-defg");// отправка строки send_Uart(13); // перенос строки send_int_Uart(2013); // отправка числа send_Uart(13); // перенос строки
А это вот зря делалименял местами Rx Tx
Нет, указанный код приходит при включении контроллера в виде кракозяблей различных, но в протеусе приходит нормально.
На последнем контроллере, который сейчас стоит, не менял Rx Tx местами. А вообще, на что это может повлиять? можно убить UART ?
Добавлено after 5 minutes 2 seconds:
У меня не нет бук, а ноутбук, то же асус, только чистый (DNS, по крайней мере до переименования в DEXP, заказывали ноуты у ASUS, даже гарантия была 2 года по началу, как на ASUS).Vov123 писал(а):Есть техническая сторона проблемы, не знаю с чем связана, но многие ноутбуки не правильно работают с преобразователями USB - RS232, даже на FT232.
Использовал различные драйвера и сертифицированное программное обеспечение для частотных преобразователей и промышленных контроллеров, но мой нетбук DNS не видел этих устройств, а снифер показывал о передачи какой-то лажи.
Короче выбросить этот нетбук хотел.
По оконцовке напоследок поставил на него SSD-диск. Мало того, что загружаться стал влёт, так и все мои программы заработали корректно.
У меня врятли с переходником проблема, так как с ним ардуино работает и при замыкании р т он возвращает то же самое без глюков.
Добавлено after 2 minutes 43 seconds:
В терминале выставляю так же как в программе. Скрин от риты приложил, но я пользовал 3 терминала они все так себя ведут.Mishany писал(а):Кроме скорости есть еще куча настроек в терминале....бит четности, стоп бит......
Добавлено after 51 minute 2 seconds:
ХЗ на счёт фьюзов, вроде перепроверял должны быть как у меня.. но перепрошил на ваши фьюзы, ничего не поменялось, ни частота мигания светодиода ни глюки UARTа.akl писал(а):germess2006
По мне, у Вас стоят неправильно стоят FUSE-биты
RC-генератор сейчас работает на частоте 2МГц
Для кварца >1МГц Можно провести тест передачи одного байта из mega8 простой программойСпойлер
Код: Выделить всё
.include "m8def.inc" .equ Fo=8000000 ;.equ Fo=14745600 .org 0 RESET: ; RJMP START START: IN R16,UCSRC CBR R16,7 OUT UCSRC,R16 LDI XH,HIGH(Fo/16/9600-1) LDI XL,LOW(Fo/16/9600-1) OUT UBRRH,XH OUT UBRRL,XL LDI R16,1<<TxEN OUT UCSRB,R16 LOAD_UDR: CBI UCSRA,TxC LDI R16,$49 OUT UDR,R16 WAIT: SBIS UCSRA,TxC RJMP WAIT SBIW Y,1 BRNE PC-1 RJMP LOAD_UDR .EXIT
Пробовал ваш файл прошить cvavr выдаёт что-то про переполнение буфера, если ASM код ваш пробую впихнуть в новый проект на кодвижене, то тоже что-то про флэш память пишет, может он ассемблер просто так не прошивает? может настроить что-то нужно... на C++ программы шьются без этой ошибки.
Re: Сотая тема об Atmega и UART
Какой переходник? Если это действительно USB-COM, а не USB-UART, то необходим еще транслятор уровней. Для проверки достаточно измерить напряжение на TX переходника при отсутствии передачи. Если -5..-12В - труЪ RS232, если 0В - "китайский" RS232, если +3.3-5В - TTL UART. Без транслятора будет работать только в последнем варианте.
Если нет токоограничивающих резисторов в линиях TX/RX - как нефиг делать.germess2006 писал(а):На последнем контроллере, который сейчас стоит, не менял Rx Tx местами. А вообще, на что это может повлиять? можно убить UART ?
Re: Сотая тема об Atmega и UART
Я бы для начала посоветовал убрать все и написать что-то типа такого:
У вас в коде есть скользкое место:
getch_Uart() и так проверяет RXC, так что смысла в дополнительной проверке особо нет.
И еще... Я бы так не писал:
Да, это круто и красиво, но, во-первых, меня всегда напрягает, когда нельзя уверенно сказать, в каком порядке будут выполняться операторы (за этим надо лезть в справку...), а, во-вторых, тут нет защиты от неверно сформированной строки.
Ну и я не буду говорить про то, что писать в регистры конфигурации значения в стиле 0b00011000 нехорошо. Это очень затрудняет анализ кода.
Код: Выделить всё
void main(void)
{
uint8_t b;
UCSR0B=(1<<RXEN0) | (1<<TXEN0);
UBRR0=51; //9600BPS @ 8MHz MCU clock
while (1)
{
while (!(UCSR0A & (1<<RXC0)));
b=UDR0;
UDR0=b;
while (!(UCSR0A & (1<<TXC0)));
}
}
Код: Выделить всё
if(UCSRA&(1<<RXC)) // если пришёл байт по UART
{
send_Uart(getch_Uart());
...
И еще... Я бы так не писал:
Код: Выделить всё
while (*s != 0) send_Uart(*s++);
Ну и я не буду говорить про то, что писать в регистры конфигурации значения в стиле 0b00011000 нехорошо. Это очень затрудняет анализ кода.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
-
germess2006
- Родился
- Сообщения: 10
- Зарегистрирован: Чт ноя 03, 2016 17:07:48
Re: Сотая тема об Atmega и UART
Попробовал самый простой код, сгенерировал код виженом, убрал лишнее
#include <mega8.h>
#include <delay.h>
#include <stdio.h>
void main(void)
{
DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (1<<DDB0);
PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=(0<<RXC) | (0<<TXC) | (0<<UDRE) | (0<<FE) | (0<<DOR) | (0<<UPE) | (0<<U2X) | (0<<MPCM);
UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (1<<RXEN) | (1<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);
UCSRC=(1<<URSEL) | (0<<UMSEL) | (0<<UPM1) | (0<<UPM0) | (0<<USBS) | (1<<UCSZ1) | (1<<UCSZ0) | (0<<UCPOL);
UBRRH=0x00;
UBRRL=0x33;
while (1)
{
UDR='2';
PORTB.0=1;
delay_ms(1000);
PORTB.0=0;
delay_ms(1000);
}
}
Мигает с частотой раз в секунду, визуально. В терминал выдаёт вместо "1" букву "g" вместо "2" цифру "3"
При том что со старым кодом выдавал вместо 1 - L, вместо 2 - f
Фьюзы прошил и со второй галочкой и без галочек в кодвижене, ни чего не изменилось, проверил, отпаял резонатор, контроллер стал невидимкой, значит шились фьюзы под резонатор.
Добавлено after 2 minutes 11 seconds:
#include <mega8.h>
#include <delay.h>
#include <stdio.h>
void main(void)
{
DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (1<<DDB0);
PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=(0<<RXC) | (0<<TXC) | (0<<UDRE) | (0<<FE) | (0<<DOR) | (0<<UPE) | (0<<U2X) | (0<<MPCM);
UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (1<<RXEN) | (1<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);
UCSRC=(1<<URSEL) | (0<<UMSEL) | (0<<UPM1) | (0<<UPM0) | (0<<USBS) | (1<<UCSZ1) | (1<<UCSZ0) | (0<<UCPOL);
UBRRH=0x00;
UBRRL=0x33;
while (1)
{
UDR='2';
PORTB.0=1;
delay_ms(1000);
PORTB.0=0;
delay_ms(1000);
}
}
Мигает с частотой раз в секунду, визуально. В терминал выдаёт вместо "1" букву "g" вместо "2" цифру "3"
При том что со старым кодом выдавал вместо 1 - L, вместо 2 - f
Фьюзы прошил и со второй галочкой и без галочек в кодвижене, ни чего не изменилось, проверил, отпаял резонатор, контроллер стал невидимкой, значит шились фьюзы под резонатор.
Добавлено after 2 minutes 11 seconds:
Кабель USB-COM выдаёт -5 ВVga писал(а):Какой переходник? Если это действительно USB-COM, а не USB-UART, то необходим еще транслятор уровней. Для проверки достаточно измерить напряжение на TX переходника при отсутствии передачи. Если -5..-12В - труЪ RS232, если 0В - "китайский" RS232, если +3.3-5В - TTL UART. Без транслятора будет работать только в последнем варианте.Если нет токоограничивающих резисторов в линиях TX/RX - как нефиг делать.germess2006 писал(а):На последнем контроллере, который сейчас стоит, не менял Rx Tx местами. А вообще, на что это может повлиять? можно убить UART ?
Re: Сотая тема об Atmega и UART
Для публикации кода есть тег code. Читать кашу без индентов желания мало.
Все правильно. MAX232 в помощь.germess2006 писал(а):Кабель USB-COM выдаёт -5 В
- COKPOWEHEU
- Говорящий с текстолитом
- Сообщения: 1525
- Зарегистрирован: Чт июн 10, 2010 20:11:19
Re: Сотая тема об Atmega и UART
ЗряПопробовал самый простой код, сгенерировал код виженом
Не заметно. Как были бесполезные комментарии так и остались. Как были выражения (0<<RXC) так и остались. Как не было форматирования, так и не появилось.убрал лишнее
В таком случае соберите переходник COM-UART на max232 либо транзисторах.Кабель USB-COM выдаёт -5 В
Re: Сотая тема об Atmega и UART
Э нет. Там было UCSRA = 0b00000000. Это большая разница. Хотя эти ненужные нули замусоривают, но теперь хотя бы не требуется изучать даташит для выяснения, какие биты ставятся.COKPOWEHEU писал(а):Как были выражения (0<<RXC) так и остались.
К тому же, выкинута большая куча сомнительного кода, проверить оставшиеся 10 строк на корректность куда проще.
Но меня несколько удивляют получаемые данные. По моим прикидкам, '1' должно превращаться в 'p'. Возможно, есть еще косяки с битрейтом.
-
germess2006
- Родился
- Сообщения: 10
- Зарегистрирован: Чт ноя 03, 2016 17:07:48
Re: Сотая тема об Atmega и UART
Выходит мой кабелина китайский имитирует реальный COM порт? А почему ардуина работает с этим кабелем?COKPOWEHEU писал(а):ЗряПопробовал самый простой код, сгенерировал код виженомНе заметно. Как были бесполезные комментарии так и остались. Как были выражения (0<<RXC) так и остались. Как не было форматирования, так и не появилось.убрал лишнееВ таком случае соберите переходник COM-UART на max232 либо транзисторах.Кабель USB-COM выдаёт -5 В
Re: Сотая тема об Atmega и UART
А что у тебя за ардуино, собственно, и как ты к ней кабель подключаешь? Насколько я знаю, старые имели полноценный ком-порт (и, соответственно, имели RS232-драйвер), а новые имеют свой USB-COM, к которому Rx/Tx и подключены.
Re: Сотая тема об Atmega и UART
Так и у него вроде такой же usb-com и он конечно нормально с мегой работать должен. Может у меги просто частота внутреннего генератора кривая сильно ? Я бы кварц влепил на попробовать.
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Re: Сотая тема об Atmega и UART
Начнем с того, что чипов USB-COM я еще не видел. Даже у китайцев. Есть чипы USB-UART, и с МК они совместимы непосредственно. Но вот с COM-портом они не совместимы, поэтому в правильных переходниках помимо USB-UART мостика стоит RS-232 драйвер. Скажем, MAX211. Потому для использования такого переходника с МК требуется драйвер и со стороны МК.
Re: Сотая тема об Atmega и UART
Я понимаю что это троллинг, но всё-же, товарищ пытается сделать соединение RS232(TTL) с USB портом ноутбука, а не USB с портом RS232 PC.
Причём здесь MAX?
И ТС надо проверить свой девайс при работе с обычным PC.
Причём здесь MAX?
И ТС надо проверить свой девайс при работе с обычным PC.
Re: Сотая тема об Atmega и UART
Лучше бы понимать матчасть, тогда и троллинг не почудится.Vov123 писал(а):Я понимаю что это троллинг
При том, что ТС (если, конечно, проведенные им измерения корректны) использует переходник USB-COM, а не USB-UART. Который, внезапно, реализует спецификацию COM-порта, тобишь RS-232, а не TTL UART.Vov123 писал(а):Причём здесь MAX?
Re: Сотая тема об Atmega и UART
Чтобы разгребсти всю эту кашу и понять в чем проблема, необходимо:
1) фото переходника крупным планом чтобы видно было какие микросхемы там стоят, а то достойные коты устали уже гадать на кофейной гуще, что у вас там на самом деле.
2) для тестирования переходника необходимо замкнуть контакты TX и RX на переходнике и в любой программе "терминала" попробовать по отправлять что нибудь и посмотреть что придет. Придти должно все что отправили иначе проблема в переходнике.
1) фото переходника крупным планом чтобы видно было какие микросхемы там стоят, а то достойные коты устали уже гадать на кофейной гуще, что у вас там на самом деле.
2) для тестирования переходника необходимо замкнуть контакты TX и RX на переходнике и в любой программе "терминала" попробовать по отправлять что нибудь и посмотреть что придет. Придти должно все что отправили иначе проблема в переходнике.
-
germess2006
- Родился
- Сообщения: 10
- Зарегистрирован: Чт ноя 03, 2016 17:07:48
Re: Сотая тема об Atmega и UART
Извиняюсь, торопился в прошлый раз из дома выходить замерил в подключенном состоянии, сейчас отключил микросхему от кабеля, у кабеля между Rx и минусом 0 В, между Tx и минусом 0 В.
Уважаемые коты, переходник такой нашел в тырнете, ссылку прилагаю, модель HL-340, а судя по описанию в тырнет магазине, он позиционируется как "Кабель HL-340 (USB в RS232)"
http://dalincom.ru/goods-3731.html
Контакты я замыкал уже сто раз, всё в терминале возвращается, кабель этот подсоединял к Arduino UNO, с ней он работал чётко.
Если этот злодейский кабель мне неделю моЦк парил из-за RS232, то что мне делать? как для подключения к обычному COM порту MAX232 подпаять?
Уважаемые коты, переходник такой нашел в тырнете, ссылку прилагаю, модель HL-340, а судя по описанию в тырнет магазине, он позиционируется как "Кабель HL-340 (USB в RS232)"
http://dalincom.ru/goods-3731.html
Контакты я замыкал уже сто раз, всё в терминале возвращается, кабель этот подсоединял к Arduino UNO, с ней он работал чётко.
Если этот злодейский кабель мне неделю моЦк парил из-за RS232, то что мне делать? как для подключения к обычному COM порту MAX232 подпаять?


