| Автор |
Съобщение |
|
Ugeen
Ранг: Новодошъл
Регистриран на: Пон Яну 16, 2006 5:20 pm Мнения: 122 Местоположение: гр. Горна Оряховица
|
 Проблеми с RS232
Колеги,направих едно устройство с ATMEGA8.То трябва да измерва разни параметри и да ги праща към PC-то.Симулирах работата на устройството с Протеус и модела на COMPIM.Направих си виртуални портове.Използвам няколко терминални програми.Всичко работи идеално,но не така се оказа на практика.Сложих Max232 за съгласуване на нивата.Всичко е вярно свързано,прегледах поне 5 схеми от нета.Като пробвам да изпращам данни към компа,наистина се изпращат ,но някакви маймуници и йероглифи.Пробвах да сменям шрифтовете на терминалните програми ,но не става.Къде е причината според вас .
|
| Чет Юни 21, 2007 6:05 pm |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
UART-a на процесора и порта на PC то трябва да са настроени на един бодрейт. Като не са се получават такива неща.
|
| Чет Юни 21, 2007 6:10 pm |
|
 |
|
Ugeen
Ранг: Новодошъл
Регистриран на: Пон Яну 16, 2006 5:20 pm Мнения: 122 Местоположение: гр. Горна Оряховица
|
Всичките настройки са еднакви и 8-бита данни ,1-стопов бит 9600 скорост,без проверка по четност.Със всички терминални програми приема едно и също.Процесора работи с вътрешен такт на 8Mhz.OSCCAL=0xff.Кабела не е екраниран ,но е доста къс около 30см.Може ли да е от това че работя с вътрешен такт,който не е много стабилен и че кабела не е екраниран.Ползвам процесора само да праща приемника не е активиран,нали това не го бърка.
|
| Чет Юни 21, 2007 6:19 pm |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
Нещо по скоро не си настроил правилно UART-a на пика.
|
| Чет Юни 21, 2007 6:26 pm |
|
 |
|
Ugeen
Ранг: Новодошъл
Регистриран на: Пон Яну 16, 2006 5:20 pm Мнения: 122 Местоположение: гр. Горна Оряховица
|
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: Off
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud rate: 9600
UCSRA=0x00;
UCSRB=0x08;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x33;
Ето това са настройките директно от CodevisionAVR
|
| Чет Юни 21, 2007 6:29 pm |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
На 9600 съм подкарвал за проба PIC в вътрешния му такт. Но изглежда че твоя процесор не е калибриран нещо в такъв случай. Сложи си външен кварц.
|
| Чет Юни 21, 2007 6:40 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
UART-а допуска доста големи грешки в скоростта. Най-вероятно е някаква настройка в контролера за да се получи такава голяма разлика в скоростите, а не от това, че е с вътрешен клок. Понякога има разлика между симулатора и реалността  . В никакъв случай обаче не е заради кабела.
|
| Чет Юни 21, 2007 7:14 pm |
|
 |
|
ji4ka
Ранг: Форумен бог
Регистриран на: Чет Фев 01, 2007 4:04 am Мнения: 1539
|
 Re: Проблеми с RS232
Тая схема май инвертираше сигналите. Да не би да е от това?
|
| Чет Юни 21, 2007 11:20 pm |
|
 |
|
Wise
Ранг: Форумен бог
Регистриран на: Нед Дек 19, 2004 6:26 pm Мнения: 1628 Местоположение: Сливен
|
Е няма как да е от инверсията - лог 1 си е -U, а лог 0 - +U
U е около 6.5- 8.5 волта
най-вероятно е да не си записал фюзовете и да ти е такта/8
|
| Чет Юни 21, 2007 11:31 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
Жичка - ти каква схема предлагаш да сложи между контролера и РС-то освен MAX232 или някой аналог  ?
|
| Чет Юни 21, 2007 11:43 pm |
|
 |
|
ji4ka
Ранг: Форумен бог
Регистриран на: Чет Фев 01, 2007 4:04 am Мнения: 1539
|
Тази си е добра, но има и други които са неинвертиращи. Аз лично си имах точно такъв проблем ,затова го споменавам. Едно пикче беше правено да се връзва директно с сер.порт - по мнението на автора много от компютрите приемали и 0-5 волта. Но аз реших да го правя "професионално" и му турих тоя буфер ... и се наложи да му инвертирам софта. Даже дизасемблирах щото имах само хекса (това не се забравя лесно  ).
|
| Чет Юни 21, 2007 11:56 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
Кои са тия другите дето "не са инвертиращи" и се връзваш чрез тях с РС - аз не ги знам  ?
|
| Пет Юни 22, 2007 12:58 am |
|
 |
|
ji4ka
Ранг: Форумен бог
Регистриран на: Чет Фев 01, 2007 4:04 am Мнения: 1539
|
Не ги знаеш ,защото ги няма  . Чудно, къде са изчезнали?. Грешката е моя  . Ей ти на пазарна ниша  .
Обаче проблема остава ако не е предвидено инвертирането в софруера. Може и да се свържат двата канала последователно ако трябва неинвертиращ.
|
| Пет Юни 22, 2007 1:45 am |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
Жичка - аз от одеве те бъзикам, защото какво значи инвертиране? Те така са си направени нещата да работят, т.е. не ти трябва никаква софтуерна манипулация на битовете. Да не говорим, че софтуерно нямаш контрол върху стартовия и стоповия бит, ако държиш да си ползваш хардуерния UART на контролера  .
|
| Пет Юни 22, 2007 2:26 am |
|
 |
|
ji4ka
Ранг: Форумен бог
Регистриран на: Чет Фев 01, 2007 4:04 am Мнения: 1539
|
Те направени нещата ,ама за тия дето вървят в правия път. А за нас дето караме през просото никой не мисли  . Аз един път да се наканя да вържа контролер с пц и ей на - дизасемблиране, инвертиране... Направо ме изненада тоя инвертор. Още се чудя защо трябва да е с инвертиране тоя буфер?
При мен пикчето беше 8 краково , без уарт и всичко си беше софтуерно. И пича дето го е проектирал си го вързва директно към пц-то по 2 жици. И най-важното е, че си бачка на 115000 бода.
|
| Пет Юни 22, 2007 3:05 am |
|
|