Hello all, I have been fighting this for a few days now and I am baffled so I thought I'd toss it out to you all...

I am trying to communicate to a serial MP3 player via a 16F268 and just can't seem to get it to go. Here is the strange part. I have no problem communicating with the player when I use a 16F876A (with a 20 mHz resonator) or a 12F629 (using the internal osc). This tell me that my circuit design is fine. I run the same code (with the appropriate device-related changes) on the different chips - 876 & 629 work - 628 doesn't. I am using pins a.0 and a.1 for the communication pins on the 628 (with CMCON = 7). Does anyone see any problems with that? I have tried running the 628 with the int osc, with a 4 mHz and a 20 mhz resonator and no difference. Here is the code:

INCLUDE "modedefs.bas"

@ DEVICE pic16F628, XT_OSC
DEFINE OSC 4

CMCON = 7

TXPin var PORTA.0
RXPin var PORTA.1
Trigger var PORTB.3

TRISA.0 = 0
TRISA.1 = 1
TRISB.3 = 1

B0 var byte
CR CON 13 ' constant value of a carriage return

'************************************************* *******
PAUSE 5000 'allow module time to initialize
SEROUT txpin, T9600,["VST",CR] 'stop anything that's playing

Loop0:
if trigger = 1 then goto loop0 'button is pulled high via 10K resistor

SEROUT txpin, T9600,["VPF file000.mp3",CR] 'Play a file named "file000.mp3"
PAUSE 2000

SERIN rxpin, T9600, [">"],B0 'Waits for "<" to indicate playing done
PAUSE 2000
goto loop0

end

Like I said above, This same code runs fine on other PICs. Is there some issue with the 628's and serial communication that I'm missing. I've been scouring through related posts and don't see anything. The way my circuit is laid out, I am kinda restricted to using A.0 and A.1 on the 628. If there is some reason I should not use those, please let me know and I'll redesign my circuit.

Thanks!