Перейти к содержанию
    

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, что делаю не так?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

18 hours ago, CADiLO said:

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

 

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Изменено пользователем Rse72

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...