| Автор |
Съобщение |
|
setoy
Ранг: Почетен член
Регистриран на: Пет Фев 17, 2006 9:17 am Мнения: 765 Местоположение: Стара Загора
|
 UART през мултиплексор
Налага ми се да преработя малко една програма която писах преди известно време. Трябва да се добави втори УАРТ, а няма откъде  Мисля си да пусна хардуерния през 4053 например и да си управлявам посоката. Какво мислите за това като идея? Няма причина да не стане, но май никъде не съм виждал подобно решение.
|
| Чет Май 18, 2006 11:28 am |
|
 |
|
zax
Ранг: Популярен
Регистриран на: Съб Фев 19, 2005 2:22 pm Мнения: 323
|
нямаш проблеми пуска се без проблем
аз съм правил такава 'екстра" само че ползвах 4019В
използва се като мултиплексор. има недостатъка да се избира посоката с 2 пина. но не вярвам да ти е проблем 
_________________ бързина, това е да бръкнеш 100 пъти в контакта за 1секунда и да не те хване тока .....
|
| Чет Май 18, 2006 11:37 am |
|
 |
|
bkulev
Ранг: Популярен
Регистриран на: Сря Яну 25, 2006 12:47 pm Мнения: 305 Местоположение: Varna
|
Нямаш грижа. Правил съм 8 потров мултиплексор с два чипа 4051. Пробвал съм го в бойни условия до 115200 бода. Гледай само да не забравиш да подпреш Тx линиите към +5V. И нали се сещаш, че в този случай можеш да слухтиш само по едната (избраната в момента) линия, т.е. решението става малко Master-Slave. А и като превключваш интерфейса, по добре спри прекъсването на UARTA и после пак...
|
| Пет Май 26, 2006 2:41 pm |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
На 750000 съм пробвал с CMOS аналогови ключове и чат пат се дънеше на приематено на първия бит на пакетите свалих на 250000 и нямаше такива проблеми. Не мога да се сетя в момента конкретно с какъв чип го бях правил,просто първото дето имах под ръка беше.
Това за изключването на прекъсването се прави зашото при превключване се приема един фалшиф байт обикновенно. Ако протокола ти е резидентен към такива грешки не е необходимо да се забранява прекъсването.
|
| Пет Май 26, 2006 2:50 pm |
|
 |
|
Syrius-B
Ранг: Форумен бог
Регистриран на: Пон Яну 30, 2006 2:48 am Мнения: 1248 Местоположение: София
|
Но ако ще трябва да реагираш на повикване от вън, осигури си реакция по фронта на RxD сигнала преди мултиплексoра, но ако са повече входовете, и тръгнат едновреминно, ще губиш данни - проблем с протокола 
|
| Съб Май 27, 2006 12:48 am |
|
 |
|
the_real_maniac
Ранг: Почетен член
Регистриран на: Пет Авг 19, 2005 11:38 am Мнения: 978 Местоположение: Europe -> BG
|
Е да , но и хардуерни UART да са , ако възникнат по едно и също време два потока информация ще успе да приеме единият и от вторият запази колкото е хардуерният буфер
Така че това трябва да се знае дали ще го има като момент още при почването на 'идеята' и от там вече да се мисли.
Поне така си мисля аз де
Иначе решение един UART с огромен буфер
edit: горното да се счита повече за въпрос от типа "..., нали ?" 
|
| Съб Май 27, 2006 1:45 am |
|
 |
|
Syrius-B
Ранг: Форумен бог
Регистриран на: Пон Яну 30, 2006 2:48 am Мнения: 1248 Местоположение: София
|
Решението е - софтуерен (виртуален) UART, но тогава зависи какъв е процесора и имаш ли достатъчно свободни ресурси.
Достатъчни са два пина и поне едно прекъсване (нпр таймерно)
|
| Съб Май 27, 2006 10:12 am |
|
 |
|
the_real_maniac
Ранг: Почетен член
Регистриран на: Пет Авг 19, 2005 11:38 am Мнения: 978 Местоположение: Europe -> BG
|
Софтуереният UART не мисля , че спада към добрите решения , ако имаш да обработваш дори едно важно прекъсване.
Докато хардуерният с буфера ти позволява да имаш някакво време за реакция. Но иначе ясно всичко си зависи от дадената ситуация.
|
| Съб Май 27, 2006 5:21 pm |
|
 |
|
Syrius-B
Ранг: Форумен бог
Регистриран на: Пон Яну 30, 2006 2:48 am Мнения: 1248 Местоположение: София
|
E, винаги съществува и баналното решение.
Съществуват безброй чипове, съдържащи UART, с разнообразни интерфейси, SPI, I2C. и пр.
Не се сещам в момента, но има и чипове - разширители, с по 4 UART-а, и пълния набор прекъсвания и регистри.
Всичко е въпрос на избор, според баланса разход-полза.
|
| Съб Май 27, 2006 6:03 pm |
|
 |
|
setoy
Ранг: Почетен член
Регистриран на: Пет Фев 17, 2006 9:17 am Мнения: 765 Местоположение: Стара Загора
|
Благодаря на всички отговорили. Е, в интерес на истината го пуснах още същия ден, когато попитах:) За подпиращите резистори не знаех, но доста бързо се досетих и сам . Принципно това че е мастър-славе не е проблем, то точно това е и идеята. Няма шанс и по двете линии да тръгнат данни наведнъж.
Иначе софтуерния УАРТ не ми допада точно защото иска много процесорно време, а приложението е по-скоро реал-тайм, всичко е написано така че на процесора да му е лесно, което го прави и почти непреносимо на друг... Е, с мултиплексора си заспа.
@the_real_maniac:
Ми да- от прекъсването и в цикличния буфер, а него можеш да си го прочетеш после когато си поискаш. @Syrius-B -
А ето това вече е интересно! Моля, драсни кои са ако се сетиш, бих бил много благодарен ! 
|
| Пон Май 29, 2006 9:00 am |
|
 |
|
FiTTiLA
Ранг: Професионалист
Регистриран на: Сря Май 11, 2005 3:47 pm Мнения: 534
|
http://alldatasheet.com
ST16C454
ST16C554
ST16C654
|
| Пон Май 29, 2006 12:39 pm |
|
 |
|
Wise
Ранг: Форумен бог
Регистриран на: Нед Дек 19, 2004 6:26 pm Мнения: 1628 Местоположение: Сливен
|
Те тези са по-дърти от мен даже...
OX16C954 поне да е http://www.oxsemi.com
|
| Пон Май 29, 2006 1:23 pm |
|
 |
|
FiTTiLA
Ранг: Професионалист
Регистриран на: Сря Май 11, 2005 3:47 pm Мнения: 534
|
Няма лошо  . Ама мен не ме кефят Oxford. Едно време искахме да правиме USB-IDE bridge с 922 и нещо ударихме на камък със syport-та от тяхна страна. уж всичко работи ама не е точно така.
|
| Пон Май 29, 2006 1:35 pm |
|
|