| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| Два серийни порта на един PIC??? http://mcu-bg.com/mcu_site/viewtopic.php?f=2&t=3836 |
Страница 1 от 3 |
| Автор: | peterhr [ Чет Мар 08, 2007 5:29 pm ] |
| Заглавие: | Два серийни порта на един PIC??? |
Здравейте, Искам да управлявам GSM с АТ команди и ще ползвам серийния порт на процесора за връзка с GSMa. Обаче искам процесора да чете и данни от ГПС модул, та ми трябва още един сериен порт. Засега имам опит само с PIC. Та какви са вариантите да комуникирам и с двата модула? Загледах се в 16-та серия на PIC но не видях да има процесори с два серийни порта. Иска ми се да следя непрекъснато и двата модула, а не да прехвърлям серийния порт от единия на другия през определен интервал. |
|
| Автор: | Цецо [ Чет Мар 08, 2007 5:43 pm ] |
| Заглавие: | |
Е питаш или разсъждаваш на глас? PIC16 явно няма да ти свърши работа. Ползвай PIC18(64 пина и нагоре) или PIC24. Или смени пройзводителя. А и за това което искаш PIC16 ще е доста ограничен като ресурси, по комфортно ще се чувстваш в по-големите. |
|
| Автор: | didofen [ Пет Мар 09, 2007 8:38 am ] |
| Заглавие: | |
аз правя точно такова, с 16ф873, и ползвам електронен ключ. усарта е включен към телефона, и когато се позвани, тогава се превключва към гпс-а и се прочитат координатите, след което се връща пак на гсм-а и се пращат като смс |
|
| Автор: | Cekins [ Пет Мар 09, 2007 9:50 am ] |
| Заглавие: | |
Ако искаш с малък пик може и софтуерен усарт да си напишеш ама ще е гърч. На didofen идеята е добра като вариант. Иначе минаваш на варианта на Цецо. |
|
| Автор: | satanasov [ Пет Мар 09, 2007 9:52 am ] |
| Заглавие: | |
Има и още един вариант, който аз ползвам... Преобразуване от SPI към USART... Чипа който ползвам е MAX3100! Аз лично съм много доволен от него и не съм имал проблеми (ползвам го от около 8 години)! |
|
| Автор: | didofen [ Пет Мар 09, 2007 9:58 am ] |
| Заглавие: | |
о, верно, не съм се сетил за преобразуване на протокола |
|
| Автор: | peterhr [ Пет Мар 09, 2007 10:13 am ] |
| Заглавие: | |
ОК, мерси за отоговорите. Като чета вариантите, може би най-лесно за мен ще е да комутирам серийния канал между двете устройства. 10х. |
|
| Автор: | plameniv [ Съб Мар 10, 2007 8:34 pm ] | |||||||||
| Заглавие: | He | |||||||||
Че какво пречи софтуерно да се направи не е кои знае какъв гърч, така може да ползваш не 2 канала ами колкото искаш , трябва да си ги степенуваш и софтуерно да ги обхождаш , ще прецениш кои е най важен и тои ще е първи.Така избягваш отвън други устроиства които пак трябва да се управляват по същия начин . |
||||||||||
| Автор: | rumen [ Съб Мар 10, 2007 10:00 pm ] |
| Заглавие: | |
Дори бих казал че не е никакъв гърч. Например в ПРОТОН- а се прави така: Команда за хардуерния приемник HSERIN си има софтуерен аналог SERIN Аналогично е за предаването на данни HSEROUT -> SEROUT . Нарочваш си пинове които са ти удобни при декларирането в началото и готово. П.П. Времето за писанате на този пост = времето за конфигурация на серйна връзка. |
|
| Автор: | Цецо [ Пон Мар 12, 2007 11:51 am ] |
| Заглавие: | |
серийната комуникация реализирана софтуерно си е гърч за ядрото. Ако комуникацията е бавна (9600) и така или иначе ядрото бездейства - нищо лошо да я скалъпи и софтуерно. Ама ако ще бръмчи асинхронно 2 канала поток от данни на 115200 при това на различни протоколи - а да го видя как ще го наблъска в 16ка със софтуерен UART. Въпрос на конкретно приложение |
|
| Автор: | peterhr [ Пон Мар 12, 2007 11:58 am ] |
| Заглавие: | |
Да, вярно е, въпрос на конкретно приложение и най-вече умения на разработващият Комуникацията е бавна 9600 и на двата канала, даже може на единия да беше 4800. Ама софтуерно засега ми е трудно да направя сериен порт. Първо ще подкарам връзката с ГСМ-а а след това ще мисля за ГПС-а. |
|
| Автор: | didofen [ Пон Мар 12, 2007 1:11 pm ] |
| Заглавие: | |
повечето гсм-и са на 19200, моя сименс с 45 поне е на толкова. а гпс-а е на 9600, дори има и на 4800. така че по лесно ще си подкараш гпс-а от колкото гсм-а. |
|
| Автор: | plameniv [ Пон Мар 12, 2007 4:18 pm ] | |||||||||
| Заглавие: | мне | |||||||||
Бъркаш повечето поддържат 9600 , но не всички могат да работят до 115200 , така че мисля че не е проблем да си е 9600 , добре е да се степенува комуникацията според това коя заявка се обработва , най добре е която е с приоритет да си мине на прекъсване а което не е , да се прави в самата програма. Дори може да се ползва един вграден USART и един софтуерен Например 16F88 и 16F688 си имат вграден такъв модул , прави се приоритетното да прекъсва към USART при препълване на буфера, и тогава си обработваш заявката да речем на GSM-a, дори има в тия модели ауто опознаване на скороста , а за софтуерния USART когато е необходимо подаваш АТ команда и го чакаш софтуерно да ти върне отговор с 9600. Така няма да имаш проблем със скороста дори при 4 MHz . |
||||||||||
| Автор: | rumen [ Пон Мар 12, 2007 5:20 pm ] |
| Заглавие: | |
Нищо не пречи и софтуерния да се сдобие с прекъсване ако се избере за вход подходящо краче на процесора. |
|
| Автор: | plameniv [ Пон Мар 12, 2007 7:28 pm ] | |||||||||
| Заглавие: | Mda | |||||||||
Прав си и на него може стига да не съвпада крачето с това на RX входа , но мисля че RX например при 16F688 е на PORTC.5 , а INТ се шпадаше на PORTA.2 така че би трябвало да стане . |
||||||||||
| Страница 1 от 3 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|