/*
* Copyright 2017 NXP
* All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include "fsl_device_registers.h"
#include "fsl_debug_console.h"
#include "fsl_lpspi.h"
#include "board.h"
#include "app.h"
#include "pin_mux.h"
#include "clock_config.h"
#include "fsl_rgpio.h" // For DRDY if needed
#include "ads1235.h" //ADS1235
#include "spi3.h" //SPI3
#include "board_user_pins.h"
#include "weighing.h"
/*******************************************************************************
* Definitions
******************************************************************************/
#define TRANSFER_SIZE 3U /*! Transfer dataSize */ //ADS1235 is a 24-bit ADC so 3 bytes
#define TRANSFER_BAUDRATE 500000U /*! Transfer baudrate - 500k */
/* SPI3 instance */
#define EXAMPLE_LPSPI_MASTER_BASEADDR LPSPI3
#define EXAMPLE_LPSPI_MASTER_PCS_FOR_INIT kLPSPI_Pcs0
#define EXAMPLE_LPSPI_MASTER_PCS_FOR_TRANSFER kLPSPI_MasterPcs0
/*******************************************************************************
* Variables
******************************************************************************/
uint8_t adcTxCmd[1];
uint8_t adcRxData[TRANSFER_SIZE] = {0};
uint8_t masterRxData[TRANSFER_SIZE] = {0U};
uint8_t masterTxData[TRANSFER_SIZE] = {0U};
/*******************************************************************************
* Main
******************************************************************************/
int main(void)
{
BOARD_InitBootPins(); /* Initialize board pins */
BOARD_InitBootClocks(); /* Initialize clocks */
BOARD_InitDebugConsole(); /* Initialize debug UART */
PRINTF("\r\nADS1235 SPI Test\r\n");
CLOCK_EnableClock(kCLOCK_Gpio1);
BOARD_ConfigUserPins();
BOARD_InitUserPins();
SPI3_Init(); // Your SPI init
uint8_t tx[3] = {0xAA,0x55,0xFF};
uint8_t rx[3] = {0};
lpspi_transfer_t transfer;
transfer.txData = tx;
transfer.rxData = rx;
transfer.dataSize = 3;
transfer.configFlags = kLPSPI_MasterPcs0;
LPSPI_MasterTransferBlocking(LPSPI3, &transfer);
PRINTF("SPI TEST RX: %02X %02X %02X\r\n", rx[0], rx[1], rx[2]);
while (1)
{
/* Write HIGH */
RGPIO_PinWrite(ADS1235_START_GPIO, ADS1235_START_PIN, 1U);
PRINTF("START pin state (HIGH): %d\r\n",
RGPIO_PinRead(ADS1235_START_GPIO, ADS1235_START_PIN));
SDK_DelayAtLeastUs(500000, SystemCoreClock);
/* Write LOW */
RGPIO_PinWrite(ADS1235_START_GPIO, ADS1235_START_PIN, 0U);
PRINTF("START pin state (LOW): %d\r\n",
RGPIO_PinRead(ADS1235_START_GPIO, ADS1235_START_PIN));
SDK_DelayAtLeastUs(500000, SystemCoreClock);
}
}