Зарядное устройство для Li-ion на ТР4056

  Заказал на Ali лот из пяти модулей зарядных устройств на чипе TP4056 для Li-ion аккумуляторов (цена лота 68,70 руб, за модуль 13,74 руб, сентябрь 2015). Пришли на одной печатной плате, разделенные скрайбированием (надрезанием). На печатке логотип kvsun — китайский производитель широкого спектра зарядок Li-ion аккумуляторов различных типоразмеров и применений.



Статья в основном является компиляцией разрозненных данных интернета, с целью собрать все в одном месте.


Читать дальше

Библиотека для дисплея на SSD1306 для STM8S

Заказал я себе интереса спортивного ради с ебея крошечный OLED-дисплейчик.
Порывшись в сетях, нашел кой-какую информацию, но мне хотелось сделать библиотеку «под себя», с привычными еще со времен Нокиа-3310 функциями.
Вот результат:
Изображение - savepic.net — сервис хранения изображений


Читать дальше

Если надо много битовых флагов

В одном проекте, понадобилось много битовых флагов
Выделять на каждый флаг по байту — это роскошь.
имея в STM32 bit-band, написал макрос, может кому то пригодится

//сама переменная, где будут наши флаги,можно заранее проинициализировать
unsigned int BitBandArray=0;
//SRAM_BASE начало памяти
//SRAM_BB_BASE  -  где начинается битбанд алиас памяти 
//объявлено тут stm32f10x.h 
//сам макрос  первый параметр - номер бита, второй  имя перемененной, где биты хранятся
#define BitBand(b,a)  (*((char *)SRAM_BB_BASE+(((int)&a)SRAM_BASE )*32+b*4))
//сами флаги
#define AxelFlag  BitBand(0,BitBandArray)
#define PowerGood BitBand(1,BitBandArray)
#define BatFlag   BitBand(2,BitBandArray)
// и так 32 раза

////////////////
///теперь можем к ним обращаться как к обычным переменным
//присвоение
AxelFlag =1;
//чтение
if(PowerGood ==1)
    {
    }

LED-дисплей SHD0032

Намедни разбирался с вариантами индикации для одной из своих поделок (очень уж мне не хотелось связываться с ЖКИ) и наткнулся на готовые модули SHD0032. Это LED-дисплей на 4 разряда, со сдвиговым регистром и последовательным вводом (записью). Т.е., по сути, это такая статическая индикация.



Читать дальше

Step-Up на базе NCP1402 (ncp1402sn50t1g)

Step-Up на базе NCP1402По наводке уважамого Zlodey приобрел на ebay Step-Up ncp1402sn50t1g (даташит).

Поскольку ничего, что требовало бы батарейного питания я сейчас не придумываю, а попробовать новую детальку (пришедшую, между прочим, в количестве десяти штук) хочется — сделал простенькую плату — Step-Up блок питания на 5 Вольт, 200 мА.

Читать дальше

OLED SSD1306

Заказал как-то раз — дисплей OLED из Китая...
В итогде всем остался доволен.
Решил написать пару строк и поделится результатом.


Читать дальше
  • +9
  • 30 октября 2014, 14:46
  • khomin
  • 2

PGA своими руками

Сколько раз ни пытался применить готовые PGA (усилитель с программируемым Ку), ни разу не мог подобрать подходящий. Либо сетка коэффициентов не устраивает, либо (в основном) высокая цена, а часто особенности схемотехники. В результате пришлось изобрести свой.

Казалось бы, чего проще — операционник и коммутатор в цепи ОС, переключающий резисторы нужных номиналов.
Типа:


Как известно, Ку такого усилителя будет определяться соотношением Ку = R2..R5 / R1, выбор задается по адресным входам А0, А1. Вроде все ничего, но есть одно но. Как правило, КМОП-ключи имеют некоторое внутреннее сопротивление, и оно редко меньше 1 Ом, а может достигать и десятков. При этом однозначно нормировать его нельзя, т.к. этот параметр может изменяться как от экземпляра к экземпляру, так и от внешних условий — температуры, амплитуды сигнала и т.д.

Чем это грозит? Тем, что сопротивление ключа вносится в Rос и изменяет Ку. Если требования к точности невысокие и ключ достаточно низкоомный, можно пренебречь внутренним сопротивлением или взять типовое значение из даташита. Однако, если речь идет о прецизионных измерениях, закрывать на это глаза уже нельзя.

Что же делать? Нужно попытаться вынести добавку «за скобки». К счастью, нам повезло :) и коммутатор оказался двухсекционным. Легким движением руки…

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

Что произошло? Теперь при подключении любого из резисторов обратной связи мы берем выходное напряжение не с выхода операционника, где оно содержит добавку, обусловленную падением на ключе, а непосредственно с Rос, которое в точности определяется первоначальной формулой, ибо входной ток через R1 уравновешивается выходным через Rос, и напряжение на Rос зависит только от соотношения резисторов. Добавка, обусловленная дополнительным сопротивлением ключа коммутатора, на нем же и осталась.

Эту схему я придумал сам, некоторое время ощущая себя в определенном смысле гением :) пока не наткнулся на описание схемотехники китайского RLC-метра, который срисовали со старинного agilent. Ну и там увидел свой «велосипед». То есть, это вполне стандартный трюк, которым я с удовольствием и делюсь с уважаемым сообществом.

Дополнительный бонус обнаружился при разводке данной конкретной схемы. Кто попробует, поймет, о чем я :)

Спасибо за внимание, успехов в творчестве.

Базовые макросы. Взгляд из ассемблера ARM Cortex-M.

Всем привет.

Здесь я коротко напишу про вид из ассемблера базовых макросов min(a,b), max(a,b) и isEqual(a,b).

Первые два иногда пригождаются, третий — весьма спорный, но иногда его удобно использовать.

Заметка будет короткой и наверняка не интересной для профи, которые знакомы с архитектурой ARM-Cortex, и понимающие отличия ARM-режима процессора от THUMB-режима) Кому все же интересно — добро пожаловать под кат.

we.zloy_pakimon.arm_asm_macro_1



Читать дальше

Радиомодуль nRF24L01+ быстрый старт.

Попался ко мне в руки вот такой радио модуль nRF24L01+, вот отсюда.



Читать дальше

Математика на ассемблере в AVR.

AVR
За время программирования чипов AVR, нарыл я разных математических подпрограмм для этих чипов. Может кому пригодятся. Что мне жалко этого добра? Пущай народ чесной пользуется. Если у кого то есть что то еще, то можно добавить это в статью.

Читать дальше