PDA

View Full Version : Hỏi về giao tiếp của pic 16f877a và modem sim 300


notrino1506
07-07-2011, 07:17 PM
Chào các sư huynh,

Em đang bị chết dí với cái giao tiếp USART của PIC và modem SIM 300 đây. Mong các sư huynh giúp đỡ.

Vấn đề của em là: dữ liệu từ MODEM SIM300 (Tx) về PortC.7 (Rx) lúc nào cũng bị SET OERR và FERR.

Em đã cố gắng test từng module một:

- Giao tiếp giữa PIC và máy tính rất chuẩn. Phát và nhận đều đẹp (em set PIC: SPBRG=D'25';TXSTA=0x26; RCSTA=90; máy tính: baudrate=9600; bit:8;stop bit=1; parity=0; flow control=none). Em có chạy debug thì dữ liệu đều chuẩn!

- Giao tiếp giữa module SIM300 và máy tính cũng vậy (máy tính vẫn set như chế độ trên)! Em gửi và nhận lệnh AT chính xác.

Nhưng khi em thử kết nối chân Tx của SIM với Rx của PIC (mục đích là chỉ để nhận dữ liệu từ SIM về PIC và lưu trong RAM khi PIC ngắt nhận data). Em test bằng các nhắn tin đến module SIM. Lần nào cũng ngắt được, nhưng lần nào cũng bị báo tràn (oerr) và (ferr). Và đơ luôn!!!

=========================================
Em coi datasheet của PIC: nó bảo là lỗi tràn là do nhiều dữ liệu đến quá mức cho phép??? Còn cái FERR là do PIC ko nhận được bit stop của dữ liệu từ SIM300???
=========================================
Em rất nghi ngờ cái baud rate của module SIM300. Vì nếu bị lỗi về lập trình thì PIC đâu thể liên lạc được với máy tính (em cũng dùng ngắt nhận dữ liệu RCIE). Nhưng lại nghe nói là SIM300 tự điều chỉnh cho phù hợp với các thiết bị được kết nối. Em không tìm cái datasheet của con SIM300 (nói về cách thức truyền; baudrate; các chế độ delay trong lúc truyền và nhận dữ liệu). Đa số em tra toàn về lệnh AT cà sơ đồ chân thôi!!
-------------------------------------------------------------------------
Túm lại, em chiến đấu với cái vụ này 3 ngày ròng rã. Test đủ kiểu nhưng vẫn thế! Trên thực tế là người ta làm đầy ra đó rồi mà em vẫn chưa làm được. Mong sư huynh nào đã từng trải qua cho em ít gợi ý nhé!!!

notrino1506
07-07-2011, 10:54 PM
huhu, có ai không, giúp em với!

akatsu
29-07-2011, 11:50 PM
Bạn ơi! Theo tớ nghĩ thì vẫn có cách cho nó không tràn đó. Bạn nên dùng ký tự bắt đầu và ký tự kết thúc cho tin nhắn của bạn. Vì khi đó buffer sẽ tự xóa và chỉ lưu lại những ký tự mà bạn đã đáh dấu. Thân.
PS: Bạn có thể dùng hàm strstr() để so sánh chuỗi. Như vậy có thể tk được buffer hơn. Chào bạn

vdk_pic
02-08-2011, 10:40 AM
chào bạn AKATSU và các bạn trong 4rum, bạn có thể cho mình xin doạn code ngắt rda để làm sao nhận dữ liệu từ modun về pic dược không,mình đã làm rồi nhưng không biết làm thế nào để nhận hết dược 1 khung truyền hoàn chỉnh từ modun về pic khi mình gửi 1 tin nhắn vào modun.cám ơn tất cả mọi người.

akatsu
05-08-2011, 03:43 AM
Mình cũng muốn cho lên 4rum lắm, nhưng mà các bạn thông cảm chờ vài bữa nữa nha. Bởi vì hiện tại mình đang làm 1 project liên quan đến cái này nên không tiện đưa lên diễn đàn được (sơj mất bản quyền). Khi nào xong mình sẽ post lên cho các bạn cùng góp ý. Mong các bạn thông cảm nha.

chuotdientu
28-08-2011, 07:32 PM
Chào các sư huynh,

Em đang bị chết dí với cái giao tiếp USART của PIC và modem SIM 300 đây. Mong các sư huynh giúp đỡ.

Vấn đề của em là: dữ liệu từ MODEM SIM300 (Tx) về PortC.7 (Rx) lúc nào cũng bị SET OERR và FERR.

Chào bạn, nếu bạn dùng AVR tớ có thể giúp được tí, vì tớ không rành về PIC.

Điều khiển truyền nhận SMS qua SIM300 thì tớ đã làm được, tiện đây cho tớ hỏi ké 1 câu:

Con SIM300 có chức năng phân biệt được tín hiệu DTMF không, tớ định dùng chức năng này vào con SIM300 mà chưa biết sao, mong các bạn cho biết ý kiến.

tannhatrang
18-10-2011, 03:13 PM
Theo mình được đấy , bạn lấy chân SPK của SIM300 đấu vào con 8870 là bạn nhận được DTMF rồi.
Khi có cuộc gọi đến SIM300 gửi cho PIC RING và +CLIP số máy.bạn phải gửi lệnh ATA từ PIC đến SIM300 để cho SIM 300 kết nối cuộc gọi. khi đó chỉ cần bạn nhấn bàn phím thì SPK loa của SIM300 sẽ phát ra dtmf cho bạn nhận.
Chúc bạn thành công.

btv_bk
07-11-2011, 02:42 PM
bác nào còn sim300 ko ? chia lại cho mình đi
sđt : 0982534460
hoặc mail : mhhaydenbentoi@gmail.com

bbld
07-11-2011, 10:47 PM
hic.mọi người ơi.mình cũng đang bí chỗ này,pc và sim300cz hoạt động ngon,pc và vdk hoạt động ngon,nhưng vdk và sim lại ko thấy làm gì được,gọi điện hay nhắn tin gì cũng chả được.mọi người ai có kinh nghiệm giúp mình với.
Mail:quocnhs@gmail.com

tannhatrang
10-11-2011, 12:09 AM
Cái này, bạn phải dùng PC để giám sát truyền nhận dữ liệu có đúng không?. nghĩa là bạn giám sát VĐK gửi ra cái gì thì SIM gửi ra cái gì. Bạn phải giám sát từng chặng 1.

chuotdientu
19-11-2011, 11:51 PM
...chân SPK của SIM300 đấu vào con 8870...
Tớ đã làm như bạn nói nhưng tớ vẫn không nhận được tín hiệu DTMF (nhận từ con 8870 xử lí th chân SPK. tớ cũng dùng mấy lệnh AT để set dtmf mà vẫn không được. Tớ nghe bác nào đó trên diễn đàn nói con này không có chức năng dtmf>>--> không biết thật không, có bác nào làm rồi xin chỉ giáo.

..vdk và sim lại ko thấy làm gì được,gọi điện hay nhắn tin gì cũng chả được...
nếu sim300cz đã hoạt động thì phải gọi điện được chứ?? hay là gọi nó vẫn RING mà không xử lí, bạn xem kĩ lại chân truyền nhận giữa vđk và sim300 đúng không, nên nối chân truyền của sim300 với PC luôn để dễ debug.
good luck!

bbld
02-12-2011, 05:03 PM
cảm ơn chuotdientu đã theo dõi
vấn đề thế này
mình code cho con sim nhắn tin,thì ngày đầu tiên chạy được,nó gửi tin nhắn ok.tới ngày thứ 2 thì nạp lại nó ko nhắn tin gì nữa?
mình nghĩ là do sự đồng bộ giữa sim và vdk,mình xử lý bằng cách gửi nhiều lệnh AT,để sim và vdk đồng bộ với nhau
nhưng giờ thì ko làm được gì,gửi lệnh đơn giản ATDsdt để sim gọi điện vào sdt cũng ko được.
ai có cách giúp sim nhận được data gửi từ vdk thì giúp mình với,mình đã thử fix baudrate của sim là 9600 cũng ko được

24h_newload
06-01-2012, 03:06 PM
Chào các sư huynh,

Em đang bị chết dí với cái giao tiếp USART của PIC và modem SIM 300 đây. Mong các sư huynh giúp đỡ.

Vấn đề của em là: dữ liệu từ MODEM SIM300 (Tx) về PortC.7 (Rx) lúc nào cũng bị SET OERR và FERR.......!
Vấn đề của bạn mình cũng gặp tương tự ở AT89S.

1. Nhận dữ liệu : thường chúng ta chỉ dùng 2 chân RX, TX và GND để nhận dữ liệu. Tức là các chân 2,3, và chân 5. các chân còn lại ( xem hình 1)
http://www.papyrus.co.il/images/db9pinout_male_rs232.gif

Do không có dùng các chân còn lại, ko nhận biết được khi nào có dữ liệu đến, quá trình gửi - nhận dữ liệu. Nên sảy ra hiện tượng "trượt" dữ liệu trong bộ đệm.
Cho nên cần phải nhận dữ liệu ngay khi cờ báo truyền tích cực. CÓ DỮ LIỆU LÀ CHẠY ĐI LỤM NGAY KẺO MẤT. Cho nên bạn cần quan tâm vấn đề thời gian thực hiện của bạn có thể gây Delay làm "trượt" dự liệu mà bạn không biết

2. Vấn đề của bạn:
có thể là quá trình ngắt xảy ra quá nhiều, nhưng xử lý sự kiện ko kịp. Trong PIc mình không rành lắm. Nhưng kinh nghiệm của mình là xác định khi nào có dữ liệu thì "ngồi chờ có dữ liệu thì lưu trữ ngay", sau đó mới xử lý dữ liệu lưu trữ này.

P/S: Thu mua số lượng modulsim 300s 300zc 900a 900b ... các loại.có gì mua nấy. Ai có PM mình nhé. 01696920269

hcmute.edu.vn

quantrotoiyeu
18-04-2012, 05:00 AM
cho minh hoi cach viet tap lenh at command de gui nhan tin nhan cho modemsim 900 giao tiep voi pic 16f877a

xuanthuongth
23-06-2012, 06:00 PM
mình cũng đnag làm đề tài tốt nghiệp về vấn đề sms điều khiển thiết bị. dung sim 300cz liên kết trực tiếp với pic 16f877a. bạn nào có kinh nghiệm làm rồi có thể chỉ mình đoạn code thế. mình đưa mạch nguyên lý cho các bạn coi có đúng không nha.

đây là mạch sim300cz:
http://upanhnhanh.net/images/2012/06/23/tp29.png

đây là mạch pic 16f877a
http://upanhnhanh.net/images/2012/06/23/DgOHU.png

naebolo
11-07-2012, 05:36 PM
Bạn cần sự giúp đỡ thì phải đưa code lên đây đã mọi người mới có thể chuẩn bệnh đc chứ:-<

phanloc
23-09-2012, 02:00 PM
Mình đang gặp vấn đề như sau:
- Đã kết nối đc 16f877a với pc, test Rx/Tx ok!
- Đã kết nối sim300 với pc, test lệnh AT ok!
Khi kết nối PIC và sim300 thì PIC gửi lệnh xuống sim300 đc(đã test lệnh thực hiện cuộc gọi), nhưng lại ko đọc đc chuỗi từ sim300 gửi về.
Có ai bị vậy chưa? HELP me!!!

dinhminh09
24-09-2012, 12:54 AM
mình cũng đang bị trường hợp này bí cả tuần nay chưa giải quyết được. sử dụng dao đông nội cung không xong... vấn đề của mình không liên quan tới thạch anh. thử nhưng chương trình ngắt uart nhỏ nhưng nó vẫn không hoạt động nhận đúng chuổi dữ liệu. còn lệnh gửi xuống thì lúc được lúc không. khoảng 10 lần gủi thì được 1 lần. không biết là lỗi ở phần nào nữa. nếu là nhiêu do nguồn nhiễu xoaychieeuf thì tại sao khi giao tiếp với máy tính thì lại tốt. không biết có cao thủ nào ra tay giúp đở không nữa........ mô phỏng ok nhưng mạch thì i à i ạch chạy hổng có được. xin các cao thủ đàn anh đàn chị chỉ em bí quyết cho nó chạy ......................

nguyenhuutien
03-10-2012, 10:12 AM
chào các bác em cũng thấy đề tài này rất hay, bác nào biết chỉ đường cho em nghiên cứu với.em lang thang trên mạng có cả tháng nay rồi mà không được gì hêt.