Микроконтролери и електроника
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 ползваха един и същи пин. Ако твоя не е от тях - проблеми няма. Но дори и да е от тях - може да се ползва мултиплексор и да се превключват перифериите - забраняваш едната, разрешваш другата, превкючваш пина... и после наобратно. :evil: Дървено. Ама ако няма друг начин...

Автор:  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 комуникация. На скоро завърших едно такова устройство :)

Автор:  GTN [ Пон Мар 31, 2008 10:41 pm ]
Заглавие: 

А така няма ли да стане? С два диода си правя логическо И. С едно допълнително краче на контролера, свързано едновременно към логическото "И" и адресните крачета на ЕЕПРОМа. При нула на това краче забранявам всякакви данни към RSa, а в същото време адреас на ЕПРОМа е с "1" на адресните крачета.

Прикачени файлове:
shema rs232.JPG
shema rs232.JPG [ 35.98 KiB | Прегледано 4022 пъти ]

Автор:  stanleyhacker [ Вто Апр 01, 2008 11:45 am ]
Заглавие: 

В началото си помислих че си объркал цялата схема, ама пък викам точно ти да я объркаш нещо не се връзва. После се загледах и видях каква е идеята. Като идея е добре, обаче практическата полза за съжаление е много малка, после ще кажа защо.
Цитат:
При нула на това краче забранявам всякакви данни към RSa, а в същото време адреас на ЕПРОМа е с "1" на адресните крачета.

Помисли пак! ;)
Номера като гледам е да вадиш данните от еепрома и директно към макса. По принцип става, обаче ще трябва да попреработиш схемата за енейбъл и то така че да не се променя айдъл стейта на 232, който е лог.1, и като бърникаш в еепрома да не се променя лог.1 за макса.
Като пращаш байт по 232 трябва да видиш как да пращаш по един старт бит и по един стоп бит накрая. Като гледам може с енейбъла RC4 да стане старта, а стопа, да изчакаш малко накрая да има "1" поне 1 бит време.
Не разбрах R1IN за какво е свързан, ако да записваш данни в еепрома, как ще му пращаш клок а и както са накъсо ако предаваш данни и PC-то реши да праща данни ще има малко къси съединения хиххихи. Може и това,ама пак ти трябва да пишеш бая. Има и една техническа грешка, че R1IN е откъм РС страната.
Сещам се една идея, че еепрома може просто да му спреш клока не се сещам в 1 или 0 , така че да няма старт кондишън, така може и да не му ползваш адресните крачета. Така че може още по-хард, с някаква схема с транзистор и кондезатор да гледаш дали има клок към еепрома и да забранява макса. Така не ти е нужен RC4 :) ама старт битовете....:cry:

Така че ако дръпнем чертата - като сложим постоянното превключване I2C <-> UART имаш достатъчно софтуерно внимание, колкото да си имаш изцяло софтуерно И2Ц отделно. Поне според мене. Освен това ще стане доста по-бързо за писане. Като си иамш отделно И2Ц сигурно ще искаш да закачиш още устройства, като часовници и датчици, и тогава 2 крака са си съвсем ефективни , защото имаш бая устройства само на 2 крака. От друга страна,като си имаш хардуерен уарт изцяло по прекъсвания, ти не се занимаваш софтуерно изобщо. получаваш прекъсване, ако дойде байт от РС-то , получаваш прекъсване и че уарта ти е пратил байта, който си му казал и че можеш да пращаш още. Така имаш сигурна двупосочна комуникация, както и по-бърза. И2Ц-то е по-добре да е софтуерно, отколкото уарта, тъй като е по-бързо (400кХц) и ще отделяш по-кратко време в софтуера за него. Е при равни други условия.
Айде успех с ПИКовете !!!

едит: сега виждам данните от ПС-то отиват на RX на пика , не че ще ги пращаш на еепрома директно

Автор:  setoy [ Вто Апр 01, 2008 4:07 pm ]
Заглавие: 

Изведнъж се почувствах много тъп, съзерцавайки тази схема :oops: TX как стига до max-a ? :oops:
Все едно де, моето мнение все пак е да си потърсиш контролер, на който UART и SSP не са застъпени. Това с мултиплексора съм го ползвам, признавам, но когато наистина няма друг избор. Например 4550 с USB, UART и SPI едновременно

Автор:  GTN [ Вто Апр 01, 2008 6:51 pm ]
Заглавие: 

setoy написа:
Изведнъж се почувствах много тъп, съзерцавайки тази схема


Недей, аз снощи в бързината да я направя преди да си легна малко много съм я оцвъкал :(

Станиславе, прав си спор няма че в моя случай най-добре ще си да е с софтуерно I2C и хардуерно USART.
Просто ми беше интересно какво се прави в такъв случай. Особено пък ако имаш нужда и от SPI.
Най-вероятно ще го направя с софтуерен I2C както stanleyhacker съветва :)

Ще видим какво ще стане.
Иначе с диодите схемата трябваше да изглежда нещо като тази по-долу.

Прикачени файлове:
2shema rs232.JPG
2shema rs232.JPG [ 36.7 KiB | Прегледано 4006 пъти ]

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/