MCP3551 interfacing with NANO and negative voltages


I have built a voltage source(part of my universal calibrator) using analog circuits and arduino for display. I have made a basic code to display the parameters on display. My analog reading ranging from -5.00 mV to 205.00 mV are fed to my output terminal as well as MCP3551 to display. Using REF3020 IC for reference(2.048 V) to MCP. Now it successfully displays voltages from 0 to 205.00 with stability. When i turn my potentiometer down and voltages go below 0, i get negative voltages on terminal and same voltage is fed to MCP3551. The ADC value doesnt go below 0 and min voltage which i get on lcd display is 0.00. Can anyone point out where i am going wrong? Any suggestions are welcome.

A part of my code here :

#include <MCP3551.h>
#include <SPI.h>
#include <LiquidCrystal.h>

LiquidCrystal lcd(8, 9, 5, 4, 3, 2);

const int MCPPin = 10;
double adc;
double vin = 0;
int pinmv=14;

MCP3551 myADC(MCPPin);

void setup() {

  lcd.begin(16, 2); 

void loop() 

         adc=myADC.byteCode;//adc code from mcp
         vin = (adc*(2.048/2097152)); 
         Serial.print("ADC Value :"); Serial.print(adc);
         mv = digitalRead(pinmv);

if (mv == HIGH)
                          lcd.setCursor(0, 0);
                          lcd.print(" mV:    ");
                          lcd.setCursor(0, 1);
                          lcd.print("      ");


The ADC value that i get on serial ranges from 125 to 256 when physical value on output or MCP input pin is in negative.

Note : Using 22 bit ADC with 2.048 Vref. Total quantization levels : 2097152(0 to 2.048V) and 4194304(-2.048V to 2.048V). Resolution of 488.281 nV.

Thank You