View previous topic :: View next topic |
Author |
Message |
low
Joined: 04 Feb 2014 Posts: 28 Location: Malaysia
|
Problem interface GSM TC35 with PIC18f4550 |
Posted: Tue Feb 04, 2014 2:15 am |
|
|
Hi,
I'm newbie for the CCS code. Can anyone help me see where my coding had wrong? It unable sms to handphone
Code: | #include <18F4550.h> // PIC18F4550 HEADER FILE
#include <stdlib.h>
#fuses HS,NOWDT,NOLVP,NOPROTECT // EXTERNAL CLOCK, NO WATCH DOG TIMER, NO LOW VOLTAGE PROGRAMMING
#use delay (clock=20M) // 20 MHZ CRYSTAL
#include <lcd.c> // LCD DISPLAY HEADER FILE
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, stream=GSM)
////////////////////////////////////////////////////////////////////////////////
// //
// I/O DECLARATION //
// //
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
// //
// Output :LED //
// //
////////////////////////////////////////////////////////////////////////////////
#define LED1 PIN_B6 // BUZZER 1
#define BUZZER PIN_B7 // LED 2
////////////////////////////////////////////////////////////////////////////////
// //
// Input : SWITCH //
// //
////////////////////////////////////////////////////////////////////////////////
#define BUTTON1 PIN_B0 // PRESET BUTTON 1
////////////////////////////////////////////////////////////////////////////////
// //
// LCD DISPLAY //
// //
////////////////////////////////////////////////////////////////////////////////
#define LCD_E PIN_D0 // PIN E
#define LCD_RS PIN_D1 // PIN RS
#define LCD_RW PIN_D2 // PIN RW
#define LCD_D4 PIN_D4 // PIN D4
#define LCD_D5 PIN_D5 // PIN D5
#define LCD_D6 PIN_D6 // PIN D6
#define LCD_D7 PIN_D7 // PIN D7
////////////////////////////////////////////////////////////////////////////////
void main()
{
////////////////////////////////////////////////////////////////////////////////
// //
// LOCAL VARIABLE //
// //
////////////////////////////////////////////////////////////////////////////////
//int blinking; // VARIABLE FOR BLINK
////////////////////////////////////////////////////////////////////////////////
// //
// PORT INITIALIZE //
// //
////////////////////////////////////////////////////////////////////////////////
lcd_init(); //INITIALISE LCD
////////////////////////////////////////////////////////////////////////////////
// //
// MAIN PROGRAM //
// //
////////////////////////////////////////////////////////////////////////////////
lcd_putc("\f....WELCOME.....");
delay_ms(1000);
lcd_putc("\f");
lcd_putc("\n...loading...!");
delay_ms(1000);
lcd_putc("\f");
lcd_putc("\f....Ready");
delay_ms(1000);
while(TRUE) // always repeat program
{
printf(lcd_putc,"\fSystem On"); // DISPLAY VR VALUE AT LCD DISPLAy
delay_ms(5);
if (!input(BUTTON1)) // when press button 1
{
output_high(LED1); // turn on LED1
output_high(BUZZER); // turn on BUZZER
lcd_putc("\f");
lcd_gotoxy(5,1);
lcd_putc("PIR DETECTED");
lcd_gotoxy(5,2);
lcd_putc("ALARM ON");
delay_ms(1000);
lcd_putc("AT+CMGF=\"1\r"); // send command and cel #
delay_ms(1000); // Delay long enough for modem response
lcd_putc("AT+CMGS=\"0174366043\"\r"); // send command and cel #
delay_ms(1000); // Delay long enough for modem response
lcd_putc("Alarm on!!!\n\r"); // Text to reply
putchar(0x1A); // send Ctrl-z
delay_ms(20);
}
else
{
output_low(LED1);
output_low(BUZZER);
lcd_putc(0x01);
}
}
}
|
Pls help me
Thank you
Regards,
Low |
|
|
Mike Walne
Joined: 19 Feb 2004 Posts: 1785 Location: Boston Spa UK
|
|
Posted: Tue Feb 04, 2014 2:42 am |
|
|
1) Tell us what does work.
2) Add ERRORS to #use RS232.
3) Safer to insert a delay before initialising LCD.
4) How are you testing for sms?
5) Have you tested RS232 talks to a PC?
6) Have you tried using PC to send sms via RS232?
7) Learn to use code button.
Mike |
|
|
low
Joined: 04 Feb 2014 Posts: 28 Location: Malaysia
|
|
Posted: Tue Feb 04, 2014 3:05 am |
|
|
I ardy try use the Hyperterminal using RS232 the GSm is work.
But after i connect using PIC the GSM don't to work
The coding no hv error after i compiled it... but the GSM unable to sms...
It is my coding missing some code??
Regards |
|
|
low
Joined: 04 Feb 2014 Posts: 28 Location: Malaysia
|
|
Posted: Tue Feb 04, 2014 3:12 am |
|
|
when i press the button the led was on... but i didnt receive any message from GSm???
Regards, |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19513
|
|
Posted: Tue Feb 04, 2014 3:34 am |
|
|
You are sending all the commands to the LCD, not to the GSM.....
How is this ever going to work?.
The only thing you send to the GSM, is the single CTRL-Z character. |
|
|
low
Joined: 04 Feb 2014 Posts: 28 Location: Malaysia
|
|
Posted: Tue Feb 04, 2014 3:41 am |
|
|
hi Ttelmah,
Can u teach me how to code it? What shd i add??I'm newbie still on learning.... Thank you
Regards |
|
|
Mike Walne
Joined: 19 Feb 2004 Posts: 1785 Location: Boston Spa UK
|
|
Posted: Tue Feb 04, 2014 5:55 am |
|
|
low wrote: | I ardy try use the Hyperterminal using RS232 the GSm is work.
But after i connect using PIC the GSM don't to work
The coding no hv error after i compiled it... but the GSM unable to sms...
It is my coding missing some code??
Regards |
So does this mean you know what characters to send to the GSM?
Mike
Asking several questions at once was too difficult, so I'll keep them in ones. |
|
|
low
Joined: 04 Feb 2014 Posts: 28 Location: Malaysia
|
|
Posted: Tue Feb 04, 2014 6:04 am |
|
|
thx Mike
Regards |
|
|
Mike Walne
Joined: 19 Feb 2004 Posts: 1785 Location: Boston Spa UK
|
|
Posted: Tue Feb 04, 2014 7:08 am |
|
|
I assume you can correctly send from a PC to GSM.
I suggest you use a PC to look at what you are trying to send from PIC to GSM.
Mike |
|
|
Gabriel
Joined: 03 Aug 2009 Posts: 1067 Location: Panama
|
|
Posted: Tue Feb 04, 2014 8:23 am |
|
|
Hi Low,
Are you working on real hardware?
Does your LCD work?
How is the GSM module connected to the PIC?
Once you have answered these questions we can continue to help.
This is a pointless exercise if you dont have working hardware.
If all of the above is OK, then you should be able to use this Driver:
http://www.ccsinfo.com/forum/viewtopic.php?t=50390
... by changing the PIC# and fuses for your chip.
Its a pretty verbose driver and it should tell you what is going on or where its stuck on the LCD. Basically, it will tell you if your hardware is not working.
once you get the driver working as is, we can help modify the driver to your specific needs...
99% of the work is done for you already.
help us help you.
G. _________________ CCS PCM 5.078 & CCS PCH 5.093 |
|
|
ezflyr
Joined: 25 Oct 2010 Posts: 1019 Location: Tewksbury, MA
|
|
Posted: Tue Feb 04, 2014 8:29 am |
|
|
Hi,
You should post a link to the datasheet for your TC35. There are many 'flavors' of this module depending on the extra interface circuitry that is
(almost) always included. I assume that yours has an RS232 interface, and that you are connecting the TC35 to the PIC via a MAX232 type IC, right?
As Ttelmah has noted, you define a stream 'GSM', but never use it to send data to the TC35. You need to use 'fprintf' for this purpose. Before you
blast off trying to send SMS messages, why not try a simple test to see if the modem responds to a simple 'AT' request? the modem should respond
with 'OK' if everything is working!
Code: |
fprintf(GSM, "AT\r");
|
As a 'quick and dirty' test, use fgetc() in a loop right after this call to send any received characters to your LCD. Do you get the correct response?
Good Luck!
John |
|
|
low
Joined: 04 Feb 2014 Posts: 28 Location: Malaysia
|
|
Posted: Tue Feb 04, 2014 9:48 am |
|
|
Hi Gabriel,
yap, i done it on real hardware....
My LCD is working
Connection:
PIC TX connect to GSM TX
PIC RX connect to GSM RX
[/img]https://www.facebook.com/photo.php?fbid=718803788153760&set=a.380195265347949.96272.100000724357835&type=1&theater |
|
|
low
Joined: 04 Feb 2014 Posts: 28 Location: Malaysia
|
|
Posted: Tue Feb 04, 2014 10:00 am |
|
|
Hi Gabriel,
U mean the sample code??? I try compile it.. it got many of errors???
Hi ezflyr,
My connection is directly to GSM didnt via a MAX232 type IC...
PIC TX connect to GSM TX
PIC RX connect to GSM RX
Regards, |
|
|
ezflyr
Joined: 25 Oct 2010 Posts: 1019 Location: Tewksbury, MA
|
|
Posted: Tue Feb 04, 2014 10:19 am |
|
|
Hi Low,
Ummm, you undoubtedly have a hardware issue...... First, this is totally wrong:
Quote: |
PIC TX connect to GSM TX
PIC RX connect to GSM RX
|
The GSM Tx must (ultimately) be connected to the PIC Rx, and the GSM Rx must (ultimately) be connected to the PIC Tx.
You did not post a datasheet for the TC35 as I requested, so it's really a huge waste of time to speculate about your potential hardware issues.
If you can't do that, this is my final post in this thread! You *probably* need a MAX232 IC between the PIC and the GSM modem, but that's
just a hunch based on past dealings with the TC35.
If you connected the GSM module to you PC using the same interface that you are now attempting to connect to your PIC, then your hardware
implementation is 100% wrong!
Have you done any research in the forum? This exact problem has already been solved multiple times, so you are really asking us to
do your work for you!
John |
|
|
low
Joined: 04 Feb 2014 Posts: 28 Location: Malaysia
|
|
Posted: Tue Feb 04, 2014 10:48 am |
|
|
|
|
|
|