Нужна библиотека AltSoftSerial.h

Vadim0312
Offline
Зарегистрирован: 27.11.2016

Для работы с GSM модулем А9 плохо работает библиотека SoftSerial.h Слышал что для этого желательно использовать библиотеку AltSoftSerial.h Где ее откопать ???

 

Rumata
Rumata аватар
Offline
Зарегистрирован: 29.03.2019
gfo
Offline
Зарегистрирован: 20.03.2021

тут

или тут

Logik
Offline
Зарегистрирован: 05.08.2014

Vadim0312 пишет:

Для работы с GSM модулем А9 плохо работает библиотека SoftSerial.h Слышал что для этого желательно использовать библиотеку AltSoftSerial.h Где ее откопать ???

 

Продам недорого. Состояние хорошее.

Rumata
Rumata аватар
Offline
Зарегистрирован: 29.03.2019

Logik пишет:

Продам недорого. Состояние хорошее.

Пробег по РФ большой? Память не жрет? Подумываю себе вторую взять на подменку

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Вот что меня радует в этом форуме, что даже на самые глупые вопросы тут пытаются ответить... И ведь по делу, черт возьми :)

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Rumata пишет:

Logik пишет:

Продам недорого. Состояние хорошее.

Пробег по РФ большой? Память не жрет? Подумываю себе вторую взять на подменку


Танунах! Через либ шеринг на пару компиляций взять проще!

Vadim0312
Offline
Зарегистрирован: 27.11.2016

Спасибо

 

 

vlad072
Offline
Зарегистрирован: 01.08.2017

Эта библиотека будет корректно работать на "кастомных" скоростях порта? В частности интересует 10000 бод.

Rumata
Rumata аватар
Offline
Зарегистрирован: 29.03.2019

vlad072 пишет:

Эта библиотека будет корректно работать на "кастомных" скоростях порта? В частности интересует 10000 бод.

Одно из двух. 

vlad072
Offline
Зарегистрирован: 01.08.2017

Судя по строке в AltSoftSerial.h значения вычисляемые. 

static void begin(uint32_t baud) { init((ALTSS_BASE_FREQ + baud / 2) / baud); }

В SoftwareSetial фиксированные вроде. Кто что скажет по существу?

sadman41
Offline
Зарегистрирован: 19.10.2016

По существу скажет эксперимент.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

sadman41 пишет:
По существу скажет эксперимент.

процент попадания можно посчитать...но к примеру в CustomSoftwareSerial скорости указаны прямо и их там совсем немного (навскидку три-четыре)

Upper
Offline
Зарегистрирован: 23.06.2020

ua6em пишет:

...но к примеру в CustomSoftwareSerial скорости указаны прямо и их там совсем немного (навскидку три-четыре)

А не на вскидку 13. Наверное все "стандартные" от 300 до 115200

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Upper пишет:

ua6em пишет:

...но к примеру в CustomSoftwareSerial скорости указаны прямо и их там совсем немного (навскидку три-четыре)

А не на вскидку 13. Наверное все "стандартные" от 300 до 115200

Это да! Попутал с частотами тактирования 8, 16 и 20 мегагерц, другие не поддерживаются

vlad072
Offline
Зарегистрирован: 01.08.2017

Ещё вопросец. А никто не пытался настроить порт в этой библиотеке? Нужен бит чётности

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

vlad072 пишет:

Ещё вопросец. А никто не пытался настроить порт в этой библиотеке? Нужен бит чётности

Для этого эта настройка там должна быть, но её там нет. Биты четности - CustomSoftwareSerial!

#define CSERIAL_5N1 501
#define CSERIAL_6N1 601
#define CSERIAL_7N1 701
#define CSERIAL_8N1 801

#define CSERIAL_5N2 502
#define CSERIAL_6N2 602
#define CSERIAL_7N2 702
#define CSERIAL_8N2 802

#define CSERIAL_5O1 511
#define CSERIAL_6O1 611
#define CSERIAL_7O1 711
#define CSERIAL_8O1 811

#define CSERIAL_5O2 512
#define CSERIAL_6O2 612
#define CSERIAL_7O2 712
#define CSERIAL_8O2 812

#define CSERIAL_5E1 521
#define CSERIAL_6E1 621
#define CSERIAL_7E1 721
#define CSERIAL_8E1 821

#define CSERIAL_5E2 522
#define CSERIAL_6E2 622
#define CSERIAL_7E2 722
#define CSERIAL_8E2 822

enum Parity {
    NONE = 0,
    ODD = 1,
    EVEN = 2
};

 

vlad072
Offline
Зарегистрирован: 01.08.2017

Не годится, у неё скоростя "табличные". Не в курсе какие значения для baud = 10000 нужно внести?

static const DELAY_TABLE PROGMEM table[] =
{
  //  baud    rxcenter   rxintra    rxstop    tx
  { 115200,   1,         17,        17,       12,    },
  { 57600,    10,        37,        37,       33,    },
  { 38400,    25,        57,        57,       54,    },
  { 31250,    31,        70,        70,       68,    },
  { 28800,    34,        77,        77,       74,    },
  { 19200,    54,        117,       117,      114,   },
  { 14400,    74,        156,       156,      153,   },
  { 9600,     114,       236,       236,      233,   },
  { 4800,     233,       474,       474,      471,   },
  { 2400,     471,       950,       950,      947,   },
  { 1200,     947,       1902,      1902,     1899,  },
  { 600,      1902,      3804,      3804,     3800,  },
  { 300,      3804,      7617,      7617,     7614,  },
};

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

vlad072 пишет:

Не годится, у неё скоростя "табличные". Не в курсе какие значения для baud = 10000 нужно внести?



 

закинь в эксель да посмотри

vlad072
Offline
Зарегистрирован: 01.08.2017

Какая то косая библиотека. Старт-бит длинней такта, в следствии чего последующие биты идут "на грани" и рандомные паузы между фреймами. Как бонус delay'и обрубает и миллисы и микросы, не критично но тоже неприятно.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

на какой скорости?

vlad072
Offline
Зарегистрирован: 01.08.2017

на картинке 9600

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

О! Старую тему откопали и оживили! А можно поинтересоваться - чем хард сериал в изделии занят, что на него нельзя GSM модуль повесить? Не так, чтобы мне это важно было, но в целях научной энтомологии.

vlad072
Offline
Зарегистрирован: 01.08.2017

нет никакого жсм. пытаюсь LIN - шину раскусить, для начала типа сниффер на коленке для принять/отдать, а по результату видно будет.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Простите старого алкаша, но по теме мне вспомнился очень старый и пошлый анекдот:
Лежат муж с женой в кровати. Манька нащупала мужнин "инь" и с удивлением и надеждой говорит: "Вань! Да у тебя ж эрекция!". На что муж отвечает: "Не трогай! Это на Новый Год!".
Вот так и хард сериал в меге328. На Новый год, штоле? Простите ещё раз!

vlad072
Offline
Зарегистрирован: 01.08.2017

Занят юсб, через ктотрый читаю/анализирую/записываю, матерюсь результату ))

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

По секрету скажу, что у Леонардо/Микро есть ещё один сериал. И подождать неделю, пока придет другой контроллер, явно стоит удобства. Хотя если цель - героическое преодоление трудностей, то я пас. ;)) Ысчо раз сорри.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

wdrakula пишет:
По секрету скажу, что у Леонардо/Микро есть ещё один сериал. .

в атмеге 328pb тоже два сериала хардовых

Green
Offline
Зарегистрирован: 01.10.2015

Когда то с Нано нужно было 3(!) сериала и чистый tone при всём этом.( Получилось, в т.ч. и с Альтсериал, но лучше так не надо).

Green
Offline
Зарегистрирован: 01.10.2015

vlad072 пишет:

Занят юсб, через ктотрый читаю/анализирую/записываю, матерюсь результату ))


Лучше хардовый связать с GSM, а отладку делать софтовым.

Pyotr
Offline
Зарегистрирован: 12.03.2014
Upper
Offline
Зарегистрирован: 23.06.2020

Четность не поддерживает, 10000 бод не поддерживает.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Green пишет:

vlad072 пишет:

Занят юсб, через ктотрый читаю/анализирую/записываю, матерюсь результату ))


Лучше хардовый связать с GSM, а отладку делать софтовым.

Когда надо использовать несколько сериалов, hardware, software, usb мне пришлось использовать обёртку SomeSerial, по другому не получилось

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Upper пишет:

Четность не поддерживает, 10000 бод не поддерживает.

для этой самой штуки у него есть NeoHWSerial

vlad072
Offline
Зарегистрирован: 01.08.2017

Вопрос снят, ларчик просто открывался. Вдруг кому пригодится https://github.com/lausdahl/AltSoftSerial/tree/parity

Автор (Paul Stoffregen) почему-то отказался вносить в свой репозиторий, но всё работает отлично.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

vlad072 пишет:

Вопрос снят, ларчик просто открывался. Вдруг кому пригодится https://github.com/lausdahl/AltSoftSerial/tree/parity

Автор (Paul Stoffregen) почему-то отказался вносить в свой репозиторий, но всё работает отлично.

ПАТАМУШТА там жёстко указано 8N1, что не соответствует стандарту )))

vlad072
Offline
Зарегистрирован: 01.08.2017
  lin.begin(10000, SERIAL_8E1);

работает прекрасно, что я делаю не так?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

vlad072 пишет:

  lin.begin(10000, SERIAL_8E1);

работает прекрасно, что я делаю не так?

нашел, у него в коде есть, видимо я не тот форк пытал...