Hi circuiteers
I have a pair of cheap 433MHz modules. I'm hoping such links will be the basis for a wireless home alarm system which I'll build up with extra peripherals around the home. I'm new to UART but have an experiment Tx/Rx pair working at 2kHz baud. However I'm not impressed by the EUSART module on the PIC16F. The Rx logic seems to do the bare minimum so seems not suited for a noisy RF link. For example, it determines a START bit but first detecting a high->low transition and then sampling 1/2 baud period later; if the input is still low the full byte capture continues ie. the module is busy for 9 more baud periods. However if the channel is just noise there's a 50:50 chance it'll be low at any time, so the Rx unit would be busy recording noise almost all the time. This would be fine but it means my Tx units have a very narrow opportunity to be heard
Bearing in mind in my Rx I'll have a PIC16F15313 with not a lot to do most of the time and a 100ksps ADC on-board I'm thinking it wouldn't be infeasible to write my own UART receiver based on measuring the time of V transitions and sampling the bit 50 times per bit (100ksps / 2kbaud) and using some majority function to reduce noise substantially eg. ON would need to have >40 high samples per bit; OFF would be <10 high samples per bit. I could also have an identifier per Tx unit, and the Rx would evaluate these on some rolling window basis.
Am I crazy to reinvent the wheel, or have others came to the same conclusion?
I have a pair of cheap 433MHz modules. I'm hoping such links will be the basis for a wireless home alarm system which I'll build up with extra peripherals around the home. I'm new to UART but have an experiment Tx/Rx pair working at 2kHz baud. However I'm not impressed by the EUSART module on the PIC16F. The Rx logic seems to do the bare minimum so seems not suited for a noisy RF link. For example, it determines a START bit but first detecting a high->low transition and then sampling 1/2 baud period later; if the input is still low the full byte capture continues ie. the module is busy for 9 more baud periods. However if the channel is just noise there's a 50:50 chance it'll be low at any time, so the Rx unit would be busy recording noise almost all the time. This would be fine but it means my Tx units have a very narrow opportunity to be heard
Bearing in mind in my Rx I'll have a PIC16F15313 with not a lot to do most of the time and a 100ksps ADC on-board I'm thinking it wouldn't be infeasible to write my own UART receiver based on measuring the time of V transitions and sampling the bit 50 times per bit (100ksps / 2kbaud) and using some majority function to reduce noise substantially eg. ON would need to have >40 high samples per bit; OFF would be <10 high samples per bit. I could also have an identifier per Tx unit, and the Rx would evaluate these on some rolling window basis.
Am I crazy to reinvent the wheel, or have others came to the same conclusion?