PDA

View Full Version : Hserin/hserout ?



Scott
- 27th April 2005, 03:23
What is wrong with the following code?

HSEROUT ["AT+CGDCONT=1", 34, "IP", 34, ",", 34, "myserver.address", 34,13,10,13,10,13,10] ' 34 is for "
HSERIN 5000, setup, [WAIT("OK")]

I am able to check the device I am communicating with using HyperTerminal. I am able to get the CONNECT back from the device.

I am using a PIC16F876A with an RS-232 driver. PORTC.6 is my TX and PORTC.7 is my RX.

Thanks for your help,
Scott

mister_e
- 27th April 2005, 04:42
I am able to check the device I am communicating with using HyperTerminal. I am able to get the CONNECT back from the device.


Since it looks like you're able to do everything... what's the problem?

are you really use Hyperterminal? OH MY GOD another victim of this crap software!

have you try with MicroCode Studio in the serial communication window?

Scott
- 27th April 2005, 04:53
I have this working with another board using Serin/Serout no problem. Once I tried my new hardware that is setup with the USART pins C6 and C7 it does not work. My hardware has a DB15HD that is to connect to my modem I cannot connect directly to my PC.

Another question: Can I use Serin/Serout and not Hserin/Hserout on the USART pins C6 and C7?

I use hyperterminal to debug the modem not my hardware.

Thanks

mister_e
- 27th April 2005, 06:30
for sure you can use serin/serout on those pins. But if you send us your code or a snip with your DEFINE, TRIS and others, we can help you to make it work

Scott
- 27th April 2005, 06:50
Here is some of my code:

' Setup Crystal Frequency in mHz
DEFINE OSC 20 ' Set Xtal Frequency

' Setup Auto Epic Settings
@ DEVICE PIC16F876A
@ DEVICE HS_OSC ' System Clock Options
@ DEVICE WDT_OFF ' Watchdog Timer
@ DEVICE PWRT_OFF ' Power-On Timer
@ DEVICE BOD_OFF ' Brown-Out Detect
@ DEVICE LVP_OFF ' Low-Voltage Programming
@ DEVICE CPD_OFF ' Data Memory Code Protect
@ DEVICE PROTECT_OFF ' Program Code Protection

' Setup Hardware for uart
DEFINE HSER_BAUD 9600
DEFINE HSER_RCSTA 90h
DEFINE HSER_TXSTA 24h
DEFINE HSER_SPBRG 129
DEFINE HSER_CLROERR 1 ' automatic clear the overflow

TRISC.6 = 0
TRISC.7 = 1

ipaddress var byte[15]

'Setup Modem for No Flow Control
hserout ["at+ifc=0,0", 13]

checkip:
hserout ["at*e2ipi=0", 13] ' Check the IP Session
hserin 20000, setup, [WAIT("*E2IPI: "),STR ipaddress]

main:
Hserout ["at+cgdcont=1,", 34, "IP", 34, ",", 34, "myserver.address", 34,13]

Hserin 20000, setup, [WAIT("OK")]
Hserout ["at*e2ipa=1,1", 13]
Hserin 20000, setup, [WAIT("OK")]
goto main

I have been able to connect my board to my pc and the hserout is working as it should. I am not able to get anything back from the pc or modem.

Is the hserin setup correctly?

Thanks again, Scott

mister_e
- 27th April 2005, 18:05
mmm. Actually you don't need this DEFINE HSER_BAUD since DEFINE HSER_SPBRG do the same job but i don't think it's the problem source.

What about if you remove the timeout label?

Did you try Hyperterm or else to send the expected string to the PIC?

Scott
- 28th April 2005, 00:46
mister_e,

Yes, I have been successfull connecting and sending the expected strings back to the PIC from the PC. Again, I do the same thing with the modem to hyperterminal and send the at commands and get the correct response.

This is the first time I have tried to connect to the modem using the USART a MAX232 transceiver. Usually I utilize other pins and use SERIN/SEROUT inverted and non-inverted and it has been working well with some of my other hardware.

I have changed the 232 transceiver with a ST232 and a MAX332 with the same results.

Tonight I will use the same hardware then remove the trace to the USART and connect to PORTC.4 for my TX and PORTB.3 for RX and see if this works.

Thanks, Scott