Easyelectronics.ru

Электроника для всех
Текущее время: 27 сен 2020, 23:16

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 17 ] 
Автор Сообщение
 Заголовок сообщения: программы- Терминалы (для UART)
СообщениеДобавлено: 14 фев 2012, 15:16 
Старожил
Аватара пользователя

Зарегистрирован: 05 ноя 2010, 16:03
Сообщения: 1510
Откуда: Екатеринбург
наблюдаю непонятную фигню:

в Terminal 1.9b отправляю в контроллер символ "1" (00110001), возвращается 10110001.

в HyperTerminal отправляю ту же единицу, возвращается единица. двойка ОК, а вместо тройки и дальше возвращается псевдографика. то есть, даже не то, что возвращает Terminal 1.9b.

контроллер просто возвращает полученный символ. все переменные unsigned char. код, натурально, из даташита на мегу.


я где-то упускаю какую-то скрытую перекодировку? внутри FT232RL например?..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: программы- Терминалы (для UART)
СообщениеДобавлено: 14 фев 2012, 15:19 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2010, 13:27
Сообщения: 2382
Откуда: Тамбовская обл.
Нет. Скорее всего со скоростью напортачено.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: программы- Терминалы (для UART)
СообщениеДобавлено: 14 фев 2012, 15:25 
Старожил
Аватара пользователя

Зарегистрирован: 05 ноя 2010, 16:03
Сообщения: 1510
Откуда: Екатеринбург
если проблемы - со скоростью, то как быть со 100% повторяемостью результата?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: программы- Терминалы (для UART)
СообщениеДобавлено: 14 фев 2012, 15:41 
Старожил

Зарегистрирован: 10 июн 2011, 23:01
Сообщения: 3459
Ant писал(а):
если проблемы - со скоростью, то как быть со 100% повторяемостью результата?

а почему результат меняться должен от раза к разу, всё одинаково?
настройки длины байта и чётности в порядке? если вдруг стоит 7 бит и чётность может что-нибудь такое быть.
но вообще-то я тоже за неправильную частоту. вместо последнего бита хватает стоповый, например.
табличку бы привели для всех символов.
отправлено, принято
0x00, 0x00
0x01, 0x01
...
для этого
в терминале 1.9 отправить строку:
$00$01$02$03$04$05$06$07$08$09$0A$0B$0C$0D$0E$0F$10$11$12$13$14$15$16$17$18$19$1A$1B$1C$1D$1E$1F$20$21$22$23$24$25$26$27$28$29$2A$2B$2C$2D$2E$2F$30$31$32$33$34$35$36$37$38$39$3A$3B$3C$3D$3E$3F$40$41$42$43$44$45$46$47$48$49$4A$4B$4C$4D$4E$4F$50$51$52$53$54$55$56$57$58$59$5A$5B$5C$5D$5E$5F$60$61$62$63$64$65$66$67$68$69$6A$6B$6C$6D$6E$6F$70$71$72$73$74$75$76$77$78$79$7A$7B$7C$7D$7E$7F$80$81$82$83$84$85$86$87$88$89$8A$8B$8C$8D$8E$8F$90$91$92$93$94$95$96$97$98$99$9A$9B$9C$9D$9E$9F$A0$A1$A2$A3$A4$A5$A6$A7$A8$A9$AA$AB$AC$AD$AE$AF$B0$B1$B2$B3$B4$B5$B6$B7$B8$B9$BA$BB$BC$BD$BE$BF$C0$C1$C2$C3$C4$C5$C6$C7$C8$C9$CA$CB$CC$CD$CE$CF$D0$D1$D2$D3$D4$D5$D6$D7$D8$D9$DA$DB$DC$DD$DE$DF$E0$E1$E2$E3$E4$E5$E6$E7$E8$E9$EA$EB$EC$ED$EE$EF$F0$F1$F2$F3$F4$F5$F6$F7$F8$F9$FA$FB$FC$FD$FE$FF


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: программы- Терминалы (для UART)
СообщениеДобавлено: 14 фев 2012, 15:43 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2010, 13:27
Сообщения: 2382
Откуда: Тамбовская обл.
Повторяемость будет, если скорость и чётность на UART МК и на компьютере выставлена правильно. Так же тактовая частота МК стабильна (используется внешний кварц)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: программы- Терминалы (для UART)
СообщениеДобавлено: 14 фев 2012, 15:50 
Старожил
Аватара пользователя

Зарегистрирован: 05 ноя 2010, 16:03
Сообщения: 1510
Откуда: Екатеринбург
Цитата:
в терминале 1.9 отправить строку:

всё не хочет, пишет "макро слишком большое"
Вложение:
1.PNG
1.PNG [ 36.61 Кб | Просмотров: 5303 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: программы- Терминалы (для UART)
СообщениеДобавлено: 14 фев 2012, 16:11 
Старожил
Аватара пользователя

Зарегистрирован: 05 ноя 2010, 16:03
Сообщения: 1510
Откуда: Екатеринбург
Код:
if(rcvdChar &(1<<7))
   {
   PORTC = (1<<PORTC5);
   _delay_ms(350);
   PORTC = (0<<PORTC5);
   }

этот кусок кода не зажигает светик, то есть насколько я понимаю собственно в полученном байте старший бит не "1".
а вот если инвертировать условие, то зажигает (это к вопросу о работоспособности самого метода проверки).

кусок кода, отправляющий символ:
Код:
void UART_SendChar(unsigned char symb)
{
   if((UCSR0A & (1<<UDRE0)) != 0)
   { UDR0 = symb;}

}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: программы- Терминалы (для UART)
СообщениеДобавлено: 14 фев 2012, 16:48 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2010, 13:27
Сообщения: 2382
Откуда: Тамбовская обл.
Покажи лучше инициализацию UART.

Совсем забыл: проверь монтаж. Промой всё, даже чистое. 232я мелкая микруха, любой пылинки будет достаточно для глюков.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: программы- Терминалы (для UART)
СообщениеДобавлено: 14 фев 2012, 17:33 
Старожил
Аватара пользователя

Зарегистрирован: 23 янв 2012, 00:31
Сообщения: 1799
Откуда: Новокузнецк
и внешний кварц? от фт232 до МК линии TX RX проводами идут? если да, то длинные провода?

_________________
elisey.su


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: программы- Терминалы (для UART)
СообщениеДобавлено: 14 фев 2012, 21:14 
Старожил
Аватара пользователя

Зарегистрирован: 05 ноя 2010, 16:03
Сообщения: 1510
Откуда: Екатеринбург
поставил внешний кварц 20МГц, кондеры (старые совеЦкие, других выводных на нужную емкость не нашлось), и на ровно тех же проводах всё пошло ОК

больше всего боялся снова фьюзы не так выставить.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: программы- Терминалы (для UART)
СообщениеДобавлено: 14 фев 2012, 21:39 
Старожил

Зарегистрирован: 08 мар 2011, 00:46
Сообщения: 959
Откуда: Санкт-Петербург
А может кто-нибудь посоветует терминалку под симбиан тач?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: программы- Терминалы (для UART)
СообщениеДобавлено: 14 фев 2012, 21:47 
Супермодератор
Аватара пользователя

Зарегистрирован: 23 апр 2010, 12:58
Сообщения: 5893
Откуда: Москва/Саратов
Ant писал(а):
поставил внешний кварц 20МГц, кондеры (старые совеЦкие, других выводных на нужную емкость не нашлось), и на ровно тех же проводах всё пошло ОК

больше всего боялся снова фьюзы не так выставить.
А до этого что было? 8 Мгц от встроенного?

_________________
http://d.64h.me/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: программы- Терминалы (для UART)
СообщениеДобавлено: 14 фев 2012, 22:25 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2010, 13:27
Сообщения: 2382
Откуда: Тамбовская обл.
На встроенном далеко не уедешь - частота может сильно отличаться от расчетной. Возможно в этом проблема и была...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: программы- Терминалы (для UART)
СообщениеДобавлено: 15 фев 2012, 06:41 
Супермодератор
Аватара пользователя

Зарегистрирован: 23 апр 2010, 12:58
Сообщения: 5893
Откуда: Москва/Саратов
Обычно решалось корректировкой, после чего стабильно работало

_________________
http://d.64h.me/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: программы- Терминалы (для UART)
СообщениеДобавлено: 15 фев 2012, 07:05 
Старожил
Аватара пользователя

Зарегистрирован: 05 ноя 2010, 16:03
Сообщения: 1510
Откуда: Екатеринбург
Цитата:
А до этого что было?

заводской 1МГц

Цитата:
Обычно решалось корректировкой

не очень понятно, как корректировать - мерять период осциллом?
проще найти кварц


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: программы- Терминалы (для UART)
СообщениеДобавлено: 15 фев 2012, 07:11 
Супермодератор
Аватара пользователя

Зарегистрирован: 23 апр 2010, 12:58
Сообщения: 5893
Откуда: Москва/Саратов
А может с заводским из-за низкой частоты не удавалось выставить скорость с требуемой точностью? Что там получается если вручную значение UBRR расчитать?

А корректировку можно разными способами провести. Видел апноут где был расписан алгоритм автоматической подстройки тактового генератора

_________________
http://d.64h.me/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: программы- Терминалы (для UART)
СообщениеДобавлено: 15 фев 2012, 08:22 
Старожил
Аватара пользователя

Зарегистрирован: 05 ноя 2010, 16:03
Сообщения: 1510
Откуда: Екатеринбург
вот у меня другой вопрос возник)
как научиться понимать маркировку кварцев. а то есть несколько штук, но решительно непонятно, там мегагерцы или килогерцы. то есть, я прошу не помочь опознать конкретные детальки, а подсказать мест, где ищут описание принципов
fuck it

такой вопрос знатокам:
какой метод обозначения конца передаваемого пакета данных считается общепринятым?
то есть, например легко добивать строку нулём, отправлять её такую в uart, ловить мегой и как-то обрабатывать. типа, мега видит символ нуля и понимает, что принят законченный кусок дерьма данных, можно начинать его парсить и действовать. опять же, while(*string) прекрасно останавливается по достижении нуля в строке.
но что если мне нужно передать строку из нулей?

можно добивать строку каким-нибудь 0x0D (\r). но прожуёт ли это while(*string)?

короче, чем правильные кодеры терминируют строки обмена данными через uart?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 17 ] 


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB