Jump to content
    

SIM800C EAT SPI

Привет.

Никак не одолею SPI.

Пытаюсь отправить небольшую строку через SPI и вывести в консоль.

#include <stdio.h>
#include <string.h>
#include "eat_modem.h"
#include "eat_interface.h"
#include "eat_uart.h"
#include "eat_timer.h"
#include "eat_periphery.h"
#include "eat_clib_define.h"
extern void APP_InitRegions(void);

void app_main(void *data);
void app_func_ext1(void *data);

#pragma arm section rodata = "APP_CFG"
APP_ENTRY_FLAG 
#pragma arm section rodata
#pragma arm section rodata="APPENTRY"
	const EatEntry_st AppEntry = {
		app_main,
		app_func_ext1
	};
#pragma arm section rodata

void app_func_ext1(void *data){
	EatUartConfig_st cfg = {
		EAT_UART_BAUD_115200,
		EAT_UART_DATA_BITS_8,
		EAT_UART_STOP_BITS_1,
		EAT_UART_PARITY_NONE
	};
	eat_uart_set_debug(EAT_UART_1);
    eat_uart_set_at_port(EAT_UART_2);
	eat_uart_set_debug_config(EAT_UART_DEBUG_MODE_UART, &cfg);
	eat_spi_init(EAT_SPI_CLK_13M, EAT_SPI_4WIRE, EAT_SPI_BIT8, EAT_FALSE, EAT_FALSE);
	eat_pin_set_mode(5, EAT_PIN_MODE_GPIO);
	eat_pin_set_mode(6, EAT_PIN_MODE_CLK);
	eat_pin_set_mode(7, EAT_PIN_MODE_SPI);
	eat_pin_set_mode(14, EAT_PIN_MODE_SPI);
}

void send(char *data){
	eat_trace(data);
}

void app_main(void *data){
    EatGpioLevel_enum gpio_level;
	EatEvent_st event;
    APP_InitRegions();
	// eat_gpio_setup(5,EAT_GPIO_DIR_OUTPUT, EAT_GPIO_LEVEL_LOW);
	// eat_timer_start(EAT_TIMER_1, 1000);
    // send("Hello world");
    eat_sleep(100);
	while(EAT_TRUE){
		gpio_level = eat_gpio_read(5);
		if(gpio_level==0){
			u8 buf[128] = {0};
			eat_spi_read(buf,128);
			eat_trace(buf);
			eat_sleep(100);
		}
		// eat_get_event(&event);
        // eat_trace("MSG id%x", event.event);
        // switch(event.event){
            // case EAT_EVENT_TIMER:{
                    // eat_timer_start(event.data.timer.timer_id, 250);
                    // eat_trace("Timer test , timer ID:%d", event.data.timer.timer_id);
                // }
                // break;
              // default:
                // break;
        // }

    }
}

Со стороны esp32

#include <Arduino.h>
#include <SPI.h>

void setup() {
  SPI.begin();
  SPI.setFrequency(500000);
  Serial.begin(115200);
  pinMode(5,OUTPUT);
  digitalWrite(5,HIGH);
}

void loop() {
  // SPI.beginTransaction(SPISettings(700000, MSBFIRST, SPI_MODE1));
  digitalWrite(5,LOW);
  int i=0;
  while(i<1000){
    SPI.write(7);
    i++;
  }
  digitalWrite(5,HIGH);
  // SPI.endTransaction();
  delay(1000);
}

Уже что только не пробовал. Из набора файлов для SIM800C пишут что для SPI используются пины 5,6,7,14.

Пины esp32 -> sim800c

D18  -> 6 (CLK)
D5    -> 5 (CS)
D23  -> 7 (MOSI)
D19  -> 14 (MISO)

Может тут есть кто подключал по SPI что то к SIM800C, что делаю не так?

Share this post


Link to post
Share on other sites

>>>Может тут есть кто подключал по SPI что то к SIM800C, что делаю не так?

 

Да, по отзывам от клиентов - прекрасно работает с SIM800C по SPI - эзернетовская ENC28J60, некоторые виды памяти и LoRa модули RFM98.

На SPI есть кое какие ограничения, все есть в документации. Перечитайте повнимательнее. Или у Вас возможно старый SDK EAT.

Share this post


Link to post
Share on other sites

18 hours ago, CADiLO said:

>>>Может тут есть кто подключал по SPI что то к SIM800C, что делаю не так?

 

Да, по отзывам от клиентов - прекрасно работает с SIM800C по SPI - эзернетовская ENC28J60, некоторые виды памяти и LoRa модули RFM98.

На SPI есть кое какие ограничения, все есть в документации. Перечитайте повнимательнее. Или у Вас возможно старый SDK EAT.

Написав сюда я только потом глянул подписи участников. Вы даже в такое время находите возможность отвечать. Удачи вам от чистого сердца!

Share this post


Link to post
Share on other sites

А кто у вас мастер, а кто слейв? Вы случаем не пытаетесь два мастера связать?

Edited by Rse72

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...