Переходник USB-RS485

Posted by Reason89 | Posted in , ,


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

    Данный адаптер USB-RS485 приобретал здесь. Доставка быстрая, качество меня вполне устроило. Оба переходника пришли рабочими. Вполне компактные и удобные в обращении.
    Сам испробовал работу на скорости 1000000 бод/с(больше необходимости не было) все прекрасно работает.
     Вскрытие показало, что работает на микросхеме MAX485. Качество пайки добротное. Кому необходима более детальная информация по скоростям работы, то можете открыть даташит на нее, и увидите все характеристики.
    Для работы удобно пользоваться терминалом от Br@y++.
    С драйверами под Windows никаких проблем не возникало. Грубо говоря все работает с коробки.
    На момент покупки цена была 55р. за штуку. В наших магазинах электроники, микросхемы RS485 стоят от 80 р., причем это без USB контроллера. Поэтому считаю что дешевле купить и не заморачиваться.
    Из минусов, разве что могли что нибудь по солиднее этого зеленого терминала придумать.

Xmega: АЦП(ADC)

Posted by Reason89 | Posted in , ,

    В микроконтроллерах Xmega используется 12 разрядный АЦП, который позволяет делать нескольких сигналов одновременно. Так же в  АЦП есть усилитель, который можно использовать с целью измерения маленьких напряжений в дифференциальном режиме.
    Преобразование может производиться как в знаковом, так и без знаковом режиме.  Стоит помнить, что если АЦП использует дифференциальные входы, то должен использоваться знаковый режим, а с входами других типов можно использовать оба режима, как знаковый, так и без знаковый.
    Из таких явных неудобств, стоит обратить внимание на то, что режим преобразования устанавливается на весь АЦП, а не индивидуально для каждого канала. То есть когда один из каналов использует дифференциальный вход, АЦП должен быть введен в знаковый режим.
    На входе АЦП стоит мультиплексор, который позволяет нам оцифровывать 4 внутренних сигнала, таких как: датчик температуры, выход ЦАП, деленное на 10 напряжение питания VCC и источник опорного напряжения, плюс 16 внешних сигналов. В AVR такого и близко не было.
    Преобразование АЦП может быть запущено либо программно, запись в определенный регистр заданного значения, либо через систему событий.
    Можно использовать 4 режима измерения:
- дифференциальный вход
- дифференциальный вход с усилением
- несимметричный вход
- внутренний вход
     В качестве опорного напряжения АЦП (VREF) можно выбрать следующие напряжения:
- Точное внутреннее напряжение INT1V 1В.
- Внутреннее напряжение INTVCC VCC/1.6В.
- Внешнее напряжение, поданное на вывод AREF порта А.
- Внешнее напряжение, поданное на вывод AREF порта B.
     Описание всех регистров можно найти в документации на Xmega. Настроек на самом деле огромное количество. В сравнении с предыдущими поколениями, Xmega  позволяет настраивать все более тонко, соответственно и количество регистров здесь гораздо больше.
    Привожу функцию инициализации АЦП:

void ADC_init()
{
    ADCA.CTRLB = ADC_RESOLUTION_12BIT_gc;             // 12 бит дискретизация
    ADCA.CH0.CTRL = ADC_CH_INPUTMODE_SINGLEENDED_gc;  // CH0 настроен на внешний нессимметричный вход
    ADCA.PRESCALER =ADC_PRESCALER_DIV32_gc;           // Переферийная частота работы АЦП
    ADCA.REFCTRL = ADC_REFSEL_INT1V_gc | 0x02;        // Опорное напряжение 1 В.
    ADCA.CH0.MUXCTRL = ADC_CH_MUXPOS_PIN3_gc;         // Настраиваем как положительный вывод порта для АЦП
    ADCA.CTRLA = ADC_ENABLE_bm;                       // Активирую АЦП
} 

Xmega: AWEX

Posted by Reason89 | Posted in , ,

    Прежде чем начать работать с модулем AWEX, изучите его наличие в вашем микроконтроллере. Когда я начинал изучать AWEX я столкнулся с тем, что документация на ATXmega256A3 разнилась, в одном документе было написано что их два, на PORTC и на PORTE. После того, как мои попытки завести AWEX на PORTE не увенчались успехом. Я нашел другой доумент, где было написано, что AWEX есть только на PORTC.
  AWEX это некое расширение модуля таймера-счетчика. Используется для аппаратной генерации импульсов. Очень удобно использовать для генерации ШИМ сигнала для управления инверторами и шаговыми двигателями. Имеется возможность вставлять паузу мертвого времени и.т.д.
    Собственно простой пример:
int main(void)
{
    ClockExt8MHz();
    PORTC.DIRSET = 0xFF;
    PORTC.OUTCLR = 0xFF;
    
    TCC0.CTRLB      = TC_WGMODE_SS_gc | TC0_CCAEN_bm;
    TCC0.PER        = 512;
    TCC0.CCA        = 256;
    TCC0.CTRLA      = TC_CLKSEL_DIV1_gc;
    
    AWEXC.CTRL      = AWEX_DTICCAEN_bm;
    AWEXC.DTBOTH    = 48;
    AWEXC.OUTOVEN   = 0x03;
        
while (1)
    {
    }
}
AWEXC.CTRL = AWEX_DTICCAEN_bm  - здесь разрешаем использование на канале А, паузы неперекрытия.
AWEXC.DTBOTH - Общий регистр паузы неперекрытия
AWEXC.DTHS и AWEXC.DTLS Регистры паузы неперекрытия верзнего и нижнего уровня
AWEXC.OUTOVEN - Регистр разрешения перекрытия выходов
TCC0.CTRLB  =  TC_WGMODE_SS_gc | TC0_CCAEN_bm - запускаем режим генерации импульсов с однонаправленным счетом и активируем канал A.
    Данный пример управляет с помощью PORTC.0 и PORTC.1 двумя транзисторами в плечах преобразователя.
    Так как MOSFET транзисторы запираются не сразу, и не возникло ситуации, когда оба транзистора открыты. Необходимо выставлять паузы неперекрытия, чтобы транзистор наверняка  заперся.
Больше технической русскоязычной документации здесь

Самый лучший сервис для получения Кэшбэка с Online покупок.

Posted by Reason89 | Posted in , ,

    В последнее время все больше людей начинают совершать онлайн покупки. Мало того, что это весьма удобно, так еще и можно найти именно то, что ты хочешь и по более низкой цене.
Онлайн магазинов сейчас огромное количество, самые знаменитые это Ebay и Aliexpress. Существуют и отечественные площадки, но на них цены немного больше китайских и почти всегда приходится платить за доставку.
    Люди  с Китая заказывают все, начиная от резинки для волос и заканчивая топовыми телефонами и компьютерами. Если взглянуть на те же социальные сети, то там появилось огромное количество групп связанных с покупками на Aliexpress. Обычно выкладывается изображение товара, один из хороших комментариев к нему и ссылка по которой люди переходят и добавляют товар в корзину.
    Мало кто догадывается, что ссылки на эти товары являются некой CPA рекламой. Если вы приобретаете этот товар, то человек, который разместил данную ссылку получает определенный процент за то, что привел вас на сайт. Процент может быть разнообразным, вплоть до 15%, зависит от продавца.
   Подобные отчисления называются "CashBack", т.е. это награда за то, что покупателя привели на сайт.
    Но не каждый знает, что он может сам получать этот самый Кэшбэк. Существует много сайтов, на которых нужно зарегистрироваться, заходить туда перед покупкой. Вбивать ссылку на товар и получать новую, по которой и будет совершаться покупка. А деньги в итоге можно вывести только на WebMoney или ЯндексДеньги. На мой взгляд это крайне не удобно. Плюс ко всему, не видно распространяется ли акция на данный товар.
    В итоге, из всего многообразия подобных сайтов я выбрал на мой взгляд самый удобный сервис.
    Этот сервис предлагает после регистрации установить плагин в браузер. И когда вы будете посещать какой либо онлайн магазин, плагин будет вам показывать возможную скидку для вас. Если брать самый популярный китайский онлайн магазин(Aliexpress), то там CashBack составит порядка 7%(т.е. с 1000 потраченных рублей, на счет телефона можно будет вернуть 70).
    Вам нужно всего лишь на странице с товаром щелкнуть по плагину и нажать по кнопке "Перейти к покупке". После этого страница обновится и вы можете покупать товар.
Позже зайдя на сайт сервиса, на вкладке статистика, вы увидите номер операции и отчисления, которые вам положены.
    Все деньги полученные вами от покупок можно переводить как на счет телефона, интернет кошельки или на карты Visa или MasterCard.
    В общем если вы часто покупаете товары в интернете, вам стоит задуматься о том, какие деньги вы упускаете.

Xmega: Работа с дисплеем Winstar WH1602 на контроллере HD44780

Posted by Reason89 | Posted in , ,

 
    Разъяснять о дисплее ничего не буду, информации в сети просто уйма. Самый распространенный контроллер для LCD. Дисплее встретить можно везде и повсеместно. На момент подписания подобные дисплее 16х2 можно с китая заказать за 90 рублей за штуку.
    Подключаются все практически однотипно, единственный косяк есть в том что у некоторых моделей VCC и GND поменяны местами, если перепутать сгорает моментально.
    Изучал подобный дисплей еще в универе, тогда было проще) Макетка заранее настроена, все библиотеки подключены, печатаешь все согласно методичке и все работает)
    Решил подключить сей девайс к Xmega. Как подключать, включать подсветку, настраивать контрастность и выводить кириллицу найти не проблема.
    Моя первая и главная ошибка была в том, что я много времени убил на поиск готовой библиотеки, которых на самом деле не мало. Нашел даже для контроллеров Xmega Но любые попытки подключить уже что то готовое разбивались в пух и прах. То компилятору что то не нравилось, то не хватало какой то библиотеки и.т.д. В итоге плюнул, освоил с нуля документацию и начал писать сам. Совету вчитаться в команды и расшифровать их, а не в лоб использовать готовые.
 
    Второе на что следует обратить внимание это то, что дисплей мягко говоря заторможен. После любой отправленной ему команды необходимо выдерживать приличную паузу.
Смотрите даташит и ставите с запасом и не прогадаете.
Ну и собственно несколько функций для приятной работы по 8 битной шине данных:
Пытался выложить по как обычно через виджет, но он исковеркал код до неузнаваемости, итого выложу так.