Hi,
I am using Quectel M66 module with the latest firmware (M66FAR02A07BT) and the latest openCPU SDK (M66_OpenCPU_GS3_SDK_V2.5).
I use AT Commands to access SD Card files, it works as expected:
[2022-09-12 10:27:44:115_R:] OK
[2022-09-12 10:28:01:439_S:] AT+QFREAD=17825793
[2022-09-12 10:28:01:517_R:] AT+QFREAD=17825793
[2022-09-12 10:28:01:517_R:] CONNECT 21
[2022-09-12 10:28:01:517_R:] Some Text in ASCII…
[2022-09-12 10:28:01:517_R:] OK
Then I upload the example_file.c into the module, but it doesn’t work when TEST_FOR_MEMORY_CARD is defined. it tell me that SD Card free space and available space is -35 (as you know it’s equal to QL_RET_ERR_FILEFAILED)
for AT Command-ish handling, there is a pdf named “Quectel_GSM_FILE_AT_Commands_Manual_V1.5.pdf” that can be downloaded from official page of M66: GSM/GPRS M66 | Quectel
for file handling using OpenCPU, there is not much reference but the file named “example_file.c” found in OpenCPU SDK have a acceptable explanation…
I remind it again, when I upload bare metal firmware all the functions works great. with SDK v2.5 (or v2.6), UFS works but SD Card, not (even with send handy commands to core).
Hi,
+CME ERROR: 4014 Indicates a file driver ERROR. Please check whether the SD card can be used normally and whether the file path of the SD card is correct. You are advised to delete the files of the SD card in AT mode and then run the example command in example.file.c in open mode.
Yes, 4014 is Driver error but SD Card and it’s wiring is same as when M66 runs original firmware. had you test openCPU SD Card handling before? I Doubt SDK v2.6 not support SD itself
Hi,I haven’t tested SD on M66, only UFS, but since this example is open in the SDK, I think there is a high probability that it is supported. Maybe something is wrong. Could you please provide me with your main uART log and example_file.c?
/************************************************************************/
/* Define the GPIO pin for external watchdog. */
/* NOTES: */
/* Customer may specify two GPIOs if needed. */
/************************************************************************/
static const ST_ExtWatchdogCfg wtdCfg = {
PINNAME_PCM_OUT, // Specify a pin which connects to the external watchdog
PINNAME_END // Specify another pin for watchdog if needed
};
ST_ExtWatchdogCfg* Ql_WTD_GetWDIPinCfg(void)
{
return (ST_ExtWatchdogCfg*)(&wtdCfg);
}
PCM_OUT most not be set for external watchdog by default beacuse then it can not be used for SDIO! removed both and it works!