| Автор |
Съобщение |
|
peterhr
Ранг: Минаващ
Регистриран на: Пон Сеп 27, 2004 8:48 pm Мнения: 59 Местоположение: София
|
 Два серийни порта на един PIC???
Здравейте,
Искам да управлявам GSM с АТ команди и ще ползвам серийния порт на процесора за връзка с GSMa.
Обаче искам процесора да чете и данни от ГПС модул, та ми трябва още един сериен порт. Засега имам опит само с PIC.
Та какви са вариантите да комуникирам и с двата модула?
Загледах се в 16-та серия на PIC но не видях да има процесори с два серийни порта.
Иска ми се да следя непрекъснато и двата модула, а не да прехвърлям серийния порт от единия на другия през определен интервал.
|
| Чет Мар 08, 2007 5:29 pm |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
Е питаш или разсъждаваш на глас?
PIC16 явно няма да ти свърши работа. Ползвай PIC18(64 пина и нагоре) или PIC24. Или смени пройзводителя.
А и за това което искаш PIC16 ще е доста ограничен като ресурси, по комфортно ще се чувстваш в по-големите.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Чет Мар 08, 2007 5:43 pm |
|
 |
|
didofen
Ранг: Популярен
Регистриран на: Вто Юни 27, 2006 11:13 am Мнения: 381 Местоположение: Варна
|
аз правя точно такова, с 16ф873, и ползвам електронен ключ. усарта е включен към телефона, и когато се позвани, тогава се превключва към гпс-а и се прочитат координатите, след което се връща пак на гсм-а и се пращат като смс
|
| Пет Мар 09, 2007 8:38 am |
|
 |
|
Cekins
Ранг: Форумен бог
Регистриран на: Сря Апр 20, 2005 12:02 pm Мнения: 9119 Местоположение: Разград
|
Ако искаш с малък пик може и софтуерен усарт да си напишеш ама ще е гърч. На didofen идеята е добра като вариант. Иначе минаваш на варианта на Цецо.
|
| Пет Мар 09, 2007 9:50 am |
|
 |
|
satanasov
Ранг: Минаващ
Регистриран на: Нед Фев 25, 2007 3:10 pm Мнения: 47 Местоположение: София
|
Има и още един вариант, който аз ползвам... Преобразуване от SPI към USART... Чипа който ползвам е MAX3100! Аз лично съм много доволен от него и не съм имал проблеми (ползвам го от около 8 години)!
_________________ Практиката започва там, където теорията свършва!
|
| Пет Мар 09, 2007 9:52 am |
|
 |
|
didofen
Ранг: Популярен
Регистриран на: Вто Юни 27, 2006 11:13 am Мнения: 381 Местоположение: Варна
|
о, верно, не съм се сетил за преобразуване на протокола  ще го пробвам в понеделник
|
| Пет Мар 09, 2007 9:58 am |
|
 |
|
peterhr
Ранг: Минаващ
Регистриран на: Пон Сеп 27, 2004 8:48 pm Мнения: 59 Местоположение: София
|
ОК, мерси за отоговорите.
Като чета вариантите, може би най-лесно за мен ще е да комутирам серийния канал между двете устройства.
10х. 
|
| Пет Мар 09, 2007 10:13 am |
|
 |
|
plameniv
Ранг: Форумен бог
Регистриран на: Нед Окт 10, 2004 9:55 am Мнения: 1718
|
 He
Че какво пречи софтуерно да се направи не е кои знае какъв гърч, така може да ползваш не 2 канала ами колкото искаш , трябва да си ги степенуваш и софтуерно да ги обхождаш , ще прецениш кои е най важен и тои ще е първи.Така избягваш отвън други устроиства които пак трябва да се управляват по същия начин .
|
| Съб Мар 10, 2007 8:34 pm |
|
 |
|
rumen
Ранг: Почетен член
Регистриран на: Чет Ное 25, 2004 3:42 pm Мнения: 913
|
Дори бих казал че не е никакъв гърч.
Например в ПРОТОН- а се прави така:
Команда за хардуерния приемник HSERIN си има софтуерен аналог SERIN
Аналогично е за предаването на данни HSEROUT -> SEROUT .
Нарочваш си пинове които са ти удобни при декларирането в началото и готово.
П.П.
Времето за писанате на този пост = времето за конфигурация на серйна връзка.
|
| Съб Мар 10, 2007 10:00 pm |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
серийната комуникация реализирана софтуерно си е гърч за ядрото. Ако комуникацията е бавна (9600) и така или иначе ядрото бездейства - нищо лошо да я скалъпи и софтуерно. Ама ако ще бръмчи асинхронно 2 канала поток от данни на 115200 при това на различни протоколи - а да го видя как ще го наблъска в 16ка със софтуерен UART.
Въпрос на конкретно приложение
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Пон Мар 12, 2007 11:51 am |
|
 |
|
peterhr
Ранг: Минаващ
Регистриран на: Пон Сеп 27, 2004 8:48 pm Мнения: 59 Местоположение: София
|
Да, вярно е, въпрос на конкретно приложение и най-вече умения на разработващият
Комуникацията е бавна
9600 и на двата канала, даже може на единия да беше 4800.
Ама софтуерно засега ми е трудно да направя сериен порт.
Първо ще подкарам връзката с ГСМ-а а след това ще мисля за ГПС-а.
|
| Пон Мар 12, 2007 11:58 am |
|
 |
|
didofen
Ранг: Популярен
Регистриран на: Вто Юни 27, 2006 11:13 am Мнения: 381 Местоположение: Варна
|
повечето гсм-и са на 19200, моя сименс с 45 поне е на толкова. а гпс-а е на 9600, дори има и на 4800. така че по лесно ще си подкараш гпс-а от колкото гсм-а.
|
| Пон Мар 12, 2007 1:11 pm |
|
 |
|
plameniv
Ранг: Форумен бог
Регистриран на: Нед Окт 10, 2004 9:55 am Мнения: 1718
|
 мне
Бъркаш повечето поддържат 9600 , но не всички могат да работят до 115200 , така че мисля че не е проблем да си е 9600 , добре е да се степенува комуникацията според това коя заявка се обработва , най добре е която е с приоритет да си мине на прекъсване а което не е , да се прави в самата програма.
Дори може да се ползва един вграден USART и един софтуерен
Например 16F88 и 16F688 си имат вграден такъв модул , прави се приоритетното да прекъсва към USART при препълване на буфера, и тогава си обработваш заявката да речем на GSM-a, дори има в тия модели ауто опознаване на скороста , а за софтуерния USART когато е необходимо подаваш АТ команда и го чакаш софтуерно да ти върне отговор с 9600.
Така няма да имаш проблем със скороста дори при 4 MHz . 
|
| Пон Мар 12, 2007 4:18 pm |
|
 |
|
rumen
Ранг: Почетен член
Регистриран на: Чет Ное 25, 2004 3:42 pm Мнения: 913
|
Нищо не пречи и софтуерния да се сдобие с прекъсване ако се избере за вход подходящо краче на процесора.
|
| Пон Мар 12, 2007 5:20 pm |
|
 |
|
plameniv
Ранг: Форумен бог
Регистриран на: Нед Окт 10, 2004 9:55 am Мнения: 1718
|
 Mda
Прав си и на него може стига да не съвпада крачето с това на RX входа , но мисля че RX например при 16F688 е на PORTC.5 , а INТ се шпадаше на PORTA.2 така че би трябвало да стане . 
|
| Пон Мар 12, 2007 7:28 pm |
|
|