Index: CarrierRevE/images/CarrierRevE_PS_app_E0000001.elf
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: CarrierRevE/src/CarrierRevE.h
===================================================================
--- CarrierRevE/src/CarrierRevE.h (revision 1143)
+++ CarrierRevE/src/CarrierRevE.h (working copy)
@@ -13,6 +13,10 @@
#define GPIO_DEVICE_ID XPAR_XGPIOPS_0_DEVICE_ID
//#define CLK_FAN_RST_N_PIN 48
+#define XRM_ARP_SELECT_ST1 16 // gain stage 1
+#define XRM_ARP_SELECT_ST2 19 // gain stage 2
+#define XRM_ARP_SELECT_ST3 18 // gain stage 3
+#define XRM_ARP_SELECT_ST4 43 // attenuator
#define SPI_CLOCK0_PIN 16 //MIO16 FOR SPI CLOCK
#define SPI_MOSI0_PIN 21 //MIO17 FOR SPI MOSI
#define SPI_CS0_PIN 18 //MIO18 FOR SPI CS0 (fanout clock)
Index: CarrierRevE/src/CarrierRevE_main.c
===================================================================
--- CarrierRevE/src/CarrierRevE_main.c (revision 1143)
+++ CarrierRevE/src/CarrierRevE_main.c (working copy)
@@ -83,10 +83,10 @@
//bool temperatureAlert = regThermStatus & 0x1;
// Debug pins
- XGpioPs_WritePin(&Gpio, 46, (carrierId & 0x1) >> 0);
- XGpioPs_WritePin(&Gpio, 47, (carrierId & 0x2) >> 1);
- XGpioPs_WritePin(&Gpio, 48, (carrierId & 0x4) >> 2);
- XGpioPs_WritePin(&Gpio, 49, (carrierId & 0x8) >> 3);
+ //XGpioPs_WritePin(&Gpio, 46, (carrierId & 0x1) >> 0);
+ //XGpioPs_WritePin(&Gpio, 47, (carrierId & 0x2) >> 1);
+ //XGpioPs_WritePin(&Gpio, 48, (carrierId & 0x4) >> 2);
+ //XGpioPs_WritePin(&Gpio, 49, (carrierId & 0x8) >> 3);
// Check control signals in from PL
// If they've changed then write out new values to devices
u32 AsicRegEnNew = Xil_In32(AXI_ASIC_REG_EN_ADDR);
@@ -163,17 +163,23 @@
/***********************FUNCTION DEFINITIONS*****************************/
void GPIO_init(u16 DeviceId){
-
XGpioPs_Config *ConfigPtr;
-
//Initialize the GPIO driver.
ConfigPtr = XGpioPs_LookupConfig(GPIO_DEVICE_ID);
XGpioPs_CfgInitialize(&Gpio, ConfigPtr, ConfigPtr->BaseAddr);
-
}
void GPIO_pins(void){
+ XGpioPs_SetDirectionPin(&Gpio, XRM_ARP_SELECT_ST1, 1); // set as output direction
+ XGpioPs_SetOutputEnablePin(&Gpio, XRM_ARP_SELECT_ST1, 1); // enables the output driver
+ XGpioPs_SetDirectionPin(&Gpio, XRM_ARP_SELECT_ST2, 1); // set as output direction
+ XGpioPs_SetOutputEnablePin(&Gpio, XRM_ARP_SELECT_ST2, 1); // enables the output driver
+ XGpioPs_SetDirectionPin(&Gpio, XRM_ARP_SELECT_ST3, 1); // set as output direction
+ XGpioPs_SetOutputEnablePin(&Gpio, XRM_ARP_SELECT_ST3, 1); // enables the output driver
+ XGpioPs_SetDirectionPin(&Gpio, XRM_ARP_SELECT_ST4, 1); // set as output direction
+ XGpioPs_SetOutputEnablePin(&Gpio, XRM_ARP_SELECT_ST4, 1); // enables the output driver
+
XGpioPs_SetDirectionPin(&Gpio, SPI_CLOCK0_PIN, 1); //set SPI0 as output direction
XGpioPs_SetOutputEnablePin(&Gpio, SPI_CLOCK0_PIN, 1); //enables the output for the SPI0
XGpioPs_SetDirectionPin(&Gpio, SPI_MOSI0_PIN, 1); //set MOSI as output direction
@@ -193,6 +199,7 @@
XGpioPs_SetDirectionPin(&Gpio, 51, 0);
XGpioPs_SetOutputEnablePin(&Gpio, 51, 0);
+/*
//Debugging (using JTAG as GPIO)
XGpioPs_SetDirectionPin(&Gpio, 46, 1);
XGpioPs_SetOutputEnablePin(&Gpio, 46, 1);
@@ -202,6 +209,7 @@
XGpioPs_SetOutputEnablePin(&Gpio, 48, 1);
XGpioPs_SetDirectionPin(&Gpio, 49, 1);
XGpioPs_SetOutputEnablePin(&Gpio, 49, 1);
+*/
//Set direction and output enables for ASIC amp enables
XGpioPs_SetDirectionPin(&Gpio, AMP_ASIC0_PIN, 1);
@@ -280,6 +288,11 @@
void GPIO_defaults(void){
int cal_channel = 0;
+ XGpioPs_WritePin(&Gpio, XRM_ARP_SELECT_ST1, 0x0);
+ XGpioPs_WritePin(&Gpio, XRM_ARP_SELECT_ST2, 0x0);
+ XGpioPs_WritePin(&Gpio, XRM_ARP_SELECT_ST3, 0x0);
+ XGpioPs_WritePin(&Gpio, XRM_ARP_SELECT_ST4, 0x0);
+
// Leave these disabed by default
AMP_ASIC1_LO;
AMP_ASIC2_LO;
Index: Scrod/src/main.c
===================================================================
--- Scrod/src/main.c (revision 1143)
+++ Scrod/src/main.c (working copy)
@@ -11,9 +11,15 @@
#include "feature_extraction.h"
#include "PL_AXI_REG.h"
#include "i2c.h"
+#include "xgpiops.h" //PS GPIO
+#include "xil_io.h"
#define RAW_DATAFORMAT_CARRIER 1 // assumes carrier format for raw data
+#define XRM_ARP_SELECT_ST1 16 // gain stage 1
+#define XRM_ARP_SELECT_ST2 19 // gain stage 2
+#define XRM_ARP_SELECT_ST3 18 // gain stage 3
+#define XRM_ARP_SELECT_ST4 43 // attenuator
#ifdef RAW_DATAFORMAT_CARRIER
@@ -28,8 +34,18 @@
int dataTransferOn = 0;
#define WAVE_BUFFER_SIZE 600 // Needs to stay below 6-7 MB
+#define GPIO_DEVICE_ID XPAR_XGPIOPS_0_DEVICE_ID
+XGpioPs Gpio; //driver instance for GPIO device
+
+/***********************FUNCTION DEFINITIONS*****************************/
+void GPIO_init(u16 DeviceId){
+ XGpioPs_Config *ConfigPtr;
+ //Initialize the GPIO driver.
+ ConfigPtr = XGpioPs_LookupConfig(GPIO_DEVICE_ID);
+ XGpioPs_CfgInitialize(&Gpio, ConfigPtr, ConfigPtr->BaseAddr);
+}
+
int main() {
-
u32 returnval;
volatile u32 featureExtractionMode;
@@ -38,6 +54,24 @@
init_platform();
print("Hello World\n\r");
+ GPIO_init(GPIO_DEVICE_ID);
+ //GPIO_pins();
+ //GPIO_defaults();
+
+ XGpioPs_SetDirectionPin(&Gpio, XRM_ARP_SELECT_ST1, 1); // set as output direction
+ XGpioPs_SetOutputEnablePin(&Gpio, XRM_ARP_SELECT_ST1, 1); // enables the output driver
+ XGpioPs_SetDirectionPin(&Gpio, XRM_ARP_SELECT_ST2, 1); // set as output direction
+ XGpioPs_SetOutputEnablePin(&Gpio, XRM_ARP_SELECT_ST2, 1); // enables the output driver
+ XGpioPs_SetDirectionPin(&Gpio, XRM_ARP_SELECT_ST3, 1); // set as output direction
+ XGpioPs_SetOutputEnablePin(&Gpio, XRM_ARP_SELECT_ST3, 1); // enables the output driver
+ XGpioPs_SetDirectionPin(&Gpio, XRM_ARP_SELECT_ST4, 1); // set as output direction
+ XGpioPs_SetOutputEnablePin(&Gpio, XRM_ARP_SELECT_ST4, 1); // enables the output driver
+
+ XGpioPs_WritePin(&Gpio, XRM_ARP_SELECT_ST1, 0x0);
+ XGpioPs_WritePin(&Gpio, XRM_ARP_SELECT_ST2, 0x0);
+ XGpioPs_WritePin(&Gpio, XRM_ARP_SELECT_ST3, 0x0);
+ XGpioPs_WritePin(&Gpio, XRM_ARP_SELECT_ST4, 0x0);
+
// Circular Waveform Buffer Init
RawWaveformCarrier_t *g_waveBuffer = (RawWaveformCarrier_t*) memalign(4096,sizeof(RawWaveformCarrier_t) * WAVE_BUFFER_SIZE); // compiler has issues with large static arrays (~8MB), so dynamically just to be safe
if(g_waveBuffer == NULL){
|