Well, i fidured out S65 now too. The cable is the key to success.
S55 and S65 use different cable detection mechanisms. Yes, yes, phones novadays are detecting data cables. So, besides the usual Rx, Tx, GND lines, one needs other pins on the phone too, to tell the phone, that cable is present and the datatransfer will happen.
After googling for some time, i found out, that pins 5,6, and 7 of the phone connector determine how the phone will detect the cable. If you connect 5,6,7 through 10k resistors to pin 2, Siemens S65 will detect it as DCA540, which is corresponding to the Siemens USB connection cable. And so the cable is detected, the phone will not respond to AT commands.
Now, if you connect only 5,7 through the 10k resistors to the pin 2, phone will recognize this cable as DCA510, which is Siemens COM cable. And S65 then responding to AT commands. Bingo!
For now, phone is connected straight to pic through 1k resistors on Rx Tx lines. And i tried to scope the Tx line from the phone and yes, i get a spike of about 3-3.5 volts (my scope is an old one) after sending the AT command to the phone. For comparizon, i scoped the Tx line of the pic, which gave about 4.5 volts spike.
So, i conclude, that phone is receiving and anwering now.
I guess, i will now send the Tx signal from the phone trough the MAX232, to insure proper levels for the pic.
And here is mine testing code i use:
DEFINE LOADER_USED 1
'LCD defines
DEFINE LCD_DREG PORTA 'set LCD data port
DEFINE LCD_DBIT 0 'set starting data bit (0 or 4) if 4 bit bus
DEFINE LCD_RSREG PORTA 'set LCD register select port
DEFINE LCD_RSBIT 4 'set LCD register select bit
DEFINE LCD_EREG PORTB 'set LCD enable port
DEFINE LCD_EBIT 3 'set LCD enable bit
DEFINE LCD_BITS 4 'set LCD bus size (4 or 8 bits)
DEFINE LCD_LINES 2 'set number of LCD lines
DEFINE LCD_COMMANDUS 2000 'set command delay time in us
DEFINE LCD_DATAUS 50 'set data delay time in us
DEFINE OSC 20 'set crystal speed
b0 var byte
include "modedefs.bas"
'Main program
pause 1000 'wait for screen to sort get started
start:
lcdout $FE,1, "Sending AT.."
pause 3000
serout2 portc.4, 84, ["AT", 13]
serin2 portc.5, 84, [b0]
lcdout $FE, 1, b0
pause 3000
lcdout $FE,1, "Sending command.."
serout2 portc.4, 84, ["at+cgmm", 13]
serin2 portc.5, 84, [b0]
lcdout $FE,1, b0
pause 5000
goto start
end
-------------------------------------------
Now, i predict your comment about b0. With this i gust try to get anything from the phone, for example, after AT, b0 should be displayed as O (from OK), and after AT+CGMM it should be S (from S65). When i get correct response, i will change to WAIT("OK") or so.
And one more detail. As you see, i used mode 84 in serout2, which is True mode. In inverted mode, which would be the 16468, phone does not respond (very strange, indeed).





Bookmarks