In addition to Bruce, what about the config fuses? HS OSC or XT OSC???
In addition to Bruce, what about the config fuses? HS OSC or XT OSC???
Steve
It's not a bug, it's a random feature.
There's no problem, only learning opportunities.
For mine, I am using T9600 for SEROUT. And Hyperterm is set to 8N1.
Oscillator config fuse is set to XT (done in the bootloader firmware).
As I said, HSEROUT works perfectly. The bootloader runs smoothly at 19200, then I use the DEFINES in the PBP program to set the USART to 9600 baud.
I WILL find the problem....eventually. I haven't exhausted all of my methodical troubleshooting options yet. And I have a bit more reading up on the USART. It's possible I can just use the USART once I learn how to quickly switch between USART and using the pin as a digital I/O.
But it concerns me that I can't get the the software serial routines to put out anything but apparent garbage. And it's probably the same thing that is causing problems for Achilles.
Last edited by milestag; - 17th November 2005 at 20:19.
I'm still having a rough time getting mine to communicate correctly. I've even tried 2 different PICs (12F629 and a 16F628). Below is the code I'm using for the 629:
______________________________________
cmcon=7
define osc 4
loop:
serout GPIO.0,3,[84,97,99,111,10,13]
pause 50
low portb.1
pause 50
high portb.1
Goto loop
______________________________________
However, here is the output I get:
http://www.geocities.com/achilles03/debug.jpg
I'm running it off the internal osc. Is it possible the frequency of the internal osc varies enough to result in an unintelligible output?
I've also tried different baud rates and serout2, but with similar results (for both PICS). Can anyone see anything obvious, like some sort of conversion or program omission, that I'm doing wrong? I'd appreciate any advice.
Dave
with 8MHZ osc, you must set the config fuse to HS osc. Bruce already spot on the problem cause...
Souds really like a bad Inverted/True mode to me.Originally Posted by bruce
Steve
It's not a bug, it's a random feature.
There's no problem, only learning opportunities.
I have pin 2 (PIC side) connected to pin 3 (PC side), and pin 5 (GND) on both connected. I also have pins 7 and 8 connected on the PC side.
Achilles,
A little while back, I saw a post by Melanie that stated you MUST use a crystal or resonator for reliable PIC to PC async comms. I would say this is ESPECIALLY true for a PIC12F629. Might do better with a 12F683 which has 1% accuracy internal osc (factory calibrated) without the need for reading and restoring an oscal value.
I ended up doing some last minute changes to my PC board design (luckily BEFORE I did a production run) in order to incorporate the resonator.
BTW - sorry...I feel like I hijacked your thread. But we may have similar problems. I see similar nonsense characters on HYPERTERM and on the TINY BOOTLOADER terminal.
Mister_e, Dick,
Thanks, I'll try the HS OSC setting. But, as I said, the HSEROUT works fine at 9600 baud and the bootloader works fine at 19200. Same project....I'm just trying to add the SEROUT command to my program for debugging.
I am going through a MAX232, and using TRUE mode. I've tried true and inverted. It is a straight-through cable, and I don't change any connections between HSEROUT and SEROUT. I just comment out all the HSEROUT DEFINEs while I try the SEROUT command.
I also tried DEBUG, but for some reason MPASM (which I must use for 18F2525) generates an error that I am attempting to redefine "DEBUG".
Ultimately I will probably have to start with a simpler program with no bootloader, etc. That way I can isolate the PBP commands and PC interface. I think I am dealing with too many variables at this point (hardware AND software).
Thanks for the help so far, guys. I'll try these things this weekend and post back here with results.
-Jim
Bookmarks