AtomSoft
Well-Known Member
Ok i have 2 simple questions which may spark up something bigger i hope.
Is it a good idea to create a custom protocol?
I know that seems like a crazy question but think about it....
SPI is awesome but has the issue of having a Slave Select pin for every device on the line which means more IO is needed.
I2C is great also but it has the issue of bus collisions and maybe not knowing when the bus if free without wasting a few clocks.
I was thinking of making my own Protocol.
I would call it ASTIP. Which as you may have guessed would stand for AtomSoftTech Intergrated Protocol.
It would be more similar to the I2C protocol but with 1 extra pin. This extra pin would be the busy line.
One would first sample the Busy Line and ensure its not in use. If its not in use then one would start a transfer of data somewhat like I2C.
Each device on the line would have there own address and would be able to control the Busy Line at any time but only one at a time.
The busy line since controlled by the slaves would also allow the MASTER to know if a SLAVE is there or not. For example :
1. Master is a PIC18F4620
2. Slave is a BT Module (BTM) with a IC/MCU with my protocol...
Case A:
The master #1 would sends out the address and begin to poll the busy line. If there is something wrong or if the BTM isnt on board the busy line would not be changed and the master would know and cease activity or retry.
Case B:
The master #1 sends out the address and begins to poll the busy line. The BTM is there and gets the address and first responds by setting the Busy line low. This will tell the master that the device is present and ready for commands and data. Also it will tell the other slaves that the line is busy.
Also each slave can then also have a internal interrupt for what ever its doing and when data is ready for the MASTER it can poll the Busy Line and if its free pull it low and the master can then clock in any data waiting on the line with a included address as the first byte.
Well as you can see this is still pretty rough as its all in my head really. But i like it and just wanted to share it.
Do you think making something like this is worth some time. (i have tons of time) Or do you think my time is better spent doing or learning something else
Additionally:
Each device would have a built in buffer which may vary in size to store data from a interrupt or something so data isnt lost when the line is busy.
Also current I2C, SPI etc.. devices can be fitted with a XXX to ASTIP converter. (where xxx = spi,i2c, etc)
Is it a good idea to create a custom protocol?
I know that seems like a crazy question but think about it....
SPI is awesome but has the issue of having a Slave Select pin for every device on the line which means more IO is needed.
I2C is great also but it has the issue of bus collisions and maybe not knowing when the bus if free without wasting a few clocks.
I was thinking of making my own Protocol.
I would call it ASTIP. Which as you may have guessed would stand for AtomSoftTech Intergrated Protocol.
It would be more similar to the I2C protocol but with 1 extra pin. This extra pin would be the busy line.
One would first sample the Busy Line and ensure its not in use. If its not in use then one would start a transfer of data somewhat like I2C.
Each device on the line would have there own address and would be able to control the Busy Line at any time but only one at a time.
The busy line since controlled by the slaves would also allow the MASTER to know if a SLAVE is there or not. For example :
1. Master is a PIC18F4620
2. Slave is a BT Module (BTM) with a IC/MCU with my protocol...
Case A:
The master #1 would sends out the address and begin to poll the busy line. If there is something wrong or if the BTM isnt on board the busy line would not be changed and the master would know and cease activity or retry.
Case B:
The master #1 sends out the address and begins to poll the busy line. The BTM is there and gets the address and first responds by setting the Busy line low. This will tell the master that the device is present and ready for commands and data. Also it will tell the other slaves that the line is busy.
Also each slave can then also have a internal interrupt for what ever its doing and when data is ready for the MASTER it can poll the Busy Line and if its free pull it low and the master can then clock in any data waiting on the line with a included address as the first byte.
Well as you can see this is still pretty rough as its all in my head really. But i like it and just wanted to share it.
Do you think making something like this is worth some time. (i have tons of time) Or do you think my time is better spent doing or learning something else

Additionally:
Each device would have a built in buffer which may vary in size to store data from a interrupt or something so data isnt lost when the line is busy.
Also current I2C, SPI etc.. devices can be fitted with a XXX to ASTIP converter. (where xxx = spi,i2c, etc)
Last edited: