PDA

View Full Version : Sala de peru



cardservicios
- 2nd July 2014, 19:20
Quiero hacer una comunicacion spi con un conversor analogo digital de 24 bit ALGUIEN ME PUEDE GUIAR CON LA PROGRAMACION MCP3421 MICROCHIP

Edit, English: I want to make a spi communication with a digital analog converter 24 bit CAN ANYONE GUIDE ME WITH MICROCHIP MCP3421 PROGRAMMING

longpole001
- 3rd July 2014, 07:27
http://ww1.microchip.com/downloads/en/DeviceDoc/22003b.pdf

18 BIT FROM WHAT I READ

EarlyBird2
- 3rd July 2014, 08:50
Quiero hacer una comunicacion spi con un conversor analogo digital de 24 bit ALGUIEN ME PUEDE GUIAR CON LA PROGRAMACION MCP3421 MICROCHIP

Edit, English: I want to make a spi communication with a digital analog converter 24 bit CAN ANYONE GUIDE ME WITH MICROCHIP MCP3421 PROGRAMMING

Yes help will be available here. What do you need to know?

EarlyBird2
- 3rd July 2014, 10:09
Do you want DAC or ADC? The MCP3421 is 18 bit ADC. Not 24 bit digital analogue converter.

cardservicios
- 9th July 2014, 20:52
I want an example of communication spi mcp3551

cardservicios
- 9th July 2014, 20:54
I want an example of communication spi mcp3551 A/D.

with pic 16f877a in pic basic pro

EarlyBird2
- 14th July 2014, 07:01
I want an example of communication spi mcp3551 A/D.

with pic 16f877a in pic basic pro

Have you made a start on this?

Dave
- 14th July 2014, 12:04
Cardservicios, Here is an A/D routine I wrote a few years back for accessing 2 MCP3551 A/D's for my daughter's hydroponic and heater controller. I did not use I2C hardware directly but maybe you can use it as a basis for an I2C routine.

'************************************************* *******************
READMCP3551: 'CAPTURE MCP3551 22 BIT SIGMA/DELTA READING (SPI)
'************************************************* *******************
SCL = 1 'PRESET CLOCK STATE TO HIGH
SELECT CASE ADCHANNEL
CASE 0
CS0 = 0 'ENABLE MCP3551 #1
CASE 1
CS1 = 0 'ENABLE MCP3551 #2
CASE ELSE
VOLTS(ADCHANNEL) = 0
RETURN
END SELECT
PAUSEUS 2
IF SDA = 0 THEN 'CHECK FOR CONVERSION COMPLETE
SHIFTIN SDA,SCL,6,[MSBYTE\8,MIDBYTE\8,LSBYTE\8]
CS0 = 1 'DISABLE MCP3551 #1
CS1 = 1 'DISABLE MCP3551 #2
JUNK = MSBYTE >> 5
SELECT CASE JUNK
CASE 0 'NORMAL POSITIVE READING
POLARITY = 0
OVERANGE(ADCHANNEL) = 0
CASE 1 'NORMAL NEGATIVE READING
POLARITY = 1
OVERANGE(ADCHANNEL) = 0
CASE 3 'FULL SCALE POSITIVE READING
POLARITY = 0
OVERANGE(ADCHANNEL) = 1
CASE 4 'FULL SCALE NEGATIVE READING
POLARITY = 1
OVERANGE(ADCHANNEL) = 1
END SELECT
IF OVERANGE(ADCHANNEL) = 0 THEN 'IF READING IS WITHIN LIMITS
IF POLARITY = 0 THEN 'POSITIVE POLARITY
ADSCRATCH1.BYTE3 = 0
ADSCRATCH1.BYTE2 = (MSBYTE & %00011111)
ADSCRATCH1.BYTE1 = MIDBYTE
ADSCRATCH1.BYTE0 = LSBYTE
ELSE 'POLARITY = 1 'NEGATIVE POLARITY
ADSCRATCH1.BYTE3 = 255
ADSCRATCH1.BYTE2 = MSBYTE | %11100000
ADSCRATCH1.BYTE1 = MIDBYTE
ADSCRATCH1.BYTE0 = LSBYTE
ENDIF
ELSE
IF POLARITY = 0 THEN 'POSITIVE POLARITY
ADSCRATCH1.BYTE3 = 127
ELSE 'POLARITY = 1 'NEGATIVE POLARITY
ADSCRATCH1.BYTE3 = 255
ENDIF
ADSCRATCH1.BYTE2 = 255
ADSCRATCH1.BYTE1 = 255
ADSCRATCH1.BYTE0 = 255
ENDIF
VOLTS(ADCHANNEL) = ADSCRATCH1
ELSE
CS0 = 1 'DISABLE MCP3551 #1
CS1 = 1 'DISABLE MCP3551 #2
ENDIF
RETURN

cardservicios
- 17th July 2014, 13:27
thanks for your help

thanks for your help, I am new to programming have a simple example