Arduino nano на ch340g
-
Самсусамыч
Re: Arduino nano на ch340g
У контроллера SH1106 (ОЛЕД 128х64) https://radiokot.ru/forum/viewtopic.php ... 8#p3956338 те же характеристики по питанию, однако я данный дисплей гонял месяцами и ничего с ним не произошло. Может Вам бракованный какой попался…? Кто знает. Но то что они нормально работают при 5 В, это точно.
- Реклама
Re: Arduino nano на ch340g
В общем в самом деле на дисплее есть не транзистор, стабилизатор 3,3v, и есть место для перемычки для его исключения

Хорошо, по питанию стабилизация есть. А логические входы i2c? Можно ли на них подавать 5 вольт?

Хорошо, по питанию стабилизация есть. А логические входы i2c? Можно ли на них подавать 5 вольт?
Не променяю медь на ржавую несгорайку!
-
Самсусамыч
Re: Arduino nano на ch340g
Ну вот, значит всё по-честному... стаб всё же есть...
На шине TWI (I2C) высокий уровень реализован подтяжкой через резисторы, а данные резисторы установлены на дисплее. Потому при обмене МК только прижимает выводы к общей шине, а при отпускании на шине соответственно не может быть больше 3,3 В.
Добавлено after 12 minutes 6 seconds:
[uquote="Upgrader",url="/forum/viewtopic.php?p=3956669#p3956669"]В общем в самом деле на дисплее есть не транзистор, стабилизатор 3,3v, и есть место для перемычки для его исключения[/uquote]
Посмотрел стаб и на своём дисплее… действительно есть и место для перемычки тоже, но я его гонял и при питании 3,3 В. Подавая 3,3 на стабилизатор и никаких проблем не было, дисплей работал без замечаний.
Так что дисплей можно использовать и от 3,3 В и от 5 В не переделывая ничего. 
На шине TWI (I2C) высокий уровень реализован подтяжкой через резисторы, а данные резисторы установлены на дисплее. Потому при обмене МК только прижимает выводы к общей шине, а при отпускании на шине соответственно не может быть больше 3,3 В.
Добавлено after 12 minutes 6 seconds:
[uquote="Upgrader",url="/forum/viewtopic.php?p=3956669#p3956669"]В общем в самом деле на дисплее есть не транзистор, стабилизатор 3,3v, и есть место для перемычки для его исключения[/uquote]
Посмотрел стаб и на своём дисплее… действительно есть и место для перемычки тоже, но я его гонял и при питании 3,3 В. Подавая 3,3 на стабилизатор и никаких проблем не было, дисплей работал без замечаний.
Re: Arduino nano на ch340g
Upgrader, всё-таки это наверное LDO на 3.3В: https://cdn-learn.adafruit.com/assets/a ... 1596746114
Ну и в общем другие всякие версии с которых китайцы копируют у Adafruit есть: https://learn.adafruit.com/monochrome-o ... /downloads
Добавлено after 3 minutes 16 seconds:
И по SDA/SCL должны стоять полевики для трансляции уровня в 3.3В.
Я вроде бы подключал такой дисплейчик к ардуино с 5В питанием, ничего с ним не случилось.
Ну и в общем другие всякие версии с которых китайцы копируют у Adafruit есть: https://learn.adafruit.com/monochrome-o ... /downloads
Добавлено after 3 minutes 16 seconds:
И по SDA/SCL должны стоять полевики для трансляции уровня в 3.3В.
Я вроде бы подключал такой дисплейчик к ардуино с 5В питанием, ничего с ним не случилось.
-
Самсусамыч
Re: Arduino nano на ch340g
По ссылке на схемах 5_ти ногие стабилизаторы… на реальном дисплее стаб 3_х ногий… значит разные дисплеи на одном и том же контроллере. Да все они должны работать от 5 В, что и указано в описании. Если это не брак какой-то. 
- Реклама
Re: Arduino nano на ch340g
Всем плюсиков наставил
Еще один вопросик. Можно ли будить mega328p из максимально глубокого сна при приеме данных uart? Гугл особо ничего не подсказывает. Т.е. если нет штатно такой возможности, может как обойти можно, например перекинув вывод RX uart на прерывание? Или это все бесполезно и он не примет данные если спит, в смысле не успеет проснутся чтобы принять данные? Передача только один раз (не постоянная).
З.Ы. По uart передается однократно десяток символов через длительные (более минуты) промежутки времени.
Еще один вопросик. Можно ли будить mega328p из максимально глубокого сна при приеме данных uart? Гугл особо ничего не подсказывает. Т.е. если нет штатно такой возможности, может как обойти можно, например перекинув вывод RX uart на прерывание? Или это все бесполезно и он не примет данные если спит, в смысле не успеет проснутся чтобы принять данные? Передача только один раз (не постоянная).
З.Ы. По uart передается однократно десяток символов через длительные (более минуты) промежутки времени.
Не променяю медь на ржавую несгорайку!
-
Самсусамыч
Re: Arduino nano на ch340g
[uquote="Upgrader",url="/forum/viewtopic.php?p=3959660#p3959660"]Можно ли будить mega328p из максимально глубокого сна при приеме данных uart?[/uquote]
Сомневаюсь что проснётся, так как даташит на этот счёт говорит обратное, но надо проверить – кто знает, а вдруг…
проверю отпишу. 
Сомневаюсь что проснётся, так как даташит на этот счёт говорит обратное, но надо проверить – кто знает, а вдруг…
Re: Arduino nano на ch340g
Upgrader, напрямую по UART просыпаться не может, но мысль верная. Если скорость (baud rate) UART'а не шибко большая, то по прерыванию можно проснуться успеть. Или на INT0/1 кинуть или прямо RX пин как PCINT16 для пробуждения использовать.
Добавлено after 42 seconds:
Кстати Atmega328PB умеет уже по приему просыпаться: http://ww1.microchip.com/downloads/en/A ... R42783.pdf
Но просто 328p только через прерывание.
Добавлено after 42 seconds:
Кстати Atmega328PB умеет уже по приему просыпаться: http://ww1.microchip.com/downloads/en/A ... R42783.pdf
Но просто 328p только через прерывание.
Re: Arduino nano на ch340g
Ооо... да, скорость UART'а могу занизить до минимума, это не проблема. 
Не променяю медь на ржавую несгорайку!
-
Самсусамыч
Re: Arduino nano на ch340g
Проверил в железе…
как и указывает даташит чудес не произошло – спит беспробудно от UART. 
Спойлер
Re: Arduino nano на ch340g
[uquote="NStorm",url="/forum/viewtopic.php?p=3959684#p3959684"]Upgrader, напрямую по UART просыпаться не может, но мысль верная. Если скорость (baud rate) UART'а не шибко большая, то по прерыванию можно проснуться успеть. Или на INT0/1 кинуть или прямо RX пин как PCINT16 для пробуждения использовать.[/uquote]
Делал так - кидал RX на INT0, успевал при 9600 на 1 мгц.
Делал так - кидал RX на INT0, успевал при 9600 на 1 мгц.
Re: Arduino nano на ch340g
[uquote="OKF",url="/forum/viewtopic.php?p=3959972#p3959972"]1 мгц.[/uquote]1 МГц частота атмеги?
У меня 8. Значит наверное вполне успеет?
Плюс частоту uart могу занизить еще аж до 1200 bps, если будет нужно.
У меня 8. Значит наверное вполне успеет?
Плюс частоту uart могу занизить еще аж до 1200 bps, если будет нужно.
Не променяю медь на ржавую несгорайку!
-
Самсусамыч
Re: Arduino nano на ch340g
Попробовал… у меня на тактовой 16 МГц так и не вышло принять байт по UART 9600… МК просыпается и только-то… 
Re: Arduino nano на ch340g
Хм... А он как, вообще ничего не принимает, или частично что-то принимает не с начала?
Может надо ускорить просыпание как-то, что-то читал про это...
Может надо ускорить просыпание как-то, что-то читал про это...
Не променяю медь на ржавую несгорайку!
-
Самсусамыч
Re: Arduino nano на ch340g
Не знаю, но флага нет по приёму байта… и как следствие нет прерывания по приёму по UART.
Re: Arduino nano на ch340g
Офигеть.
Ха. Только у меня не power down).
Код: Выделить всё
#define INT_RX_ISR INT0_vect
void loop()
{
int_rx_enable(); //разрешаем будить по uart
sleep_enable();
sleep_cpu(); //засыпаем
sleep_disable();
if (int_rx) { // и обмен по uart
int_rx = false;
rtcSetup();
}
}
// прерывание по стартовому биту rx
ISR(INT_RX_ISR)
{
int_rx = true;
int_rx_disable();
}
Код: Выделить всё
void setup()
{
pullup(INT_RX); //настраиваем все! пины
pin_init();
sys_timer_off(); //отключаем лишнее
adc_disable();
set_power_reduction();
rtcInit();
set_sleep_mode(SLEEP_MODE_PWR_SAVE);
int_low_level();
}
-
Самсусамыч
Re: Arduino nano на ch340g
[uquote="OKF",url="/forum/viewtopic.php?p=3960228#p3960228"]Ха. Только у меня не power down).[/uquote]
Так вот в том-то и дело, что используется именно "глубокий сон", остальные режимы сна не рассматриваются.
Так вот в том-то и дело, что используется именно "глубокий сон", остальные режимы сна не рассматриваются.
Re: Arduino nano на ch340g
Время пробуждения из Power-down и Power-save режимов одинаковое согласно ДШ.
Добавлено after 2 minutes 50 seconds:
Наверное проблема может быть в тактировании от кристалла. Он дольше всех разгоняется и стабилизируется. Возможно, если переключить тактирование на работу от внутреннего RC - будет быстрее дело и успеет. Но ес-но менее температурно стабильно это будет.
Добавлено after 2 minutes 37 seconds:
Ну да, согласно ДШ выход из сна для кристалла составляет 16000 тиков. На 8 МГц это целых 2 мс. А для RC всего 6 тиков.
Добавлено after 2 minutes 50 seconds:
Наверное проблема может быть в тактировании от кристалла. Он дольше всех разгоняется и стабилизируется. Возможно, если переключить тактирование на работу от внутреннего RC - будет быстрее дело и успеет. Но ес-но менее температурно стабильно это будет.
Добавлено after 2 minutes 37 seconds:
Ну да, согласно ДШ выход из сна для кристалла составляет 16000 тиков. На 8 МГц это целых 2 мс. А для RC всего 6 тиков.
Re: Arduino nano на ch340g
Тогда нужно пожертвовать первым переданным байтом. После чего пауза для просыпания и передаём дальше.
-
Самсусамыч
Re: Arduino nano на ch340g
Тактовая МК 16 МГц. Снизил скорость UART до 2400… прерывание по приёму байта начало отрабатывать. Вот только байт не соответствует посланному… какие биты приняты неправильно не проверял, так как не особо важно.
Добавлено after 3 hours 39 seconds:
Проверил совет NStorm... При снижении тактовой МК приёмника до 8 МГц и задействовав внутренний генератор... скорость UART оставил прежнюю 2400… передаваемый байт по UART начал приниматься без ошибок.
Добавлено after 3 hours 39 seconds:
Проверил совет NStorm... При снижении тактовой МК приёмника до 8 МГц и задействовав внутренний генератор... скорость UART оставил прежнюю 2400… передаваемый байт по UART начал приниматься без ошибок.


