WINC1500 breakout board not working with Arduino Mega

I am using the example code for Adafruit WINC1500 breakout board (https://www.digikey.com/product-detail/en/adafruit-industries-llc/2999/1528-1579-ND/5844693) on Arduino Mega. I have a custom board where I have connected pins as follows: WiFi.setPins(11, 12, 13, -1) (PortB pins on ATmega2560). I have added a print statement to indicate when the code is in setup() function. As can be seen in the output image attached, the MEGA keeps on resetting. The code works perfectly fine if I use pins 9,8, or 6 (PortH pins on ATmega 2560) for IRQ connection. But I already have a custom board and want a workaround for this. Thanks in advance.

#include <SPI.h>
#include <WiFi101.h>
///////please enter your sensitive data in the Secret tab/arduino_secrets.h
  char ssid[] = "GL-AR300M-3bf-NOR";        // your network SSID (name)
  char pass[] = "goodlife";    // your network password (use for WPA, or use as key for WEP)
int status = WL_IDLE_STATUS;     // the WiFi radio's status

void setup() {
  //Initialize serial and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }
  Serial.println("In setup");
  
  WiFi.setPins(11, 12, 13, -1);
  // check for the presence of the shield:
  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("WiFi shield not present");
    // don't continue:
    while (true);
  }

  // attempt to connect to WiFi network:
  while ( status != WL_CONNECTED) {
    Serial.print("Attempting to connect to WPA SSID: ");
    Serial.println(ssid);
    // Connect to WPA/WPA2 network:
    status = WiFi.begin(ssid, pass);

    // wait 10 seconds for connection:
    delay(10000);
  }

  // you're connected now, so print out the data:
  Serial.print("You're connected to the network");
  printCurrentNet();
  printWiFiData();

}

void loop() {
  // check the network connection once every 10 seconds:
  delay(10000);
  printCurrentNet();
}

void printWiFiData() {
  // print your WiFi shield's IP address:
  IPAddress ip = WiFi.localIP();
  Serial.print("IP Address: ");
  Serial.println(ip);
  Serial.println(ip);

  // print your MAC address:
  byte mac[6];
  WiFi.macAddress(mac);
  Serial.print("MAC address: ");
  printMacAddress(mac);

}

void printCurrentNet() {
  // print the SSID of the network you're attached to:
  Serial.print("SSID: ");
  Serial.println(WiFi.SSID());

  // print the MAC address of the router you're attached to:
  byte bssid[6];
  WiFi.BSSID(bssid);
  Serial.print("BSSID: ");
  printMacAddress(bssid);

  // print the received signal strength:
  long rssi = WiFi.RSSI();
  Serial.print("signal strength (RSSI):");
  Serial.println(rssi);

  // print the encryption type:
  byte encryption = WiFi.encryptionType();
  Serial.print("Encryption Type:");
  Serial.println(encryption, HEX);
  Serial.println();
}

void printMacAddress(byte mac[]) {
  for (int i = 5; i >= 0; i--) {
    if (mac[i] < 16) {
      Serial.print("0");
    }
    Serial.print(mac[i], HEX);
    if (i > 0) {
      Serial.print(":");
    }
  }
  Serial.println();
}

I also tried the analog inputs, even they work pretty well, what is so different about PortB of ATmega2560

you must use SPI pins of the MCU and a valid CS pin

I am using the SPI pins of the MCU. The code doesn't work only when I change the IRQ pin to any of the following pins: 11,12 or 13

aks_sy: I am using the SPI pins of the MCU. The code doesn't work only when I change the IRQ pin to any of the following pins: 11,12 or 13

That's because those pins are being used for communicating with the shield via SPI. IRQ needs to be on a non-SPI pin.

DrAzzy: That's because those pins are being used for communicating with the shield via SPI. IRQ needs to be on a non-SPI pin.

it is not a shield and Mega doesn't have SPI on 11,12,13