A5-V11

Чрезвычайно дешевое устройство (450руб) на RT5350 с возможностью установки openWRT. Маленькая 4M ROM легко перепаивается на 16M winbond 25Q128FVIQ.
Сериальный порт легко распаивается, работает как и большинство RT5350 на скорости 57600.

a5-v11_upgrade

Для того чтоб можно было подключаться программатором без дальнейшего выпаивания пришлось заменить один конденсатор 470mf и положить его на бок, а также подвесить ногу питания и подключить ее через диод (чтоб питание от программатора на подавалось на основную плату в момент прошивки). Вместо диода стоит олдскульный КТ315.

a5-v11_owrt

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

Рубрика: soc | Добавить комментарий

FE1.1 USBHUB

Встроенный малогобаритный USB hub часто нужен в проектах, где к SOC/SOM компьютеру (такие обычно имеют один USB host выход)
нужно присоединить более одного устройства. Решая задачу можно разбирать существующие хабы, выпаивая лишние USB-коннекторы, либо собрать собственный на основе набора микросхем USB Transeiver. Наиболее популярные из них — fe11-datasheet в корпусе QFN48, fe1-1s_datasheets в корпуске SSOP28,
а также варианты на других схемах, например GL850A.

Закупил на али FE1.1 и FE1.1s вместе с breackboards, примерно такими:
ssop28_boardqfn48_board

Схема для FE1.1 потребовала 22pf коненцаторов, которых пока не оказалось. А также кучу соединений и подтяжек. Заработала только в режиме low-speed, что для работы не годится. Посмотрим что получится после подключения кондеев, но пока результат неочень.

fe1-1_schematic

Важно не забыть объединить все OVCB, все VD33, и VD18_O. И кондей на VD33_OUT важен.

fe1-1_done

Но лучше использовать FE1.1s — деталей напаивать нужно меньше (кристал 12Мгц, два конденсатора и один резистор)

fe1-1s_schematic

Результат получился такой

fe1-1s_done

Определился как high-speed, тестирование скорости записи на быструю флешку дало 18МБайт/сек, что есть хорошо. В общем — его и нужно использовать в финальном проекте.

Нарисовал публичный проект в easyEDA, развел платы и заказал 10штук. С доставкой в Россию получилось на тысячу рублей. Для хобби приемлемо, для продакшна конечно дорого.

Рубрика: usb | Добавить комментарий

ESP-01

Из всего многообразися esp8266 выведено только два GPIO (0,2) и сериальный порт (TX=GPIO1,RX=GPIO3). На TX также разведен голубой светодиодик. Размер флеша может быть разный — обычно 512Кб, но бывает и 1М.

esp-01_flashing

esp-01_pinout

Если загрузиться с GPIO0 на нуле — то включается ожидание загрузки прошивки. По окончании загрузки модуль переходит в рабочее состояние (независимо от состояния GPIO0), что позволяет сразу же проверять работу без подачи ресета и переконфигурирования проводов. РЕКОМЕНДУЕТСЯ подтянуть к питанию ресет, иначе иногда модули не стартуют, отлавливается сложно. Кроме того GPIO2 тоже лучше подтянуть вверх, по даташиту он включен в управление загрузкой (и для всех схем должен быть 1).

Модуль крайне чувствителен к потреблению, заявлена работа от 3.0 до 3.6. Пробовал — работает и от 4.2, что позволяет питать от некоторых аккумуляторов.
Но бортового питания 3.3в от USB-TTL достаточно чтоб моргать диодом, и уже недостаточно чтоб выводить в серийный порт, в пике модуль может требовать до 200ма (при коннекте к wifi). Такие особенности очень тяжело отлавливать. Вероятно такое же поведение у всех esp.

Существуют удобные программаторы под гребенку ESP-01
esp01_programmer

Модуль представляет из себя обычный USB-TTL преобразователь и требует доработки для перехода в режим программирования — нужно замкнуть GPIO0 на Землю.

Странно — но автоматический ресет не выведен, доделать можно забрав отсюда.

Рабочая схема (подобна тому что используют в NodeMCU), кондей можно выбрать и больше (у меня был 0.47, с ним работает но через раз, пока удалил, приходится вручную передергивать питание перед началом прошивки).

esp8266_prog

Для подпайки к конвертеру нужны две ноги (DTR 13, RTS 14) ch340g-datasheet

На всякий случай распиновка KT315 kt315

Ну все — теперь нормальный программатор получился. Почему сразу так не сделать?
esp8266prog_mod

Проверил работу i2c на GPIO (0,2) — работает нормально.

Рубрика: pinout | Добавить комментарий

ESP-07

На базе esp8266 есть целая куча модулей.

Правильная распиновка (на самом деле еще и на корпусе указана) esp-07_datasheet

esp-07_pinout

Режимом программирования у всех esp управляет GPIO0 — если он на нуле — то после ресета включается режим программирования. Понятно что этот вывод pullup. Кроме того нужно pullup два вывода — EN (или CH_PD) — включение модуля, и RESET (чтоб не дрожжал). Замыкания ресет на землю перегружает модуль. Минимальная схема выглядит так

esp07_min

Теперь о прошивке — в Ардуино с 1.6 поддерживается плата esp8266 generic — выбираем ее с дефолт-настройками (DIO,40,80,512K), ставим GPIO на ноль и заливаем прошивку. У меня постоянно выдавалась ошибка сразу после chip erase —

.............warning: espcomm_send_command: didn't receive command response
warning: espcomm_send_command(FLASH_DOWNLOAD_DATA) failed
warning: espcomm_send_command: didn't receive command response
closing bootloader
An error occurred while uploading the sketch

Потратил много времени, оказывается — проблема в USB-TTL. FDTI232 не шьет — дает ошибку. А обычный китаец на 2303 замечательно отрабатывал. Почему так понять не смог, у FTDI тоже выставлял 5В (запитывая при этом от внешнего блока), все равно прошивка останавливалась на том же месте. Не починил в общем, а жаль, так как у FTDI есть выводы DTR (который мог присоединяться в RESET и делать автосброс при начале прошивки) и RTC который можно было присоединить в GPIO0 — и таким образом иметь автоматическое включение режима прошивки. Сейчас приходиться передергивать питание для ресета, и переставлять проводок для управления режимом программинга.

Слева направо — неумелый USB-TTL, распаяный ESP07, переключатель режимов ресета и программирования, и рабочий USB TTL.

esp07_ok

Рубрика: pinout | Добавить комментарий

DS1820

Температурный датчик DALLAS SEMICONCUCTORS на интерфейсе 1wire. Три вывода — питание (от 3 до 5 вольт) и линия данных.
Линия данных должна быть подтянута к плюсу через 4k7. Такая подтяжка возможно не на всех GPIO разрешена.

ds1820

Даташит ds18s20

Стоимость практически идентична с DHT11 (около 40 рублей), при этом температура всегда выше на 2 градуса почему-то. Из плюсов — он компактнее (DHT11), и использует масштабируемую шину.

А именно — в 1wire каждое устройство имеет свой адрес, и поэтому на одном проводе можно расположить несколько датчиков одновременно (в отличие от DHT).

Рубрика: pinout, Без рубрики | Добавить комментарий

esp8266

Куча полезной информации об esp8266

Отличный обзор функциональности на esp8266.ru

Я закупил несколько ESP-12E mini — у них только по 8 выводов с каждой стороны, рабочие контакты TX,RX,D0-D8,A0 и управляющие GND,5V,3V,RST. SPI нет, и где-то говорят есть i2c? По крайней мере — доступна в lua-коммандах.

nodemcu_min

Пинаут для полного NodeMCU

nodemcu_pinout

Собрал WiFi сервер для чтения температуры и управления блоком 4х реле. Код в гитхабе

esp_webserver

Интересна работа с EEPROM. Перед началом нужно открыть EEPROM.begin(size) и указать размер считываемых данных. В случае записи надо давать EEPROM.commit(), промежуточные буфера удаляются EEPROM.end().

Рубрика: pinout | Добавить комментарий

DHT11/DHT22

Температурный датчик termo DHT11 и DHT22 имеют схожую распиновку. При подключении требуют подтяжку data к VCC резистором 10К.

dht11

Для работы через rPI требуется установка wiringPI и компиляция программы считывания — например https://github.com/technion/lol_dht22

 

Рубрика: pinout | Добавить комментарий

Arduino UNO pinout

arduino-uno-r3-pinouts-550x423

Рубрика: pinout, Без рубрики | Добавить комментарий

NTC-MF52 термисторы

Для контроля температуры кроме цифровых датчиков можно исопльзовать и аналоговые термисторы.
(температурные сенсоры, терморезисторы, termoresistors, termistors, etc).

Например NTC-MF52 (10К) — изменяет свое сопротивление при изменении температоры, и продается на али пачками по 100штук дешевле 200 рублей.

Temperature_Sensor_NTC-MT52

Чтоб использовать нужно построить делитель (например — pull-up, термистор на землю и подтянут на плюс сопротивлением 10К)
и мерять напряжение с промежуточной точки делителя. Для восстановления температуры по сопротивлению используют либо таблицы (что неудобно),
либо формулу Стейнхарта-Харта (см пример с калибровкой)

Ниже — мой рабочий пример для NTC-MF52


double Therm(int RawADC) {  //Function to perform the fancy math of the Steinhart-Hart equation
  //[!termo]
 double Temp;
 out("RAW-ACD"+String(RawADC));  // 498 ; 26.16 but - same on 3.3v ADC=650, 12.94
 #ifdef thermo_pulldown
  Temp = log(((10240000/RawADC) - 10000)); // Pull -down
 #else
   Temp =log(10000.0/(1024.0/RawADC-1)) ; // Pull-up
#endif

 Temp = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * Temp * Temp ))* Temp );
 Temp = Temp - 273.15;              // Convert Kelvin to Celsius
 //Temp = (Temp * 9.0)/ 5.0 + 32.0; // Celsius to Fahrenheit - comment out this line if you need Celsius
 return Temp;
}

void loop() {
  Serial.println("Term="+String( Therm (analogRead(A7))));
  delay(1000);
}

Рубрика: Без рубрики | Добавить комментарий

HK4100f — низковольтное реле

Для несильноточных коммутации вполне подойдет такое реле — HUIKE 10 PCS hk4100f-DC3V
Срабатывает от 3.3 в, можно вешать прямо на ногу ардуины. Продаются по 40руб за штуку.
При сопротивлении обмотки 60ом и напряжении 3в имеем 50ма.

hk4100f

внешний вид

HUIKE

Распиновка

hk4100f

Рубрика: pinout, Без рубрики | Добавить комментарий