predeina.alexandra19
Newbie
Hello dear forum users!
I will describe my task and my current thoughts about its solution.
The challenge is to transmit signals in both directions over a distance of 3 to 10 km and over ordinary wires. The wires are not a differential bus, just two parallel wires lying side by side. (like a old telephone wire).
The speed is really not very important, some 200-1000 bytes/s will be pretty enough.
After studying the topic and making several experiments, I came to the conclusion that the best option would be to use two microcontrollers, each of which will have 2 SPI modules and 1 UART module. Receiver-Transmitter "Manchester-2" will be implemented on 2 SPI modules and CLC modules, and UART is required to receive and transmit information from an external device.
Up to this point, I have considered HOLT microcircuits, including an encoder / decoder (HI-15530) and a transceiver with transformers. As I understand it, the microcircuit encodes a stream of bytes from the microcontroller, converts this stream into a differential signal and then transmits the signal through the transceiver to the line. I purchased several of these microcircuits and I was able to launch and receive data. But in this example I don't like two points, the first is the limitation of the size of one package to 2 bytes (16 bits) and the second is the high price. In this case, after the transmission of two bytes, a "tail" is formed, which greatly spoils the signal and does not allow the transmission of the next packets faster than the signal is established. (see the picture in the appendix).
At the moment, I purchased a PIC16F15323 microcontroller with one SPI module and 4 CLC cells for testing. I set up SPI, set up CLC and received at the output an SPI signal encoded by "Manchester-2", which I could quite successfully read with a logic analyzer (see the second picture). I suppose, with the one NPN bipolar transistor (or an inverter on the CLC), I can "unwrap" the signal, get a differential signal "Manchester-2", and then feed it to some transceiver, like CAN-BUS or RS485, and get something same but not limited to 2 bytes?
Please tell me if my train of thought is correct and is such a task feasible at all? Or maybe there is some more correct and easier approach?
Thank you in advance for your answer,
Yours faithfully,
Alexandra.
I will describe my task and my current thoughts about its solution.
The challenge is to transmit signals in both directions over a distance of 3 to 10 km and over ordinary wires. The wires are not a differential bus, just two parallel wires lying side by side. (like a old telephone wire).
The speed is really not very important, some 200-1000 bytes/s will be pretty enough.
After studying the topic and making several experiments, I came to the conclusion that the best option would be to use two microcontrollers, each of which will have 2 SPI modules and 1 UART module. Receiver-Transmitter "Manchester-2" will be implemented on 2 SPI modules and CLC modules, and UART is required to receive and transmit information from an external device.
Up to this point, I have considered HOLT microcircuits, including an encoder / decoder (HI-15530) and a transceiver with transformers. As I understand it, the microcircuit encodes a stream of bytes from the microcontroller, converts this stream into a differential signal and then transmits the signal through the transceiver to the line. I purchased several of these microcircuits and I was able to launch and receive data. But in this example I don't like two points, the first is the limitation of the size of one package to 2 bytes (16 bits) and the second is the high price. In this case, after the transmission of two bytes, a "tail" is formed, which greatly spoils the signal and does not allow the transmission of the next packets faster than the signal is established. (see the picture in the appendix).
At the moment, I purchased a PIC16F15323 microcontroller with one SPI module and 4 CLC cells for testing. I set up SPI, set up CLC and received at the output an SPI signal encoded by "Manchester-2", which I could quite successfully read with a logic analyzer (see the second picture). I suppose, with the one NPN bipolar transistor (or an inverter on the CLC), I can "unwrap" the signal, get a differential signal "Manchester-2", and then feed it to some transceiver, like CAN-BUS or RS485, and get something same but not limited to 2 bytes?
Please tell me if my train of thought is correct and is such a task feasible at all? Or maybe there is some more correct and easier approach?
Thank you in advance for your answer,
Yours faithfully,
Alexandra.