Микроконтролери и електроника
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

peterhr написа:
ОК, мерси за отоговорите.
Като чета вариантите, може би най-лесно за мен ще е да комутирам серийния канал между двете устройства.

10х. :)

Че какво пречи софтуерно да се направи не е кои знае какъв гърч, така може да ползваш не 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 ]
Заглавие:  мне

didofen написа:
повечето гсм-и са на 19200, моя сименс с 45 поне е на толкова. а гпс-а е на 9600, дори има и на 4800. така че по лесно ще си подкараш гпс-а от колкото гсм-а.

Бъркаш повечето поддържат 9600 , но не всички могат да работят до 115200 , така че мисля че не е проблем да си е 9600 , добре е да се степенува комуникацията според това коя заявка се обработва , най добре е която е с приоритет да си мине на прекъсване а което не е , да се прави в самата програма.
Дори може да се ползва един вграден USART и един софтуерен :)
Например 16F88 и 16F688 си имат вграден такъв модул , прави се приоритетното да прекъсва към USART при препълване на буфера, и тогава си обработваш заявката да речем на GSM-a, дори има в тия модели ауто опознаване на скороста , а за софтуерния USART когато е необходимо подаваш АТ команда и го чакаш софтуерно да ти върне отговор с 9600. :)
Така няма да имаш проблем със скороста дори при 4 MHz . :D

Автор:  rumen [ Пон Мар 12, 2007 5:20 pm ]
Заглавие: 

Нищо не пречи и софтуерния да се сдобие с прекъсване ако се избере за вход подходящо краче на процесора.

Автор:  plameniv [ Пон Мар 12, 2007 7:28 pm ]
Заглавие:  Mda

rumen написа:
Нищо не пречи и софтуерния да се сдобие с прекъсване ако се избере за вход подходящо краче на процесора.

Прав си и на него може стига да не съвпада крачето с това на 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/