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

maddogmaycry

Участник
  • Постов

    55
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о maddogmaycry

  • Звание
    Участник
    Участник

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

  1. Штука хорошая, но SIMCOM для всего что ниже 3.3v рекомендует простой резисторный делитель. Вероятная цель - упрощение и удешевление дизайна платы. Да, EAT позволяет читать входной пин, и таким образом можно обойтись биполярным NPN трензистором на TX и логикой опроса входного пина. На приём работает вся шина, а на вывод уже управляется отдельно каждый TX. Это дешевле всего. Получается один транзистор и три резистора. По умолчанию база всех транзисторов подтянута к GND. То-есть все TX пины находятся в положении ВЫКЛ. Открываем нужный канал подав на базу незначительный ток, программа читает уровень на базе и таким образом модуль знает что данные адресованы ему. Есть конечно вариант ставить везде какие то конвертеры RS485, функционал расширится, не придется читать никакие входы. Но меня наверное и транзистор на TX устроит, не знаю. Что еще приходит на ум, так это сдвоенный транзистор в SOT457 корпусе. Например такой Nexperia BC817DPN и таким образом можно открывать RX и TX одновременно.
  2. А нельзя использовать N-канальный полевик как ключ на линии TX? По идее то должно работать, не? Или там PNP требуется. И возможно вообще биполярный... Вот такую вот схему нашел https://www.avrfreaks.net/sites/default/files/IMG_20140725_111338b_1.png UPD Да, схема рабочая. Нужен биполярник NPN типа.
  3. Может быть я чуток припозднилс с ответом, но на sim800c32m USB можно использовать USB как консольный ввод/вывод и как быструю прошивку. У меня к вам вопрос - 800H все поддерживают EAT или только специальная версия как sim800c?
  4. На предоставленной схеме ошибка, в общем это делитель, который подтягивает линию RX к 2.4V. Хотел просто показать основные моменты, каким образом параллелится UART. На полной схеме есть все элементы которые рекомендует SIMCOM для MIC29302WT, единственное что я хотел попробовать это параллельный UART примитивным способом как оно будет работать.
  5. Данная схема накинута для вопроса на форуме. Но я ответил выше. Подтяжка. Номиналы резистора там просто для галочки, так как требуется 2.4V.
  6. Что бы получить рекомендуемые значения напряжения из даташита SIMCOM на пине RX. Они там вроде 2.2 ~ 2.4 не помню уже. 4.0 и 3.3. А линия UART 2.2В~2.4В у SIMCOM и 2.4В у ESP32. Точных цифр не помню. Надо искать в дате. UPD В общем скорее всего попробую при помощи транзистора (вероятно нужен PNP) развязать TX симкома от RX ESP32.
  7. Вы имеете ввиду гальваническую развязку оптронами или что то подобное? Или транзисторами? Резисторами колхозить имеется ввиду последовательно от пина RX и TX как то попытаться подобрать номинал резистора?
  8. В общем подрубил обычный TTL конвертер и глянул что там вообще на линиях происходит в момент отключения питания одного из модулей SIM800. Там начинается спам, вероятно от того и ESP32 в панику уходит, так как его UART буфер переполняет. Видимо со схемой все нормально, нужно только подумать как избавиться от этого "спама". Как думаете, чем он может быть вызван? Кстати, как я и говорил ранее, если потом снова включить второй модуль, то связи уже нет. Что ж такое то а.. UPD При отключении одного из модулей иногда TTL конвертер перестает передавать данные. Иногда связь появляется иногда нет. Причем если отключить верхний модуль, то нижний все еще получает данные. В общем какое то неопределенное состояние в разное время по разному.
  9. Осциллограф говорит - купи меня, дурачок 🙂
  10. Здравствуйте! Имеется два SIM800C(EAT), два DC регулятора MIC29302WU, и ESP32 запитанный через lm1117-3.3v. Необходимо параллельно через UART общаться с двумя SIM800C. Пытаюсь подключиться по данной схеме Вот таким образом Но работает только до тех пор, пока оба модуля SIM800C активны. Если один из них лишить земли или отключить питание (оставив землю), то связь пропадает. Восстановив землю или питание модуль не видит данных на контакте RX. На обоих модулях контакты RX и TX подтянуты к VCC внутренними резисторами, на них всегда 2.4V. У ESP32 вроде бы по умолчанию он просто болтается в неопределенном состоянии, и рекомендуется подтянуть этот пин к линии питания что я и сделал. Бывает отключение одного из модулей влечет за собой "панику" ESP32 и он перезагружается.
  11. Написав сюда я только потом глянул подписи участников. Вы даже в такое время находите возможность отвечать. Удачи вам от чистого сердца!
  12. Привет. Никак не одолею 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, что делаю не так?
  13. GND is the quiescent current (IIN = IGND + IOUT). Просто у меня получается на 0.5мА около 4uA. Вот и думаю правильный расчет или нет.
  14. Здравствуйте. Имеется регулятор MIC39100 и табличка к нему https://www.mouser.de/datasheet/2/268/mic39100-778266.pdf#page=4 или http://ww1.microchip.com/downloads/en/DeviceDoc/20005834A.pdf#page=5 Необходимо рассчитать "Quiescent Current" при входном напряжении 4v, выходном 3.3v и потреблении 7uA. Помогите пожалуйста :)
×
×
  • Создать...