Например TDA7294

Форум РадиоКот • Просмотр темы - Передача строки по UART
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Чт апр 18, 2024 17:32:15

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 111 ]    , , , 4, ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Передача строки по UART
СообщениеДобавлено: Чт янв 12, 2017 16:12:20 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2694
Откуда: г. Чайковский
Рейтинг сообщения: 1
Медали: 1
Получил миской по аватаре (1)
Да, эхо.

Частота кварца практически не важна, при правильном настроенном делителе UART.

Раз в протеусе работает, то мешается какая-нибудь досадная мелочь. Большинство затыков из-за каких-то тупых мелочей.

Пример может быть таким и я не имею ввиду, что у Вас так. Включился светодиод, просадил питание которое было на грани, и после этого МК не может принять данные корректно.

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Передача строки по UART
СообщениеДобавлено: Чт янв 12, 2017 16:58:09 
Открыл глаза

Зарегистрирован: Пн янв 11, 2016 20:35:49
Сообщений: 54
Рейтинг сообщения: 0
В обвязке только уарт и диод. В протеусе у меня тоже все работает.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Передача строки по UART
СообщениеДобавлено: Пт янв 13, 2017 20:07:40 
Открыл глаза

Зарегистрирован: Пн янв 11, 2016 20:35:49
Сообщений: 54
Рейтинг сообщения: 0
Z_h_e писал(а):
Пример может быть таким и я не имею ввиду, что у Вас так. Включился светодиод, просадил питание которое было на грани, и после этого МК не может принять данные корректно.

Совершенно верно Ватсон :) Именно из за просадки по питанию данные корректно не отправлялись :) Благодарю.
Просто устройство было подключено через хаб.
Сделал эхо для проверки отправленных данных

Спойлер
Код:
#include <avr/io.h>
#define F_CPU 8000000UL //8MHz
#include <util/delay.h>
#include <avr/interrupt.h>
#include <string.h>

#define RX_BUFFER_SIZE 5
uint8_t received;
char rx_data [5];
char string_data[] = "";
volatile uint8_t rx_flag = 0;
volatile uint8_t indexchar = 0;

void UARTInit(void) {
   UBRRH = 0;
   UBRRL = 51; //baud rate 9600
   UCSRB = (1<<RXEN)|(1<<TXEN)|(1<<RXCIE);
   UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0); //8 bit, 1 stop bit
}

void UARTSend(uint8_t data) {
   while(!(UCSRA & (1<<UDRE)));
   UDR = data;
}

unsigned char UARTGet() {
   while(!rx_flag);
   rx_flag = 0;
   indexchar = 0;
   rx_data[4] = '\0';
   return 1;
}

void Send_Uart_Str(char *s)
{
   while (*s != 0) UARTSend(*s++);
}

int main(void) {
   DDRC = 0b00000001;
   sei();
   UARTInit();
   while(1) {
      received = UARTGet();
      if (strcmp("1ON2", rx_data) == 0)
      {
         
         PORTC = 0b00000001;
      }
      if (strcmp("1OF2", rx_data) == 0)
      {
         PORTC = 0b00000000;
      }

   }
}

ISR(USART_RXC_vect) {
   rx_data[indexchar] = UDR;
   if (rx_data[0] !='1')
   {
      indexchar = 0;
      return;
   }
   if ((rx_data[0]=='1') && (rx_data[indexchar]=='2'))
   {
      rx_flag = 1;
      Send_Uart_Str(rx_data);
      return;
   }
   if(++indexchar >= RX_BUFFER_SIZE)
   {
      
      indexchar = 0;
   }
}


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Передача строки по UART
СообщениеДобавлено: Пн янв 16, 2017 17:30:17 
Открыл глаза

Зарегистрирован: Пн янв 11, 2016 20:35:49
Сообщений: 54
Рейтинг сообщения: 0
Приветствую всех. Есть ещё пару вопросов, думаю тему создавать не нужно.
Вообщем с передачей байтов по уарт я разобрался. Теперь встал вопрос организовать два шим для регулирования нагревателями. То есть с программы на ПК я хочу управлять нагревательными элементами от 0 до 100%, прочитал все что касается шим но так и не понял какие можно использовать? На атмеге 16 их вроде как четыре. Возможно ли задействовать 4 и 18 контакт в качестве шим регулятора и использовать их в предыдущем коде? Или предыдущий код тоже переписывать нужно будет. И ни совсем понятно про прерывания.


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Передача строки по UART
СообщениеДобавлено: Пн янв 16, 2017 18:35:58 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4510
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Для нагревателей можно и программный ШИМ создать. Это не световые приборы, где частота играет важную роль. Тут частота может быть любой и от неё не будет ничего зависеть.


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Передача строки по UART
СообщениеДобавлено: Пн янв 16, 2017 18:42:19 
Открыл глаза

Зарегистрирован: Пн янв 11, 2016 20:35:49
Сообщений: 54
Рейтинг сообщения: 0
Да, частота мне не важна. Программный шим я так понимаю с использованием таймеров? Или как?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Передача строки по UART
СообщениеДобавлено: Пн янв 16, 2017 19:56:54 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
какая мощность нагревателей и какое напряжение необходимо нагревателям?
Есть пару способов управления мощностью нагревателей с помощью симистора:
http://www.microchip.com.ru/Support/dimm.html
Еще можно управлять мощностью нагревателей с помощью полевого транзистора - тут как раз шим, имхо пригодится


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Передача строки по UART
СообщениеДобавлено: Пн янв 16, 2017 22:39:56 
Открыл глаза

Зарегистрирован: Пн янв 11, 2016 20:35:49
Сообщений: 54
Рейтинг сообщения: 0
Мощность 3 киловатта, управление хотел делать через симистор и оптопару.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Передача строки по UART
СообщениеДобавлено: Пн янв 16, 2017 22:41:39 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4510
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
LEX38RUS писал(а):
Программный шим я так понимаю с использованием таймеров?
Без разницы с помощью чего. Нужно в программе иметь периодически-повторяемое место с постоянным временем повторения. А таймер это будет, или просто delay - по барабану.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Передача строки по UART
СообщениеДобавлено: Пн янв 16, 2017 23:08:48 
Открыл глаза

Зарегистрирован: Пн янв 11, 2016 20:35:49
Сообщений: 54
Рейтинг сообщения: 0
Управление нужно такое чтоб поддерживать температуру, вот и думаю что тут шим нужен был. Управлять оптопарой и симистром. Разве можно обойтись программным шимом?

Добавлено after 4 minutes 25 seconds:
Почитал про реализацию программного шим, это не подойдёт. Ведь он по достижению какого либо числа будет сразу подовать единичку на порт, а нужно чтоб скажем от нуля и до 1. Думаю программный шим тут не подойдёт. Или ошибаюсь?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Передача строки по UART
СообщениеДобавлено: Пн янв 16, 2017 23:12:37 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4510
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
LEX38RUS писал(а):
а нужно чтоб скажем от нуля и до 1
Это как ?

Почитайте что такое вообще ШИМ. Тогда поймёте, что аппаратный ничем не отличается от программного. Разве что последний не сделаешь высокочастотным, который аппаратными средствами реализуется без проблем.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Передача строки по UART
СообщениеДобавлено: Пн янв 16, 2017 23:58:17 
Открыл глаза

Зарегистрирован: Пн янв 11, 2016 20:35:49
Сообщений: 54
Рейтинг сообщения: 0
Ещё раз почитал. Признаю, не прав. Идём курить справку по реализации программного шим. Спасибо. Почитал еще что на простой атмеге даже реализовывают программным методом управление яркостью 760 светодиодов :-D


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Передача строки по UART
СообщениеДобавлено: Вт янв 17, 2017 00:17:09 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4510
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Управление нагревателем на переменке, лучше всего реализовывать с помощью пропуска периодов. Это тоже своего рода ШИМ, с шагом скважности в 20 мс.
Для этого необходимо будет задействовать внешнее прерывание - для синхронизации с сетью и детектирования перехода через ноль.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Передача строки по UART
СообщениеДобавлено: Вт янв 17, 2017 00:28:10 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2694
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Не вижу особого смысла в синхронизации при регулировании с пропуском периодов. А вот тиристор лучше взять с детектором нуля. На мощной нагрузке, при таком методе, будут заметно моргать лампы накаливания, возможно у соседей тоже (от кобеляции будет зависеть :) ).

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Передача строки по UART
СообщениеДобавлено: Вт янв 17, 2017 01:05:15 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4510
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Z_h_e писал(а):
Не вижу особого смысла в синхронизации при регулировании с пропуском периодов.
Ну если имеются какие-либо аппаратные средства детектирования нуля, то логично, что программные без надобности :)
Но, в таком случае, управление придётся удерживать на всё время открытия триака, т.к. моменты перехода нам неизвестны. Не знаю, хорошо это или плохо, но я предпочитаю открывать триак коротким импульсом после перехода через ноль. Отсюда, всегда делаю синхронизацию с сетью.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Передача строки по UART
СообщениеДобавлено: Вт янв 17, 2017 07:35:27 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Аlex писал(а):
Управление нагревателем на переменке, лучше всего реализовывать с помощью пропуска периодов
мне кажется, это уже следует считать устаревшей догмой. данная рекомендация сформировалась во времена всеобщего аналогового телевидения и радиовещания, тем более когда радиовещание было в СВ и ДВ диапазонах и практически всегда с АМ. именно по этой причине все эти теле-радиоприборы были предельно чувствительны к помехам переключения тиристоров.

сейчас же принципы связи и вещания поменялись, источники питания сейчас импульсные и не реагируют на такие помехи, и в целом только какие-то особо нежные (наверное, медицинские или научные) приборы могут сохранить чувствительность к этим помехам. просто же в быту никто никогда и не заметит этих помех.

а вот метод пропуска полупериодов как раз наоборот, может давать весьма заметные пульсации питающей сети, которые крайне неприятны, а для ламп накаливания еще и вредны. теле-радиоприемникам же будет все равно, если они современные, конечно.

Z_h_e писал(а):
На мощной нагрузке, при таком методе, будут заметно моргать лампы накаливания
вот-вот. а еще этот метод может вносить низкочастотные составляющие тока сети, близкие к постоянке, что может намагничивать трансформаторы со всеми вытекающими... в моей практике подобное было: сделали несколько терморегуляторов промышленных печей и вдруг стали перегреваться трансформаторы питания блоков... схалявили - не сделали запаса по железу, они и насыщались... сейчас эта проблема скорее виртуальная, но все-таки...

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Передача строки по UART
СообщениеДобавлено: Вт янв 17, 2017 09:12:16 
Открыл глаза

Зарегистрирован: Пн янв 11, 2016 20:35:49
Сообщений: 54
Рейтинг сообщения: 0
Как много нюансов. Спасибо, что просветили в этом. :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Передача строки по UART
СообщениеДобавлено: Чт янв 19, 2017 06:55:55 
Открыл глаза

Зарегистрирован: Пн янв 11, 2016 20:35:49
Сообщений: 54
Рейтинг сообщения: 0
Подскажите ещё, вот делаю обмен с компом по rs232, а в чем отличие будет если сделать HID? Разница есть какая нибудь по обмену данными?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Передача строки по UART
СообщениеДобавлено: Чт янв 19, 2017 07:09:44 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
LEX38RUS писал(а):
а в чем отличие будет если сделать HID? Разница есть какая нибудь по обмену данными?
конечно будет! ни один стандартный терминал не примет и не отправит данные по протоколу HID :))) вам придется писать собственную программу для ПК

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Передача строки по UART
СообщениеДобавлено: Чт янв 19, 2017 07:42:52 
Открыл глаза

Зарегистрирован: Пн янв 11, 2016 20:35:49
Сообщений: 54
Рейтинг сообщения: 0
На счёт этого все понятно. Программа и так будет отдельная. Просто интересно что лучше обмен по rs232 или по hid (как там его правильно) v-usb вроде.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 111 ]    , , , 4, ,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 36


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y