Отговори на тема  [ 16 мнения ]  Отиди на страница 1, 2  Следваща
Reset и RS232 проблеми. 
Автор Съобщение
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Пет Яну 22, 2010 5:46 pm
Мнения: 680
Мнение Reset и RS232 проблеми.
Здравейте!
Имам следния проблем - При включване на веригата, ако не ползвам превключвател MCU-то се държи странно и понякога не тръгва въобще. В конкретния случай MCLR пина ми е вход (MCLR е вързан вътрешно за Vdd). Когато вкарвам жака (в случая USB B) се получават странни неща.

.... Май реших проблема докато пиша ама да си питам все пак. Не съм бил активирал Born-out reset. След като го включих не ми е правило проблема. Ако няма Born-out reset може би трябва външна верига за включване със закъснение (Power-on delay не свърши работа) или пък верига за ресет при падане на напрежението.


И втория проблем е RS232. След като включа схемата към захранване понякога PC-то приема 0xFF преди първите байтове изпратени от устройството. Най-вероятно има преход от 1 към 0 на TX пина и най-вероятно това се случва когато при инициализация направя RX и TX на входове (както е указано в документацията). Може би решението на проблема е един pull-up (или да ползвам вътрешния) на TX изхода - примерно 10к. Обаче не знам как действа MAX232 -дали може да държи дълго време 1 на изхода. Ако не - може би е по-добре да бъде pull-down (при инициализация по подразбиране порта е вход).

_________________
PIC SPBRG values calculator


Последна промяна npelov на Съб Юли 24, 2010 8:58 pm, променена общо 1 път



Съб Апр 03, 2010 4:46 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 25, 2005 11:41 am
Мнения: 1680
Мнение 
По - скоро виж: FAIL - SAFE CLOCK MONITOR-a.


Нед Апр 04, 2010 1:32 pm
Профил ICQ WWW
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Пет Яну 22, 2010 5:46 pm
Мнения: 680
Мнение 
А ако няма такъв - какво се използва за устройства кото се захранват през жак - като усб например.

П.П. USB ползвам само за захранване, а данните са през RS232 за по-просто и по-евтино.


Пон Апр 05, 2010 1:28 pm
Профил WWW
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Пет Яну 22, 2010 5:46 pm
Мнения: 680
Мнение 
Проблема с RS232 започва да става досаден. Понякога получавам 1 байт 0xFF (не винаги 0xFF), а понякога 2-3. Pull up 20k не помага (видях че вътрешно в MAX232 има 400к pull-up). По подразбиране портовете са вход. Първите ми инструкции са:
Код:
   movlw   0x06
   movwf   PORTB

Това помогна при WDT ресет да не предават нежелани байтове, но при power-on все още ги има.

Ще взема да сложа един MOSFET+RC за включва TX на mcu-to към MAX232 със закъснение


Пон Апр 05, 2010 6:38 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Сеп 26, 2004 4:11 pm
Мнения: 3750
Местоположение: София
Мнение 
А не е ли възможно проблемът ти да не идва от контролера, а от MAX232 ? Това лесно се проверява, като дадеш входа за предаване на MAX232 твърдо към +VCC. За да нямаш колизии с контролера, можеш да го извадиш от цокъла ( ако е на цокъл ). Иначе е по-добре да резнеш пътечката.
Обяснението е следното:
RS232 предава "мълчание" като -12V, а стартовият импулс е +12, или колкото дойде. На практика всичко над +3 се приема за стартов имулс или за лог. 0
MAX232 не се захранва с отрицателно напрежение, той си го генерира вътрешно. Затова му трябва малко време, за да може да подаде -9 V. Докато тече това време, изходът му от 0 се качва до около +3 .. +4 волта и после слиза на -9 волта.
Провери го и после пише какво е станало и как си си решил проблема.


Пон Апр 05, 2010 10:03 pm
Профил ICQ
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Пет Яну 22, 2010 5:46 pm
Мнения: 680
Мнение 
Хммм. Смених интегралата с надеждата че няма да се наложи да сглобявам пак sound-blaster-scop-a ама проблема не е в дефект. Твърде вероятно е макса да вдига малко напрежението. Тогава още по-лесно - не ми трябва RC верига. ще използвам изход на пик-а за да "свържа" изхода на max със закъснение. Обаче преди това ще трябва да проверя дали наистина това е проблема. Импулса ще да е къс защото на 1200 bps го няма проблема.


Вто Апр 06, 2010 12:45 am
Профил WWW
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Пет Яну 22, 2010 5:46 pm
Мнения: 680
Мнение 
Мда. Има доста импулс с времетраене около 0.5ms. Не знам колко точно със сигурност, но изглежда около 2-4 волта.


Редакция:
Прикачвам схемата която измислих. Не знам дали съм я измислил правилно ... ще съм благодарен да чуя мнения. Понеже нямам под ръка по-малък P канален MOSFET реших да сложа биполярен транзистор (отдясно). Ще работи ли така както съм го направил.

Колкото до управлението - мога да го вържа към пин на пик-а или пък да сложа RC за да включва MOSFET-а със закъснение.


Прикачени файлове:
RS232-TX-turn-off.gif
RS232-TX-turn-off.gif [ 5.53 KiB | Прегледано 3265 пъти ]
Чет Апр 08, 2010 8:23 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Юни 07, 2005 6:20 pm
Мнения: 3532
Мнение 
Друг вариант евентуално е да използваш MAX с ENABLE вход...
Но ти вероятно искаш да си подкараш твоята платка...


Пет Апр 09, 2010 10:38 am
Профил
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Пет Яну 22, 2010 5:46 pm
Мнения: 680
Мнение 
Ами за в момента - искам моята платка да подкарам. по-нататък ще знам.
Да разбирам ли че това дето съм измислил има шанс да тръгне?


Пет Апр 09, 2010 2:17 pm
Профил WWW
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Чет Окт 02, 2008 10:24 pm
Мнения: 105
Мнение 
хубаво, ако проблема е един байт 0xff,
защо просто софтуерно не го премахнеш от страната на PC.
ако съобщенията са стройни със стартов , стопов байт, чексуми ,
не е проблем да идват 0xff , колкото си искат


Пет Апр 09, 2010 2:38 pm
Профил ICQ
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Пет Яну 22, 2010 5:46 pm
Мнения: 680
Мнение 
В случая не мога да го премахна софтуерно от страната на PC-то защото програмата е готова и не е моя. Също така не е винаги 0xFF и не е винаги един байт. 50 на 50 получавам 0xFE, което означава, че проверка за (не)четност ще върши работа само от време на време. Устройството, което ще замествам е доста скъпо, но ако моето не е надеждно няма да го вземат ако ще да им го подаря. Ако обърка първия пакет се праща смс на не-малка група хора, което не е желателно. В редки случаи излизат по 2-3 и веднъж даже около 20 байта.

Може би ще свържа този TX през един ценер и един диод към пика за да видя кога напрежението ще стане отрицателно и тогава да дам ход на програмата и съответно ще отпуша изхода.


Пет Апр 09, 2010 10:20 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30686
Местоположение: София
Мнение 
Абе тук нещо тотално не е както трябва. Като цяло е възможно в момента на включване на кабела към серийния порт, едната страна да си помисли че има предаден байт, което е трудно да избягване, но пък при вече включен кабел, само от ресет на у-вото не ми се е случвало ако не е ставало нарочно. То зависи и каква е скоростта донякъде, но не помня да съм имал такъв проблем, с какви кондензатори си на макса?


Съб Апр 10, 2010 12:57 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пон Ное 22, 2004 11:24 pm
Мнения: 1923
Местоположение: Габрово
Мнение 
npelov написа:
В случая не мога да го премахна софтуерно от страната на PC-то защото програмата е готова и не е моя. Също така не е винаги 0xFF и не е винаги един байт. 50 на 50 получавам 0xFE, което означава, че проверка за (не)четност ще върши работа само от време на време. Устройството, което ще замествам е доста скъпо, но ако моето не е надеждно няма да го вземат ако ще да им го подаря. Ако обърка първия пакет се праща смс на не-малка група хора, което не е желателно. В редки случаи излизат по 2-3 и веднъж даже около 20 байта.

Може би ще свържа този TX през един ценер и един диод към пика за да видя кога напрежението ще стане отрицателно и тогава да дам ход на програмата и съответно ще отпуша изхода.


Ми то поради таз причина има така наречените протоколи за комуникация. :P С подходящо подреждане на байтовете в протокола и CRC накрая глупостите генерирани от включване и изключване на куплонзи, устройства и др. ги отсвирваш без проблем :-)

Това което правиш според мен е излишно усложняване. :wink:


Съб Апр 10, 2010 2:49 pm
Профил ICQ
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Пет Яну 22, 2010 5:46 pm
Мнения: 680
Мнение 
ToHu написа:
Абе тук нещо тотално не е както трябва. Като цяло е възможно в момента на включване на кабела към серийния порт, едната страна да си помисли че има предаден байт, което е трудно да избягване, но пък при вече включен кабел, само от ресет на у-вото не ми се е случвало ако не е ставало нарочно. То зависи и каква е скоростта донякъде, но не помня да съм имал такъв проблем, с какви кондензатори си на макса?


В момента на включване на захранването, а не на серийния порт. Серийния вече е включен и програмата приема. Като включа захранването MAX-а изкарва за момент положително напрежение и след това се установява в около -8 V. Кондензаторите са по 1uF както пише в даташита на MAX232N

Цитат:
Ми то поради таз причина има така наречените протоколи за комуникация. С подходящо подреждане на байтовете в протокола и CRC накрая глупостите генерирани от включване и изключване на куплонзи, устройства и др. ги отсвирваш без проблем

Трудно ми е да повярвам, че това е причината. Според мен протоколи, CRC и т.н. са за изключване на случайни смущения, а не за нещо което всеки път е там.

Обаче сега като се замисляустройството ще бъде включено заедно с компютъра - освен в случаи на тестване. Първия "грешен байт" никога няма да бъде прочетен... И все пак ме дразни че става така


Съб Апр 10, 2010 6:28 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30686
Местоположение: София
Мнение 
А другия по важен въпрос, тоя първи грешен байт нещо бърка ли го компютъра.
Иначе това което написа тишо е така, протокол си трябва който решава всичко, имаш начало и край, ясни и определени, един таймоут и отсвирваш всико случайно и не случайно. Какво е това към което се връзваш ако не е тайна.

п.с. а ако толкова те дразни сложи едно реле дето да го щрака професора и готово.


Съб Апр 10, 2010 10:22 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 16 мнения ]  Отиди на страница 1, 2  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 4 госта


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

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни