воскресенье, 24 ноября 2013 г.

Queen в электронном исполнении



Сами понимаете, нужно гораздо детальней знать чего Вы хотите.
А Вам, чтобы знать чего Вы хотите — нужно знать что, вообще, можно хотеть...

суббота, 10 августа 2013 г.

Dave's theme

Все смотрим креативного товарища из Австралии - Дейва Джонса. Кто прошарил в английском, и понимает ужасный австралийский акцент, очень интересно посмотреть и послушать - http://eevblog.com

пятница, 21 сентября 2012 г.

I like Atmel much

Прочитав тут давеча как народ заказывает JTAG ICE3, решил и я себе поиметь такой же мощный фирменный инструмент, но как всегда опоздал, в списке семплов на atmel.com такового не оказалось. Не судьба. "С горя" решил заказать некоторое количество МК на перспективу. Не могу сказать, что я такой уже любитель халявы, но занимаясь своим хобби уже n-тый год и платя из своего кармана за то, что вобщем-то не приноит дохода, позволил заплатить за них добрым и, наверное, немного наивным американским братьям. Ну что ж, они тоже имеют с этого - отличную рекламу.
Заказывать было немного стремно, т.к. нашим российским собратьям это влетает в копеечку, т.е. с них требуют за доставку около 180 баксов, и, естественно, ценность заказа семплов нивелируется. С Украиной, по результатам изучения форумов, дело обстояло получше, т.е. отправитель полностью оплачивал доставку. То-есть был вариант, что после прибытия посылки вам могли выставить приличный счет, пришлось бы писать отказ.

Не мудрствуя лукаво, для заказа зарегинил почту eastlogic@yandex.ru, написал внятную легенду на англицком зачем мне нужны микросхемы и указал объем заказов микросхем в будущем 3500 шт.

Э-э-х была не была - заказал на фарт, особо не наглея, указав название несуществующей фирмы, свое имя и домашний адрес. Заказ такой:

Part Number     Description     Customer Ref         Quantity
ATMEGA1280-16AU     IC MCU AVR 128K FLASH 100-TQFP         4         
ATMEGA2560-16AU     IC AVR MCU 256K 16MHZ 100TQFP          3         
ATMEGA328P-PU         MCU AVR 32K FLASH 28-PDIP                3        
ATMEGA48A-PU         IC MCU AVR 4K FLASH 28PDIP                 2         
ATMEGA8535-16PU     IC AVR MCU 8K 16MHZ 5V 40DIP             2         

Итого, примерно на 980грн. рыночной стоимости, если бы я покупал, скажем, на КОСМОДРОМЕ. Не говоря о том, что "монстры" типа AtMega328 не так уж просто достать)))

Служба DHL, коей осуществляется доставка, сработала оперативно, пакет прибыл в считаные дни. По прибытию в Харьков, мне позвонили, и предложили забрать в офисе DHL. Попросил переслать Укрпочтой или Новой Почтой в Волчанск, мне отказали. Пообщался с одним из работников DHL, который на выходных собирался в Волчанск, предложил привезти посылку, за что ему большое спасибо)))
На вопрос, оплачена ли посылка полностью отправителем, и получив утвердительный ответ, расписался в ведомости и получил заветный пакет.

Снаружи



Все заботливо упаковано америкосами

Mega2560-я и 1280-я - для серъезных проектов,


Mega328 и 48 в DIP-е для экспериментов, и не только. Нравяться мне больше 8-ки в плане периферии и позволяют работать "на пределе".

Mega8535 в DIP-е - взял в основном для отладки, т.к. есть под них плата, и в плане переносимости на 16-ю и 32-ю, че ж большие камни зря тереть по многу.


С моими темпами разработок, я обеспечен на несколько лет. Так что, дерзайте. И Вам улыбнётся фарт)))

пятница, 17 февраля 2012 г.

Драйвер ШД

     Месяц спустя... Тему по шаговому приводу считаю закрытой, в связи с отсутствием интереса, финансирования и свободного времени. 
     Было начал переписывать на свой лад алгоритм линейного разгона ШД в соответствии с AVR446, но ...

     Было изготовлено два варианта печатной платы драйвера, но 2-й вариант показал свою несостоятельность, то-ли из-за некачественных компонентов, то-ли накопилась критическая масса емкостей и индуктивностей монтажа. Первый вариант же,  с транзисторами IRFZ44N,  ОУ  LM358, LM 393, напротив, был испытан с биполярным ШД  - 2ДШР116 с амплитудным значением тока в 5А на фазу, и отработал таки неплохо.
      За сим, выкладываю схему драйвера (перемычек MOD0, MOD1 на плате нет),  1-й вариант печатной платы и прошивку:

вторник, 17 января 2012 г.

Драйвер ШД

Вова, нужна помощь с твоим осциллографом. Симптомы все те же. Кинь свой номер телефона на почту.

воскресенье, 18 декабря 2011 г.

Настройка Keil+STM32F10x

     Поскольку в ходе экспериментов было получено, что IAR ARM v.6.10 выдает очень много отладочной информации в конечном файле прошивки и он раздувается до непристойных размеров, особенно при подключении CMSIS и библиотек стандартной периферии STD_PERIPH_LIB, то было решено спользовать среду Keil. Результат меня удовлетворил, размер целевого файла прошивки значительно уменьшился))). Пару раз отваливался ST-LINK, но вопрос удалось решить.
    Итак, настало время немного написать о настройке Keil для "старта" и подключении всяческих библиотек. Хочу заметить, что процесс настройки незначительно отличается от такового в среде IAR ARM, где тоже может быть использован.
   Начинаем с установки -  я использовал версию Keil v.4.21, чего и Вам советую. Можно использовать бесплатную версию с ограничением кода, если религия не позволяет.
     Я, обычно, создаю папку для проектов типа C:\Keil\ARM\My_projects, дальше уже каждый проект в свой каталог.
1. Запускаем Keil, тыкаем "Project->New uVision Project", выбираем путь, забиваем имя проекта, далее предлагается выбрать что-нибудь из имеющейся номенклатуры МК. Поськольку имеем плату Discovery Value Line с установленным STM32F100RB, то его и выбираем (ну или другой, необходимый вариант):
     Далее, спрашивается, создать ли стартапный код и добавить ли его в проект, жмем "Да":
2. Далее, нужно посоздавать группы в дереве проекта. Корень дерева "Target 1" и группу со стартовым кодом "Source Group 1" переименовываем в что-то более осмысленное - в моем случае "UART" и "Startup" соответственно. Добавляем также группы "Main" и "CMSIS".
Создаем в каталоге с проектом каталог "Main" с пустым файлом Main.c внутри. Также копируем в
каталог с проектом каталог "CMSIS".
3. Подвязываем наши файлы в проект, для чего дважды щелкаем на группе "Main" и добавляем пока свой единственный исходник - файл Main.c. В группу "CMSIS" добавляем файлы core_cm3.c, system_stm32f10x.c из каталога "CMSIS". Должно получиться как на картинке:


4. После этого переходим к настройке свойств проекта. Для этого выбираем пункт из контекстного меню "Options for Target ...". Первым делом идем на вкладку "Output" и ставим галочку напротив пункта "Create HEX file" - создавать файл прошивки, остальное не трогаем, должно получиться как на картинке:
Переходим к вкладке "C/C++". В строке "Preprocessor Symbols -> Define" дописываем следующую информацию:


STM32F10X_MD_VL - означает то, что используем МК MD_VL - medium density value line device.
USE_STDPERIPH_DRIVER - на данном этапе это определение пока не особо нужно, если не планируем подключать библиотеку стандартной периферии. Но, оно особо и не мешает, тем более, что дальше будет рассказано о поключении библиотеки стандартной периферии.
В строку "Include paths" прописываем все пути к каталогам проекта:
 










Теперь, заодно заходим во вкладку "Debug" и настраиваем отладчик ST-LINK, коли таковой имеется на плате Discovery VL ;). Собственно, выбираем ST-LINK, ставим галочки - "Run to main" - стартовать с ф-ции Main при отладке, а не со стартапного кода, "SWD" - Single Wire Debug.

 Собственно, на этом можно и ограничиться, дописав в пока еще пустой файл Main.c следующие строки:

#include "stm32f10x.h"

int main(void)
{
}

Теперь можно откомпилить это все дело с помощью F7, убедившись, что все файлы подключены и всё настроено правильно.
Т.е. получили заготовку с подключенной CMSIS в сыром виде. Но дело в том, что в стартапном коде присутствует вызов ф-ции SystemInit(), которая вобщем-то делает немного полезного - инициализирует модуль тактовых генераторов RCC. Ничего криминального в этом нет, ею, наверное, можно пользоваться, но я предпочитаю "выпилить напильником" вызов сей ф-ции из стартапа напрочь и запускать собственные маленькие ф-ции для настройки модуля RCC, частоты шины AHB, вывод импульсов "наружу" через вывод MCO и тому подобные вещи.

Выпиливается очень просто, лезем в файл startup_stm32f10x_md_vl.s, находим строки:

; Reset handler
Reset_Handler    PROC
                 EXPORT  Reset_Handler             [WEAK]
     IMPORT  __main
     IMPORT  SystemInit
                 LDR     R0, =SystemInit
                 BLX     R0
                 LDR     R0, =__main
                 BX      R0
                 ENDP


Заккоментируем вызов SystemInit, т.е. приводим к следующему виду:
; Reset handler
Reset_Handler    PROC
                 EXPORT  Reset_Handler             [WEAK]
     IMPORT  __main
     ;IMPORT  SystemInit
                 ;LDR     R0, =SystemInit
                 ;BLX     R0
                 LDR     R0, =__main
                 BX      R0
                 ENDP

Собственно, всё! Ф-ция при старте не вызывается и можно вручную настраивать RCC, порты, периферию и все прочее.
Пока все, позже расскажу как подключается библиотека для работы со стандартной периферией.