Мелкие вопросы по МК и ПЛИС.
- КРАМ
- Друг Кота
- Сообщения: 25150
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Мелкие вопросы по МК и ПЛИС.
[uquote="Roman Solovey",url="/forum/viewtopic.php?p=4239032#p4239032"]ARV, а как же тогда люди проверяют 9 битный режим? тупо два мк соеденяют?[/uquote]
Я именно так и делаю. Точнее, соединяю два изделия через RS485. Отлаживаемое и серийное, которое и пробрасывает поток на компьютер через USB. В протоколе между изделиями используется 9 битный адресный режим.
Я именно так и делаю. Точнее, соединяю два изделия через RS485. Отлаживаемое и серийное, которое и пробрасывает поток на компьютер через USB. В протоколе между изделиями используется 9 битный адресный режим.
-
Andrey5945
- Родился
- Сообщения: 16
- Зарегистрирован: Вс май 15, 2022 22:18:18
Re: Мелкие вопросы по МК и ПЛИС.
Подскажите пожалуйста как правильно использовать лайт слип на ESP07s? Мне удается заснуть только один раз нормально примерно за 50 милисекунд, далее при появлении плюса на пине 5 просыпаемся, но вот повторно заснуть уже не получается. Как будто вот эта строчка второй раз не срабатывает: wifi_fpm_do_sleep(0xFFFFFFF);
#include <ESP8266mDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>
#include <GyverNTC.h>
#include <RCSwitch.h>
GyverNTC therm(0, 10000, 3435);
RCSwitch mySwitch = RCSwitch();
const char* ssid = STASSID;
const char* password = STAPSK;
WiFiServer server(80); // порт сайта
volatile bool modplus = 0; // переменная смена режима меняющаяся даже в прерывании
byte buttn = 0; // кнопки пульта
uint32_t tmr1; // таймер 1
uint32_t tmr2; // таймер 2
uint32_t tmr3; // таймер 3
uint32_t tmr4; // таймер 4
int light = 0; // сила света
bool UP = 1; // увеличивать или уменьшать свет
bool RB = 0;
bool sig1 = 0;
bool sig2 = 1;
bool WiFiON = 0; // включение WIFI
bool ota = 0; // включение обновления по воздуху
bool site = 0; // включение сайта
byte mod = 2; // режим свечения люстры
bool ButtFlag = 0;
int dat = 0;
String header; //заголовок страницы
String outputAState = "off";
String outputBState = "off";
String outputC1State = "off";
String outputC2State = "off";
void setup() {
Serial.begin(115200);
pinMode(2, OUTPUT); // пин канала А
pinMode(4, OUTPUT); // пин канала В
pinMode(12, OUTPUT); // пин С1
pinMode(14, OUTPUT); // пин С2
digitalWrite(2, 1); // выключаем канал А
digitalWrite(4, 1); // выключаем канал В
digitalWrite(12, 0); // выключаем канал С1
digitalWrite(14, 0); // выключаем канал С2
attachInterrupt(5,PWR, FALLING); // прерывание по питанию
analogWriteResolution(12); // 12 бит (0-4095)
analogWriteFreq(25000); // кГц шим
Serial.println("Start");
}
IRAM_ATTR void PWR() {
modplus = 1; // флаг смены режима
}
void loop() {
if (modplus == 1) {
detachInterrupt(5); // отключаем прерывание
digitalWrite(2, 1); // оставляем включенным канал А, так тратиться меньше энергии (примерно 0,4 мА)
digitalWrite(4, 0); // выключаем канал В
digitalWrite(12, 0); //выключаем канал С1
digitalWrite(14, 0); //выключаем канал С2
wifi_station_disconnect();
wifi_set_opmode_current(NULL_MODE);
wifi_fpm_set_sleep_type(LIGHT_SLEEP_T);
wifi_fpm_open(); // Enables force sleep
gpio_pin_wakeup_enable(GPIO_ID_PIN(13), GPIO_PIN_INTR_HILEVEL);
gpio_pin_wakeup_enable(GPIO_ID_PIN(5), GPIO_PIN_INTR_HILEVEL); // пин и состояние при котором проснемся
wifi_fpm_do_sleep(0xFFFFFFF); // Sleep for longest possible time
delay(1000);
modplus = 0; // сбрасываем флаг
mod++;
attachInterrupt(5,PWR, FALLING); // включаем обратно прерывание по питанию
delay(1000);
}
if (!digitalRead(5)) modplus = 1;
}
Спойлер
#include <ESP8266WiFi.h>#include <ESP8266mDNS.h>
#include <WiFiUdp.h>
#include <ArduinoOTA.h>
#include <GyverNTC.h>
#include <RCSwitch.h>
GyverNTC therm(0, 10000, 3435);
RCSwitch mySwitch = RCSwitch();
const char* ssid = STASSID;
const char* password = STAPSK;
WiFiServer server(80); // порт сайта
volatile bool modplus = 0; // переменная смена режима меняющаяся даже в прерывании
byte buttn = 0; // кнопки пульта
uint32_t tmr1; // таймер 1
uint32_t tmr2; // таймер 2
uint32_t tmr3; // таймер 3
uint32_t tmr4; // таймер 4
int light = 0; // сила света
bool UP = 1; // увеличивать или уменьшать свет
bool RB = 0;
bool sig1 = 0;
bool sig2 = 1;
bool WiFiON = 0; // включение WIFI
bool ota = 0; // включение обновления по воздуху
bool site = 0; // включение сайта
byte mod = 2; // режим свечения люстры
bool ButtFlag = 0;
int dat = 0;
String header; //заголовок страницы
String outputAState = "off";
String outputBState = "off";
String outputC1State = "off";
String outputC2State = "off";
void setup() {
Serial.begin(115200);
pinMode(2, OUTPUT); // пин канала А
pinMode(4, OUTPUT); // пин канала В
pinMode(12, OUTPUT); // пин С1
pinMode(14, OUTPUT); // пин С2
digitalWrite(2, 1); // выключаем канал А
digitalWrite(4, 1); // выключаем канал В
digitalWrite(12, 0); // выключаем канал С1
digitalWrite(14, 0); // выключаем канал С2
attachInterrupt(5,PWR, FALLING); // прерывание по питанию
analogWriteResolution(12); // 12 бит (0-4095)
analogWriteFreq(25000); // кГц шим
Serial.println("Start");
}
IRAM_ATTR void PWR() {
modplus = 1; // флаг смены режима
}
void loop() {
if (modplus == 1) {
detachInterrupt(5); // отключаем прерывание
digitalWrite(2, 1); // оставляем включенным канал А, так тратиться меньше энергии (примерно 0,4 мА)
digitalWrite(4, 0); // выключаем канал В
digitalWrite(12, 0); //выключаем канал С1
digitalWrite(14, 0); //выключаем канал С2
wifi_station_disconnect();
wifi_set_opmode_current(NULL_MODE);
wifi_fpm_set_sleep_type(LIGHT_SLEEP_T);
wifi_fpm_open(); // Enables force sleep
gpio_pin_wakeup_enable(GPIO_ID_PIN(13), GPIO_PIN_INTR_HILEVEL);
gpio_pin_wakeup_enable(GPIO_ID_PIN(5), GPIO_PIN_INTR_HILEVEL); // пин и состояние при котором проснемся
wifi_fpm_do_sleep(0xFFFFFFF); // Sleep for longest possible time
delay(1000);
modplus = 0; // сбрасываем флаг
mod++;
attachInterrupt(5,PWR, FALLING); // включаем обратно прерывание по питанию
delay(1000);
}
if (!digitalRead(5)) modplus = 1;
}
Re: Мелкие вопросы по МК и ПЛИС.
Здравствуйте!
Подскажите пожалуйста
Есть NODEMCU V3 прошитая для управления кондиционером, подключена в кондиционере 5V GND RX TX
Можно ли еще подключить USB для отладки?
Получается будет 2 питания не убьет ли USB порты на материнке?
Подскажите пожалуйста
Есть NODEMCU V3 прошитая для управления кондиционером, подключена в кондиционере 5V GND RX TX
Можно ли еще подключить USB для отладки?
Получается будет 2 питания не убьет ли USB порты на материнке?
-
Andrey5945
- Родился
- Сообщения: 16
- Зарегистрирован: Вс май 15, 2022 22:18:18
Re: Мелкие вопросы по МК и ПЛИС.
[uquote="dirol_3",url="/forum/viewtopic.php?p=4262402#p4262402"]Здравствуйте!
Подскажите пожалуйста
Есть NODEMCU V3 прошитая для управления кондиционером, подключена в кондиционере 5V GND RX TX
Можно ли еще подключить USB для отладки?
Получается будет 2 питания не убьет ли USB порты на материнке?[/uquote]
Не должно если эта плата NODEMCU V3 стоковая. У меня не убило пока при одновременном питании по USB и внешнем. Но это на стоковой плате NODEMCU.
Подскажите пожалуйста
Есть NODEMCU V3 прошитая для управления кондиционером, подключена в кондиционере 5V GND RX TX
Можно ли еще подключить USB для отладки?
Получается будет 2 питания не убьет ли USB порты на материнке?[/uquote]
Не должно если эта плата NODEMCU V3 стоковая. У меня не убило пока при одновременном питании по USB и внешнем. Но это на стоковой плате NODEMCU.
Re: Мелкие вопросы по МК и ПЛИС.
Тут https://radioparty.ru/device/microchip/ ... f84-lcd8x1
на схеме указан PIC16F84-10, а у меня только PIC16F84-04i/p и PIC16F84a-20/p. Что из них подойдёт, или никакой ?
на схеме указан PIC16F84-10, а у меня только PIC16F84-04i/p и PIC16F84a-20/p. Что из них подойдёт, или никакой ?
Re: Мелкие вопросы по МК и ПЛИС.
Я с PICами не работал, но неужели в них есть такие супер-пупер фичи, что на нём умудряются измерять частоту, в 5 раз превышающую частоту осциллятора, при этом умудряясь ещё отмерять временные интервалы и выводить результат на ЖКИ? На мою думку, там в данных прибора следовало бы урезать осетра значение частоты на пару порядков.
Re: Мелкие вопросы по МК и ПЛИС.
Я тоже.Jack_A писал(а):Я с PICами не работал
Если это вход предделителя таймера, да с коэффициентом 256, тогда никаких фич не надо.Jack_A писал(а): но неужели в них есть такие супер-пупер фичи, что на нём умудряются измерять частоту, в 5 раз превышающую частоту осциллятора
А так да, 50'000'000 выглядят сомнительно.
Re: Мелкие вопросы по МК и ПЛИС.
Jack_A писал(а):измерять частоту, в 5 раз превышающую частоту осциллятора,
Мне для этого девайса http://www.irls.narod.ru/izm/gen/gen102.htmtonyk писал(а):А так да, 50'000'000 выглядят сомнительно.
Re: Мелкие вопросы по МК и ПЛИС.
Дык там, думаю, и частотомер не нужен. Задатчик частоты кварцевый, с делителем. Не будем точно попадать в не кратные частоты? А оно нужно? Крутилкой выставляем 1514.36Гц, а чуть в сторону - то не годится?
А так частотомер и у меня в плане - года этак с 2013
Не такое убожество, а на честных 10МГц, с делителями на ИЕ . И генератор синуса на 1 и 10 кГц - индуктивности мерить. Мож и сделаю...
А так частотомер и у меня в плане - года этак с 2013
- КРАМ
- Друг Кота
- Сообщения: 25150
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Мелкие вопросы по МК и ПЛИС.
[uquote="Jack_A",url="/forum/viewtopic.php?p=4267838#p4267838"]Не будем точно попадать в не кратные частоты? А оно нужно?...[/uquote]
Не нужно. Если сделать DDS. Не думаю, что для каких то реальных измерений важна чистота спектра на уровне порядка -60дБ связанная с неизбежным джиттером DDS при некратных частотах (плывущей начальной фазе).
ЗЫ. По поводу PIC-ов. Ваш вопрос был про аналогово-цифровой метод измерения, когда интегрированием добавляют разрешение при измерении интервалов времени.
Но причем тут частотомеры? Если нужно разрешение, то это достигается путем увеличения измерительного интервала. В частотомерах обычно не требуется измерять частоту за 1 период входного сигнала.
Не нужно. Если сделать DDS. Не думаю, что для каких то реальных измерений важна чистота спектра на уровне порядка -60дБ связанная с неизбежным джиттером DDS при некратных частотах (плывущей начальной фазе).
ЗЫ. По поводу PIC-ов. Ваш вопрос был про аналогово-цифровой метод измерения, когда интегрированием добавляют разрешение при измерении интервалов времени.
Но причем тут частотомеры? Если нужно разрешение, то это достигается путем увеличения измерительного интервала. В частотомерах обычно не требуется измерять частоту за 1 период входного сигнала.
Re: Мелкие вопросы по МК и ПЛИС.
Про аналого-цифровой метод я ничего не говорил, бо не в курсе. Но приведённая схема на PIC к нему вроде отношения не имеет. При чисто цифровом - без делителя 50МГц при 10МГц частоте осцилляторв - невозможно. Ну а с делителем...
- Убьёт?
- Нет, они в резиновых перчатках играют.
- В перчатках - тогда можно

© Мимино
Спойлер
- На электричестве играть нельзя - током убьёт.- Убьёт?
- Нет, они в резиновых перчатках играют.
- В перчатках - тогда можно
© Мимино
- Вложения
-
- Мими.jpg
- (17.1 КБ) 136 скачиваний
- КРАМ
- Друг Кота
- Сообщения: 25150
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Мелкие вопросы по МК и ПЛИС.
Асинхронные таймеры в МК никак не ограничены системной частотой.
Поэтому вполне могут использоваться для частотомеров и без предделителя.
Естественно, что эти таймеры должны допускать обсуждаемую частоту по внешнему входу.
Поэтому вполне могут использоваться для частотомеров и без предделителя.
Естественно, что эти таймеры должны допускать обсуждаемую частоту по внешнему входу.
Re: Мелкие вопросы по МК и ПЛИС.
Лезть в доку, тем более ПИКовую - лень, но интуиция и логика подсказывает, что "скорострельность" по входам таймера в режиме внешнего счёта не станут делать на порядок быстрее, чем выполнение типовых операций ввода-вывода. Хотя - пусть это будет на совести того, кто изваял частотомер 50МГц "ну очень простой, в спичечном коробке" .
- КРАМ
- Друг Кота
- Сообщения: 25150
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Мелкие вопросы по МК и ПЛИС.
Логика тут не работает от слова совсем. Тут работает даташит.
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1905
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
Порядок не, но большая разница есть. С prescaler, по timer0 -> 50 MHz нормально, даже для очень старых. Не нормализованное значение там, а минимум. Некоторые экземпляры с высоким предделителем и х100 МГц превышают. Даже в не-RF монтаже.
Tcy - время цикла инструкции.
Tcy - время цикла инструкции.
- Вложения
-
- pre_notpre.jpg
- (76.88 КБ) 103 скачивания
Re: Мелкие вопросы по МК и ПЛИС.
Ну тогда - молодцы Мелкощипы, авангардисты. По праву они Атмел сожрали.
Re: Мелкие вопросы по МК и ПЛИС.
А смелые ребята, которых не пугает поймать помеху по РЕСЕТу, кондёр не ставят, а сэкономленные 5 копеек пускают на пир горой"Тормоза придумали трусы"
- КРАМ
- Друг Кота
- Сообщения: 25150
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Мелкие вопросы по МК и ПЛИС.
[uquote="Jack_A",url="/forum/viewtopic.php?p=4270537#p4270537"]кондёр не ставят[/uquote]Конденсатор на ресете далеко не всегда удобен. Например, он мешает работе дебаггера.
Поэтому у меня всегда есть подтяжка ресета к питанию через 10 кОм с опциональным джампером ресета на питание. Поэтому разъем программирования/отладки всегда выглядит как: Ресет, Питание, Общий, Дата, Клоки.
Итого, в релизе ставим джампер между первым и вторым штырем и в ус не дуем...

Поэтому у меня всегда есть подтяжка ресета к питанию через 10 кОм с опциональным джампером ресета на питание. Поэтому разъем программирования/отладки всегда выглядит как: Ресет, Питание, Общий, Дата, Клоки.
Итого, в релизе ставим джампер между первым и вторым штырем и в ус не дуем...
- Transformer-V
- Друг Кота
- Сообщения: 4067
- Зарегистрирован: Пн окт 03, 2016 22:50:22
- Контактная информация:
Re: Мелкие вопросы по МК и ПЛИС.
[uquote="Jack_A",url="/forum/viewtopic.php?p=4270537#p4270537"]А смелые ребята, которых не пугает поймать помеху по РЕСЕТу, кондёр не ставят, а сэкономленные 5 копеек пускают на пир горой
[/uquote]
Правильно, для обеспечения высокой надежности ответственного оборудования необходимо устанавливать супервизоры питания - APX/LM809/810, а если необходим внешний сброс(кнопка ресет) с защитой от дребезга и помех - MCP1322
Для старья подойдет TL7705.
Правильно, для обеспечения высокой надежности ответственного оборудования необходимо устанавливать супервизоры питания - APX/LM809/810, а если необходим внешний сброс(кнопка ресет) с защитой от дребезга и помех - MCP1322
Для старья подойдет TL7705.
