I'm a real beginner with PICS and don't understand the posts about idling that good.
If I connect he Serin Pin to ground it don't hang anymore, or if I rather use the "True" and not "inverted" state.
Is any one of these a reliable solution?
I'm a real beginner with PICS and don't understand the posts about idling that good.
If I connect he Serin Pin to ground it don't hang anymore, or if I rather use the "True" and not "inverted" state.
Is any one of these a reliable solution?
Sorry to jump in late. Just tie a 4.7 K between the serin pin and ground; should solve the problem.
Regards,
Anand
Oh...hey...good point...no kidding.
Jeez, sometimes the simplest fixes are the best.
And if tying it to ground doesn't work (which it should), tie it high, or maybe use a 10K instead of a 4.7K, or maybe a 1K. Might take a bit of experimentation. But I don't see why 4.7K shouldn't work just fine.
I would try to find or fix the problem VS using the external resistor. Especially if you're using the same pin for sending & receiving serial data.
If the other device is holding its pin at logic 1, and you do make it through to your SEROUT2 routine in the lower section, you have a potential short between two pins.
The idle state just means the serial input or output pins are held at the idle logic level during periods when no serial data is being transmitted or received.
For inverted, the TX output should idle at logic 0. And the RX input should be held at logic 0 by the sending device for the SERIN2 timeout/label options to work.
PBP times the idle logic on the RX pin for the duration of the timeout period. If it sees noise, or a steady non-idle logic signal on the RX pin, the timeout period gets reset, and it never exits to the label.
If you're using two PIC's talking together on a serial network type connection with the same pins on each side being used for TX & RX, then you might want to use one of the open baud modes.
If you use SEROUT2/SERIN2 then use mode # 49548, and use the pull-down resistor on the serial network TX/RX pins.
For inverted, open baud mode, the resistor holds the pin that's transmitting & receiving on the serial network at the idle logic level. Each PIC will TX a logic 1 only. Logic 0 for data bits and the idle state is handled by the pull-down resistor.
For true mode you would use a pull-up resistor on the serial network pins, and each PIC would output only logic 0 when transmitting serial data. Logic 1 gets handled by the pull-up resistor. Open baud modes are really handy for single pin serial networks.
Bookmarks