Микроконтроллеры для начинающих

Ну надо же где-то поговорить не только о светодиодах :)

Re: Микроконтроллеры для начинающих

Сообщение OlegNZH » 01 сен 2014, 10:19

ivdor писал(а):
OlegNZH писал(а):Lp2950 3.3 - это стандарт. Если нагрузка есть ещё приличная - то LM317 (2 Ампера ,напряжение выставить делителем). НО! если нагрузка Совсем ПРИЛИЧНАЯ (например GSM-модуль , который в пиках жрёт как слон) тогда LD1084 (до 5А).

lp2950 у нас аж по 40р..
А lm и ld.. У LD минимальное падение порядка 1В, у LM еще больше. Для лития, как мне кажется, не вариант.

Подскажи еще - ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++есть в лежачем D2PAK корпусе - он тоже 0.3А максимум ? В даташите нет разграничения по корпусам.

Ну и по сути остается еще вариант - тл431 и транзистор.


Вариантов- множество! 2950 тем и славится- Ценой ...и минимальным падением напряжения на себе.Из 5 Вольт 3.3 вытягивает .Остальным минимум 2 вольта требуется для стабилизации. У LP корпус не имеет значения и там вообще-то 100 мА.
OlegNZH
Прожектор
Прожектор
 
Сообщений: 105
Зарегистрирован: 29 авг 2010, 19:23
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Микроконтроллеры для начинающих

Сообщение ivdor » 02 сен 2014, 23:15

OlegNZH писал(а):Вариантов- множество! 2950 тем и славится- Ценой ...и минимальным падением напряжения на себе.Из 5 Вольт 3.3 вытягивает .Остальным минимум 2 вольта требуется для стабилизации. У LP корпус не имеет значения и там вообще-то 100 мА.

Странно. Откуда я взял 0.3А - уже не найти :?

http://www.aliexpress.com/snapshot/6194267960.html
Взял такой программатор компактный. От заказа до местного почтового отделения - 13 дней ! :o
По пути он встретился в Питере с посылкой контроллеров из Элитана - дальше ехали уже вместе. Завтра буду смотреть, как он работает )
Оно и не что-либо как и не как-либо что. А что касательно относительно - то безусловно. Оно и не надо было бы, но доведись такое дело - вот я вам и пожалуйста. Я все.

PS: используйте вышеприведенную информацию на свой страх и риск..
Аватар пользователя
ivdor
Scio me nihil scire
Scio me nihil scire
 
Сообщений: 3851
Зарегистрирован: 29 июл 2011, 00:49
Откуда: Псков, СЗФО.
Благодарил (а): 24 раз.
Поблагодарили: 270 раз.

Re: Микроконтроллеры для начинающих

Сообщение ivdor » 03 сен 2014, 23:54

ivdor писал(а):http://www.aliexpress.com/snapshot/6194267960.html
Взял такой программатор компактный.

Работает шустро :) Подхватился семеркой без проблем. Как вспомню установку дров для авр"ок - земля и небо )
Естественно - сразу разобрал корпус (ммм.. люминий) ::D Пришел серого цвета.
Основа - stm32f101. Обновил прошивку родной утилитой ст-линк до последней версии. Полет нормальный
Оно и не что-либо как и не как-либо что. А что касательно относительно - то безусловно. Оно и не надо было бы, но доведись такое дело - вот я вам и пожалуйста. Я все.

PS: используйте вышеприведенную информацию на свой страх и риск..

За это сообщение автора ivdor поблагодарил:
Michail (04 сен 2014, 00:09)
Аватар пользователя
ivdor
Scio me nihil scire
Scio me nihil scire
 
Сообщений: 3851
Зарегистрирован: 29 июл 2011, 00:49
Откуда: Псков, СЗФО.
Благодарил (а): 24 раз.
Поблагодарили: 270 раз.

Re: Микроконтроллеры для начинающих

Сообщение konservator » 13 сен 2014, 20:33

Michail писал(а):20-ногих? Отличная вещь, мои любимые :) По 45 дороговато правда.
Один недостаток у них на мой взгляд - отсутствие DAC, который я хочу использовать в том числе и для управления СД драйверами со входом 0-10 вольт. Только ради него и пришлось заказать F100, уже и платки под них от китов приехали, и запаял 3 штучки, но в бою проверить все руки не доходят.
Если интересует - могу завтра скинуть проект в Eagle своей боевой платки и готовые Gerber для заказа плат на iteadstudio.


Добрый день Michai! Если бы вы поделились проектом Eagle для своей платы на STM32F0 TSSOP20 был бы вам очень признателен! Недавно приобрел несколько таких МК, но как оказалось самому спроектировать элементарную плату для них, даже чтобы помигать светодиодом у меня не получается (я вообще программист, поэтому просто не хватает знаний). Заранее благодарен.
konservator
Светлячок
Светлячок
 
Сообщений: 1
Зарегистрирован: 13 сен 2014, 20:18
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.

Re: Микроконтроллеры для начинающих

Сообщение Michail » 14 сен 2014, 15:21

Пожалуйста.

STM32F050F.zip
(328.02 KIB) Скачиваний: 438

В архиве проект Eagle, разводка в TopoR и готовые Gerber для отсылки в iTeadStudio.

Пояснения по схеме:
STM32F050F_sch.jpg
STM32F050F Схема

Слева - схемка питания на LM2596S-3.3 с индикацией светодиодиком 1206 и защитой от переполюсовки. Необязательная, но очень удобно. Можно питать от 3,2 (разряженный литий) до 40 вольт (если позволяет максимальное напряжение C1 и C2).
Справа - собственно сам MK, выводы SWD, опять же необязательные контакты для подключения радиомодуля nRF24L01 и набор выходов в стиле ардуино.

SAM_4270_1.jpg
STM32F050F Top

SAM_4268_1.jpg
STM32F050F Bottom

Если присмотреться - можно увидеть некритичный косячок, обозначение выводов SWD не с той стороны получились. На работу конечно не влияет, но не красиво :roll:

Ну и библиотеки компонентов Eagle не входящие в стандартную поставку. Многие входят в эти проекты. Часть нарисованы мной, часть собраны с инета...
Libraries.rar
Библиотеки Eagle
(542.86 KIB) Скачиваний: 411


P.S. все мои схемки по максимуму на компонентах поверхностного монтажа, жуть как не люблю сверлить, да и паять намного удобнее. Поэтому часто и в ущерб стоимости самих компонентов. Но для себя любимого - не критично.
Все компоненты брались в Элитане или китайских аукционах, в зависимости от того где дешевле и проще. Если что не найдете - спрашивайте.
Я, это, держусь нейтралитета... © м/ф "Фантазеры из деревни Угоры"
Аватар пользователя
Michail
Искра знания
Искра знания
 
Сообщений: 935
Зарегистрирован: 14 сен 2011, 18:45
Откуда: г. Ижевск
Благодарил (а): 187 раз.
Поблагодарили: 63 раз.

Re: Микроконтроллеры для начинающих

Сообщение Michail » 14 сен 2014, 15:51

Ну и сразу - второй проект на STM32F100C8.
STM32F100C.zip
(528.75 KIB) Скачиваний: 448


Схемка тут поинтереснее:
STM32F100C_sch.jpg
STM32F100C Схема

По порядку по блокам, слева-направо, сверху-вниз:
1. Питание на LM2594. Как обычно, индикация, защита от переполюсовки. По сравнению с предыдущей схемой, за счет снижения максимального тока (что нам в принципе фиолетово), значительно уменьшились занимаемые на плате размеры. Сама схемка на Ali - около 30 р.
2. Конденсаторная обвязка микроконтроллера.
3. Радиомодуль nRF24L01
4. Порт SWD
5. Необязательная кроватка под батарейку CR2032
6. Необ. часовой кварц (SMD)
7. Необ. внешняя EEPROM
8. Необ. пользовательский светодиод
9. Необ. выход на датчик температуры и влажности DHT11/DHT22
10. Необ. выход на датчик температуры типа DS18B20
11. Набор выводов а ля ардуино
12. Необ. встраиваемый датчик темп. типа LM75
13. Собственно сам МК. Слева - светодиодик, который предполагается использовать в качестве датчика загрузки ЦП
14. Вывод 2-х каналов ЦАП с операционниками для расширения диапазона
15. Предполагается использовать как вход для датчиков движения (PIR). По сути просто вывод 2-х ног на разъем

С распаянными всеми компонентами (ну кроме выводов):
SAM_4276_resize.JPG
STM32F100C Верх

SAM_4284_resize.JPG
STM32F100C Низ


На первый взгляд вроде косяков особо не видно, но дополнительные компоненты еще не тестировались, только сам МК и светодиодики. Все ковыряю F050, до этого монстра добраться все некогда чтобы помучать.
Я, это, держусь нейтралитета... © м/ф "Фантазеры из деревни Угоры"

За это сообщение автора Michail поблагодарил:
konservator (14 сен 2014, 16:27)
Аватар пользователя
Michail
Искра знания
Искра знания
 
Сообщений: 935
Зарегистрирован: 14 сен 2011, 18:45
Откуда: г. Ижевск
Благодарил (а): 187 раз.
Поблагодарили: 63 раз.

Re: Микроконтроллеры для начинающих

Сообщение Michail » 16 сен 2014, 00:40

Да, вспомнил еще один косячок первой платы - не правильно выбран в Eagle корпус диода SS34. Почему-то у библиотеки Eagle свое понятие корпуса SMC. Из-за этого диод на площадке помещается тютелька в тютельку и припаять немного проблемно. Тем не менее из 7 запаянных платок ни одного брака, главное немного терпения ::D
Во второй плате эта проблема устранена, точнее сам диод заменен ::D Что, кстати, не указано в проекте Eagle. Там должен быть не SS34 а SK14.
И опыт, сын ошибок трудных... :roll:
Я, это, держусь нейтралитета... © м/ф "Фантазеры из деревни Угоры"
Аватар пользователя
Michail
Искра знания
Искра знания
 
Сообщений: 935
Зарегистрирован: 14 сен 2011, 18:45
Откуда: г. Ижевск
Благодарил (а): 187 раз.
Поблагодарили: 63 раз.

Re: Микроконтроллеры для начинающих

Сообщение Michail » 24 сен 2014, 16:33

Всем привет!
Прошу прощение за долгое отсутствие, на работе на учебу заслали на 3 недели, немного выпал из жизни. Сейчас немного с работой разгребусь и продолжу свое повествование.

Ivdor, как успехи с STM32F050F?
Я, это, держусь нейтралитета... © м/ф "Фантазеры из деревни Угоры"
Аватар пользователя
Michail
Искра знания
Искра знания
 
Сообщений: 935
Зарегистрирован: 14 сен 2011, 18:45
Откуда: г. Ижевск
Благодарил (а): 187 раз.
Поблагодарили: 63 раз.

Re: Микроконтроллеры для начинающих

Сообщение ivdor » 24 сен 2014, 16:41

Да сейчас вообще завал с работой и халтурой - домой прихожу поесть и поспать ::D
Еще и брат заказал устройство для контроля 3х-фазной сети. На одном из объектов по ночам вырубается, надо определить где и во сколько. Пока думаю - атмеги завалявшиеся пустить, или попробовать на 050 сделать..
Оно и не что-либо как и не как-либо что. А что касательно относительно - то безусловно. Оно и не надо было бы, но доведись такое дело - вот я вам и пожалуйста. Я все.

PS: используйте вышеприведенную информацию на свой страх и риск..
Аватар пользователя
ivdor
Scio me nihil scire
Scio me nihil scire
 
Сообщений: 3851
Зарегистрирован: 29 июл 2011, 00:49
Откуда: Псков, СЗФО.
Благодарил (а): 24 раз.
Поблагодарили: 270 раз.

Re: Микроконтроллеры для начинающих

Сообщение ivdor » 03 окт 2014, 14:27

Изучал китайшопы.

Заказал на попробовать контроллер заряда лития, 1А - tp4056, 8,17 руб. / piece - http://www.aliexpress.com/item/Original ... 92457.html
В целом, эта микруха почти во всех платах для usb-зарядок лития.

и 3.3В ЛДО-регулятор, 0.15А - MIC5205-3.3YM5, 7,35 руб. / piece - http://www.aliexpress.com/item/Free-shi ... 91968.html

В принципе, для АКБ устройств - идеальная связка. Обвязки минимум, возможность отключения.

Придут - будем посмотреть :)
Оно и не что-либо как и не как-либо что. А что касательно относительно - то безусловно. Оно и не надо было бы, но доведись такое дело - вот я вам и пожалуйста. Я все.

PS: используйте вышеприведенную информацию на свой страх и риск..
Аватар пользователя
ivdor
Scio me nihil scire
Scio me nihil scire
 
Сообщений: 3851
Зарегистрирован: 29 июл 2011, 00:49
Откуда: Псков, СЗФО.
Благодарил (а): 24 раз.
Поблагодарили: 270 раз.

Re: Микроконтроллеры для начинающих

Сообщение Michail » 23 окт 2014, 15:05

Предлагаю двигаться дальше...

5. Запускаем первую программу...

В части 3 мы вплотную подошли к запуску 1-й программы на нашем МК. Однако, чтобы она заработала на STM32F050F, необходимо ее немного подправить, т.к. у нас нет ножек C8 и C9, использованных в примере.

Откроем наш МК в STM32CubeMX и выберем парочку ножек. Для начала советую выбрать что-нибудь из GPIOA 0-10. Остальные тоже можно использовать, но с ними будут свои заморочки.
Я для примера возьму A0 и A4:
STM32F050F4.jpg


Посмотрим наш код (функция main в файле main.c):
int main(void)
{
GPIO_InitTypeDef InitGpio;
unsigned int i = 0;

// Initialises the system clock
SystemInit();

// Enables the clock for GPIOC
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC, ENABLE);

// Configures the GPIOC pin8 and pin9, since leds are connected
// to PC8 and PC9 of GPIOC
InitGpio.GPIO_Pin = (GPIO_Pin_8 | GPIO_Pin_9);
InitGpio.GPIO_Mode = GPIO_Mode_OUT;
InitGpio.GPIO_Speed = GPIO_Speed_Level_1;
InitGpio.GPIO_OType = GPIO_OType_PP;
InitGpio.GPIO_PuPd = GPIO_PuPd_NOPULL;

// Initialises the GPIOC
GPIO_Init(GPIOC, &InitGpio);

while(1)
{
// Turn ON the Leds
GPIO_SetBits(GPIOC, (GPIO_Pin_8 | GPIO_Pin_9));

// Delay
for (i = 0; i < 0x0FFFFF; i++);

// Turn OFF the Leds
GPIO_ResetBits(GPIOC, (GPIO_Pin_8 | GPIO_Pin_9));

// Delay
for (i = 0; i < 0x0FFFFF; i++);
}
}

То, где надо внести изменения, выделено красным цветом. Меняем все GPIOC на GPIOA и (GPIO_Pin_8 | GPIO_Pin_9) на нужные номера пинов, в моем случае - (GPIO_Pin_0 | GPIO_Pin_4).

Компилируем (F7), подключаем ST-Link к МК если еще не подключен, и заливаем нашу прошивку (Flash->Program Download).
Теперь напряжение на выбранных нами ножках периодически будет менять значение с 0В на 3.3В и обратно. Если подключить к этим ножкам СД через резисторы (думаю не нужно объяснять как это сделать :) ), то они будет мигать.
NB!: при расчете резисторов стоит учесть, что по даташиту максимальный ток через 1 ножку ввода-вывода не должен превышать 25 мА, и через все в сумме не более 80 мА. Если надо больше - через транзистор.

Разберем теперь по порядку, что же мы делаем в программе:
Код: выделить все
   SystemInit();

Вызываем функцию начальной инициализации МК (установка источника тактирования, множителей и частоты, инициализация некоторых регистров). Строго говоря необязательно, но так мы точно можем узнать что у нас и как настроено. Можно переопределить на свою функцию инициализации.
Код: выделить все
   // Enables the clock for GPIOA
   RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);

Включаем тактирование ножек ввода-вывода порта А. Здесь остановимся поподробнее, т.к. это частая ошибка, особенно у тех кто переходит с AVR.
В отличие от AVR у STM32 при включении питания выключено тактирование всей периферии с целью экономии энергии, и если мы хотим использовать какой либо блок, будь то порт ввода-вывода, таймер или часы реального времени, первым делом надо его включить!

Код: выделить все
   // Configures the GPIOA pin8 and pin9, since leds are connected
   // to PC8 and PC9 of GPIOA
   InitGpio.GPIO_Pin = (GPIO_Pin_0 | GPIO_Pin_4);
   InitGpio.GPIO_Mode = GPIO_Mode_OUT;
   InitGpio.GPIO_Speed = GPIO_Speed_Level_1;
   InitGpio.GPIO_OType = GPIO_OType_PP;
   InitGpio.GPIO_PuPd = GPIO_PuPd_NOPULL;

   // Initialises the GPIOA
   GPIO_Init(GPIOA, &InitGpio);


Тут идет настройка самого порта. Определяем пины какие хотим настроить, режим - выход, скорость - минимальная:
GPIO_Speed_Level_1 = 0x00, /*!< I/O output speed: Low 2 MHz */
GPIO_Speed_Level_2 = 0x01, /*!< I/O output speed: Medium 10 MHz */
GPIO_Speed_Level_3 = 0x03 /*!< I/O output speed: High 50 MHz */

чем меньше установлена скорость тем более гладкие фронты и меньше энергопотребление.
Тип вывода - Push-Pull, подтяжки - нет.
Ну и запускается собственно процедура инициализации порта GPIOA с установленными выше параметрами.

Далее идет бесконечный цикл
while(1)

Код: выделить все
       GPIO_SetBits(GPIOA, (GPIO_Pin_0 | GPIO_Pin_4));

устанавливаем высокое напряжение (3.3В) на пинах 0 и 4

Код: выделить все
       for (i = 0; i < 0x0FFFFF; i++);

задержка

Код: выделить все
       GPIO_ResetBits(GPIOA, (GPIO_Pin_0 | GPIO_Pin_4));

устанавливаем низкое напряжение

и опять задержка

В общем-то ничего сложного, нужно только базовое знание Си и знать где искать требуемую функцию.

Я не буду писать курс по базовому программированию, их в интернете предостаточно и очень хороших, лучше мне не написать. Советую в первую очередь обратить внимание на:
ARM. Учебный курс на easyelectronics.ru,
STM32 - учебный курс от robocraft.ru,
Для начинающих - курс от easystm32.ru,
STM32 с нуля от microtechnics.ru

Я же со следующей статьи думаю сосредоточиться на изучении ChibiOS, хотя и иные предложения и пожелания принимаются. Если что не понятно - пишите!
Я, это, держусь нейтралитета... © м/ф "Фантазеры из деревни Угоры"
Аватар пользователя
Michail
Искра знания
Искра знания
 
Сообщений: 935
Зарегистрирован: 14 сен 2011, 18:45
Откуда: г. Ижевск
Благодарил (а): 187 раз.
Поблагодарили: 63 раз.

Re: Микроконтроллеры для начинающих

Сообщение vadimka » 24 ноя 2014, 18:51

Мне нужна хоть некоторая инфа про 50 пиновые 7 дюймовые РЖБ дисплеи. С китайской таблетки. Их как собак,но Гугель только на продаванов кидает. Но как-то стремно за вещь, которую купил за 5 до кучи отдавать еще 40...
ЗЫ Просьба, перед тем как посылать в Гугель, глянуть самому
Аватар пользователя
vadimka
Scio me nihil scire
Scio me nihil scire
 
Сообщений: 5121
Зарегистрирован: 10 окт 2010, 22:38
Откуда: Чуйская долина -- Норд - Рейн-Вестфалия (Рур гебит) Germany,Wesel
Благодарил (а): 224 раз.
Поблагодарили: 172 раз.

Re: Микроконтроллеры для начинающих

Сообщение George » 10 янв 2015, 08:24

Это так, для разного образия... ::D
Вложения
Povest Ob Odnom Bayte.pdf
(111.07 KIB) Скачиваний: 472
George
Scio me nihil scire
Scio me nihil scire
 
Сообщений: 1721
Зарегистрирован: 16 янв 2013, 17:06
Откуда: Днепр
Благодарил (а): 10 раз.
Поблагодарили: 122 раз.

Re: Микроконтроллеры для начинающих

Сообщение Michail » 23 янв 2015, 15:36

Старенький рассказ уже, да и МК уже не те, все ближе по простоте и функционалу к большим братьям, тем не менее спасибо, перечитал с удовольствием.
Я, это, держусь нейтралитета... © м/ф "Фантазеры из деревни Угоры"
Аватар пользователя
Michail
Искра знания
Искра знания
 
Сообщений: 935
Зарегистрирован: 14 сен 2011, 18:45
Откуда: г. Ижевск
Благодарил (а): 187 раз.
Поблагодарили: 63 раз.

Re: Микроконтроллеры для начинающих

Сообщение Michail » 23 янв 2015, 16:19

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

Итак, что пока в задумках по минимуму (ТЗ):
1. Управление СД лентой по 12 каналам (4хRGB);
2. Цветомузыка. Следовательно должен быть аудио вход, самым логичным просится MiniJack (3,5 мм) как достаточно миниатюрный и наиболее распространенный;
3. Управление с пульта (ну не ногами же переключать режимы);
4. Возможность добавлять/изменять режимы мигания и цветомузыки в процессе эксплуатации доступными средствами.

Айрат, помогай если что забыл или что новое в голову пришло.
Возможные варианты применения которые видятся - собственно цветомузыка/красивая мигалка. Легко добавлением режимов можно реализовать контроль подсветки растений/аквариумов с закатами-рассветами, тучами и лунным светом (может тогда стоит и часы реального времени сразу добавить с батарейкой... :? ). Собственно можно управлять любыми потребителями, будь то подогрев или увлажнитель, главное чтобы они все питались от одного постоянного напряжения (поддержки до 30 Вольт думаю будет достаточно для большинства применений и реализуется несложно).
Я, это, держусь нейтралитета... © м/ф "Фантазеры из деревни Угоры"
Аватар пользователя
Michail
Искра знания
Искра знания
 
Сообщений: 935
Зарегистрирован: 14 сен 2011, 18:45
Откуда: г. Ижевск
Благодарил (а): 187 раз.
Поблагодарили: 63 раз.

Пред.След.

Вернуться в Всякая всячина

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

Зарегистрированные пользователи: Bing [Bot], BVlad, Google [Bot], Gres, Kodmig, mailru, Majestic-12 [Bot], skal, vaccumtube, voxy2, Яндексбот