SoftwareSerial не работает на на Attiny88

Stolz
Offline
Зарегистрирован: 26.06.2021

Доброго дня.

Столкнулся с такой проблемой. Есть плата MH-Tiny на AtTiny88, код простейший:

01#define RX  2
02#define TX  1
03 
04#include <SoftwareSerial.h>
05SoftwareSerial SoftSerial(RX, TX);
06 
07void setup() {
08  SoftSerial.begin(9600);
09}
10 
11void loop() {
12  if (SoftSerial.available()) {
13    char sym = SoftSerial.read();
14    SoftSerial.write(sym);
15  }
16}

Контроллер передает данные в порт нормально, а вот при чтение из порта сыпятся ошибки. Скорость любая, от 300 до 19200 корежит всю строку со второго символа, при скорости выше, первые 5-6 символов нормальные, дальше опять мусор появляется.

Пины менял, USB-TTL менял, контролер менял (все 3 одинаково себя ведут), на 7 ноге 16,03 МГц.

Куда дальше копать?

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

SoftwareSerial не может работать в дуплексном режиме, т.е. и принимать и отправлять одновременно. Только по очереди.

Stolz
Offline
Зарегистрирован: 26.06.2021

Хм, да, этот момент я провтыкал. 

Тогда вопрос, как сделать отладку на аттини если SoftwareSerial в это время гоняет данные с другим мк?

b707
Offline
Зарегистрирован: 26.05.2017

Обьясните, в чем вообще смысл читать данные и отправлять обратно в тот же порт? Вы что сделать пытаетесь?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Stolz пишет:

Тогда вопрос, как сделать отладку на аттини если SoftwareSerial в это время гоняет данные с другим мк?

И как этот факт мешает отладке?

Stolz
Offline
Зарегистрирован: 26.06.2021

b707 пишет:
Обьясните, в чем вообще смысл читать данные и отправлять обратно в тот же порт? Вы что сделать пытаетесь?

Тот кусок кода был просто для проверки Serial.

Основная проблема в том, что ESP-01 отправляет запрос к аттини и ждет ответа. А его нет. Вот я и пытаюсь выяснить почему.

 

andriano пишет:

И как этот факт мешает отладке?

Очевидно же. В порту один мусор

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

Stolz пишет:

Основная проблема в том, что ESP-01 отправляет запрос к аттини и ждет ответа. А его нет. Вот я и пытаюсь выяснить почему.


Шлите ответ после того, как приняли весь запрос, а не задерживайте чтение записью.

rkit
Offline
Зарегистрирован: 23.11.2016

Stolz пишет:

Хм, да, этот момент я провтыкал. 

Тогда вопрос, как сделать отладку на аттини если SoftwareSerial в это время гоняет данные с другим мк?

Отладчиком. Или логическим анализатором, хотя бы.

Stolz
Offline
Зарегистрирован: 26.06.2021

sadman41 пишет:
Шлите ответ после того, как приняли весь запрос, а не задерживайте чтение записью.

Да, наверное придется так и делать.