Update 2020mar02hkt1905
If you have tested you 2's complement to signed decimal converter OK, you can then define the converter as a function, as shown in my ADXL345 demo program, to be used later. This converter function should not be defined in you ASD1256 class, and of course should not be merged with the convert analog to digital function, making debugging difficult.
Now let me suggest how to start testing your ADS1256 class. I found that you just defined the class, but have not shown how to instantiate an ADS1256 object and do the conversion, print the results etc. I usually suggest to do the "ping" thing, ie, read the device ID. In my ADXL345 demo program, you can see that my ping function is to read the device id "0xe5", I have other ping functions for other devices.
I found that your ADS1256 class has a similar ping or read device ID function, as listed below.
def ADS1256_ReadChipID(self):
self.ADS1256_WaitDRDY()
id = self.ADS1256_Read_data(REG_E['REG_STATUS'])
id = id[0] >> 4
# print 'ID',id
return id
So my suggestion to start debugging is to do the following:
Write a very simple program to read device ID.
It is only when you have successfully
(1) read the device ID, then you can do
(2) the AD conversion, and
(3) convert to signed decimal and (4) print results.
My ADXL345 demo program is a plug and play self contained program without need of other libraries. If you have ADXL345, then you just run my demo program to get the results.
Then you can translate my program for your ADS1256. There is of course the read negative value, and scaling offset problem not yet solved.
Now I would suggest to solve the problem is two steps,
(a) read a standard positive value, say +2.00V, to make sure your scaling and gain is correctly set.,
(b) then set scaling and gain for negative -2.00V.
If your step (a) is debugged, then you are almost there. You can do trials and errors to do setting for negative values.
If you can show me the program listing and sample results like my ADXL345 demo program, I am happy to follow up and make more suggestions or other thing, like how to reduce noises etc.