| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Използване на RS232 и I2C http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=5653 |
Страница 1 от 1 |
| Автор: | GTN [ Пон Мар 31, 2008 1:50 pm ] |
| Заглавие: | Използване на RS232 и I2C |
Здравейте, Искам да си направя една малка схемичка която да чете данни от I2C EEPROM и/или I2C RTC и да ги изпраща по сериен канал към PC. Възможно ли е да се използва USART модула и SSP модула на един PIC16F917 заедно, или единия от протоколите трябва да го реализирам софтуерно? Благодаря на всички отговорили предварително |
|
| Автор: | setoy [ Пон Мар 31, 2008 2:01 pm ] |
| Заглавие: | |
На някои (доста) от пиковете SSP и UART ползваха един и същи пин. Ако твоя не е от тях - проблеми няма. Но дори и да е от тях - може да се ползва мултиплексор и да се превключват перифериите - забраняваш едната, разрешваш другата, превкючваш пина... и после наобратно. |
|
| Автор: | GTN [ Пон Мар 31, 2008 3:30 pm ] |
| Заглавие: | |
Уви от тях е. Използва RC6 и 7. И аз си мислех да забранявам перифиерия но разполагам в момента с MAX232, а той няма вход за разрешаване/забраняване. Освен софтуерно друго не успях да измисля |
|
| Автор: | setoy [ Пон Мар 31, 2008 3:59 pm ] |
| Заглавие: | |
Е, не, имам предвид мултиплексор от рода на 4053. Но по-добрия начин е да смениш контролера |
|
| Автор: | GTN [ Пон Мар 31, 2008 4:27 pm ] |
| Заглавие: | |
Ахам, разбирам, но за да го използвам ми трябват още поне 1 краче. Мисля че ще може да жертвам. Интересно ми е дали има друго решение на въпроса? Мерси за идеята. |
|
| Автор: | stanleyhacker [ Пон Мар 31, 2008 4:27 pm ] |
| Заглавие: | |
Ако не правиш нищо друго жизненоважно с процесора слагай софтурен УАРТ или софтуерен И2Ц! Той ПИКа е мощен, дори е двете да са софтуерни То всъщност ако не правиш нищо друго дори не ти трябва и ПИК де, само един МАХ, но тогава ще трябва малко програмиране в РС-то. |
|
| Автор: | GTN [ Пон Мар 31, 2008 4:52 pm ] |
| Заглавие: | |
Смятам и други работи да прави |
|
| Автор: | sv_shady [ Пон Мар 31, 2008 9:54 pm ] |
| Заглавие: | |
Ако ползваш CCS може да ползваш I2C модула, а за серийната връзка да избереш друи 2 пина и така компилатора сам генерира софтуерни функции за RS232 комуникация. На скоро завърших едно такова устройство |
|
| Автор: | stanleyhacker [ Вто Апр 01, 2008 11:45 am ] | |||||||||
| Заглавие: | ||||||||||
В началото си помислих че си объркал цялата схема, ама пък викам точно ти да я объркаш нещо не се връзва. После се загледах и видях каква е идеята. Като идея е добре, обаче практическата полза за съжаление е много малка, после ще кажа защо.
Помисли пак! Номера като гледам е да вадиш данните от еепрома и директно към макса. По принцип става, обаче ще трябва да попреработиш схемата за енейбъл и то така че да не се променя айдъл стейта на 232, който е лог.1, и като бърникаш в еепрома да не се променя лог.1 за макса. Като пращаш байт по 232 трябва да видиш как да пращаш по един старт бит и по един стоп бит накрая. Като гледам може с енейбъла RC4 да стане старта, а стопа, да изчакаш малко накрая да има "1" поне 1 бит време. Не разбрах R1IN за какво е свързан, ако да записваш данни в еепрома, как ще му пращаш клок а и както са накъсо ако предаваш данни и PC-то реши да праща данни ще има малко къси съединения хиххихи. Може и това,ама пак ти трябва да пишеш бая. Има и една техническа грешка, че R1IN е откъм РС страната. Сещам се една идея, че еепрома може просто да му спреш клока не се сещам в 1 или 0 , така че да няма старт кондишън, така може и да не му ползваш адресните крачета. Така че може още по-хард, с някаква схема с транзистор и кондезатор да гледаш дали има клок към еепрома и да забранява макса. Така не ти е нужен RC4 Така че ако дръпнем чертата - като сложим постоянното превключване I2C <-> UART имаш достатъчно софтуерно внимание, колкото да си имаш изцяло софтуерно И2Ц отделно. Поне според мене. Освен това ще стане доста по-бързо за писане. Като си иамш отделно И2Ц сигурно ще искаш да закачиш още устройства, като часовници и датчици, и тогава 2 крака са си съвсем ефективни , защото имаш бая устройства само на 2 крака. От друга страна,като си имаш хардуерен уарт изцяло по прекъсвания, ти не се занимаваш софтуерно изобщо. получаваш прекъсване, ако дойде байт от РС-то , получаваш прекъсване и че уарта ти е пратил байта, който си му казал и че можеш да пращаш още. Така имаш сигурна двупосочна комуникация, както и по-бърза. И2Ц-то е по-добре да е софтуерно, отколкото уарта, тъй като е по-бързо (400кХц) и ще отделяш по-кратко време в софтуера за него. Е при равни други условия. Айде успех с ПИКовете !!! едит: сега виждам данните от ПС-то отиват на RX на пика , не че ще ги пращаш на еепрома директно |
||||||||||
| Автор: | setoy [ Вто Апр 01, 2008 4:07 pm ] |
| Заглавие: | |
Изведнъж се почувствах много тъп, съзерцавайки тази схема Все едно де, моето мнение все пак е да си потърсиш контролер, на който UART и SSP не са застъпени. Това с мултиплексора съм го ползвам, признавам, но когато наистина няма друг избор. Например 4550 с USB, UART и SPI едновременно |
|
| Автор: | GTN [ Вто Апр 01, 2008 6:51 pm ] | |||||||||||
| Заглавие: | ||||||||||||
Недей, аз снощи в бързината да я направя преди да си легна малко много съм я оцвъкал Станиславе, прав си спор няма че в моя случай най-добре ще си да е с софтуерно I2C и хардуерно USART. Просто ми беше интересно какво се прави в такъв случай. Особено пък ако имаш нужда и от SPI. Най-вероятно ще го направя с софтуерен I2C както stanleyhacker съветва Ще видим какво ще стане. Иначе с диодите схемата трябваше да изглежда нещо като тази по-долу.
|
||||||||||||
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|