chipKIT® Development Platform

Inspired by Arduino™

Cerebot MX3cK with PmodAD5

Created Mon, 04 Nov 2013 14:18:24 +0000 by RobinSI


Mon, 04 Nov 2013 14:18:24 +0000

hello all. I need your help. To perform the analog-digital conversion I acquired the PmodAD5 and I have no idea how to acquire the information to my chipKIT Cerebot MX3cK. I decided to use MPIDE because I want to code program usable on several plateform (like Arduino). I downloaded the generic DRIVER for the PmodAD5 on this site:

The DRIVER is correctly compile, but I had to create three functions for using my PmodAD5 with the SPI communication.

SPI_Init() function :

unsigned char SPI_Init(unsigned char lsbFirst,
                       unsigned long clockFreq,
                       unsigned char clockPol,
                       unsigned char clockEdg)

this function must initialize the SPI communication peripheral and return 1 if initilization is succesfull.

SPI_Read() function :

unsigned char SPI_Read(unsigned char slaveDeviceId,
                       unsigned char* data,
                       unsigned char bytesNumber)

Reads data from SPI: -slaveDeviceId - The ID of the selected slave device -Data represents the write buffer as an input parameter and the read buffer as an output parameter. -bytesNumber - Number of bytes to read. -return Number of read bytes.

SPI_Write() function :

unsigned char SPI_Write(unsigned char slaveDeviceId,
                        unsigned char* data,
                        unsigned char bytesNumber)

Writes data to SPI: -slaveDeviceId - The ID of the selected slave device. -Data represents the write buffer. -bytesNumber - Number of bytes to write. -return Number of written bytes.

I have no ideas how to implemente those functions. SPI_(Init/Read/Write) functions are implemented on this site : [url][/url] So, I try with that, and I add this code :

void setup()
   SPI.begin();//start SPI communication
   pinMode(PMOD1_CS_PIN, OUTPUT);// define the chipselect
   pinMode(AD7193_RDY_STATE, INPUT);// define Miso pin as an input
   AD7193_Init();//initialize PmodAD5
   AD7193_ChannelSelect(AD7193_CH_0);// select channel 0 on PmodAD5
void loop()
  unsigned long data;
  data= AD7193_GetRegisterValue(AD7193_REG_ID, 1, 1);
  Serial.print(data, HEX);

The code is correctly compiled! But I do not communicate with PmodAD5, I have nothing in Serial Clock, i think SPI communication isn't properly configurate.
I don't know where is the mistake, in my code, or in SPI_(Init/read/write) functions.

An other DRIVER is available on this site : [url][/url] i try to follow this tutorial but the DRIVER does nor work and it use DSPI library(specific SPI library to chipkit) and I want to use SPI library(for using on Arduino) , that's why I decided to use generic DRIVER.

Somebody can help me? please...

In advance thank you for your help. Regards, Robin.


Wed, 06 Nov 2013 13:33:42 +0000

Hello Robin,

You should read the pdf as below :


PS :