на каком выводе mcu будет такой сигнал при его работе
Модуль вычислителя MCU32-1.2
Сначала небольшое лирическое отступление.
Когда-то давным-давно, когда я был еще маленьким и учился в институте, у нас были занятия по вычислительной технике, которые проводились на малой ЭВМ «Наири-2».
Она была сделана в виде огромного стола, на котором была установлена электрическая пишущая машинка Консул-254. Рядом со столом стояла тумба, на которой крепились устройства ввода и вывода на перфоленту.
Быстродействие машины было примерно 2000 операций в секунду.
Память на ферритовых кольцах имела размер 1024 или 2048 слов (сейчас уже не помню точно).
Программирование велось на языке АП (Автоматического программирования).
Данные вводились с помощью оператора “ввести”, формулы записывались в операторе “вычислить”, безусловный переход – команда “идти”.
Программа выполнялась по команде “выполнить”.
Набираешь первые две буквы оператора – и пишущая машинка допечатывает его. Дальше печатаешь переменные, формулы. Когда набивали программу, давали команду “выполнить” – и пишущая машинка, подумав, печатала ответ.
Так я познакомился с тем, что потом стали называть языком программирования BASIC.
Потом были FORTRAN, PL/1, Pascal, программируемый калькулятор Б3-34, разнообразные Ассемблеры, Turbo-Pascal, Visual Basic, C. Но BASIC всегда присутствовал – в ДВК-2, Радио-86РК, Sinclair ZX Spectrum, в IBM PC – в виде GW-BASIC и Quick-BASIC. Как простой и интуитивно понятный язык, доступный для освоения любому человеку без специальной подготовки. Его использование позволяет писать программы на языке, максимально приближенном к естественному человеческому языку.
Но это была лирика. А теперь по делу.
ООО «Фрактал» www.fractal.com.ru/ выпускает большую номенклатуру модулей и узлов для автоматизации систем управления. В их состав входит несколько устройств со встроенным интерпретатором языка BASIC.
В настоящее время доступны16-разрядные вычислители MCU16-3.2 www.fractal.com.ru/index.php?p=device&sp=mcu16-1&ssp=MCU16-3.2 на базе микроконтроллера PIC24FJ64GA004 и 32-разрядные логические контроллеры MCX53-32 www.fractal.com.ru/index.php?p=device&sp=mcx53-32&ssp=MCX53-32.1%20DIN,
контроллеры с модулем индикации MCX53-20 www.fractal.com.ru/index.php?p=device&sp=mcx53-20&ssp=MCX53-20.1 и вычислители MCU32-1.2 и MCU32-1.12 www.fractal.com.ru/index.php?p=device&sp=mcu32-1&ssp=MCU32-1.2
на базе микроконтроллера STM32F103RET6.
Кроме того, как я понимаю, 16-разрядные модули продаются под маркой «Мастер Кит» ВМ9300 www.masterkit.ru/main/set.php?code_id=540212 и ВМ9300L www.masterkit.ru/main/set.php?code_id=559119.
Описания модулей, схемы, чертежи печатных плат и подробное описания языков программирования Fractal-BASIC-PIC и Fractal-BASIC-Cortex с примерами можно прочитать и скачать по проведенным выше ссылкам.
Расскажу о своем впечатлении о модуле вычислителя MCU32-1.2R. который приобрел для экспериментов пару недель назад по цене 1368 рублей. (Кстати, на сайте компании некоторая путаница – по документам и по цене на сайте я приобрел MCU32-1.2, а по схеме на сайте и по описанию – MCU32-1.12. Но это непринципиально — я получил, что хотел.).
Модуль имеет небольшой размер, и может быть установлен в разрабатываемое устройство как мезонинная плата. 
На фотографии слева — MCU32-1.2, в центре — Arduino Nano, справа — аналогичный модуль MCU42-3 на AT89S53 (в настоящее время не выпускается). 

Фото с сайта Fractal — вычислитель со снятым держателем батареи (под ним — контроллер)
Вычислитель может взаимодействовать с другими устройствами как непосредственно, через выводы STM32 (всего на разъемы выведено 24 линии ввода-вывода), так и при помощи интерфейсов SPI, I2C, MicroLan (1-Wire). Есть интерфейс RS485 с поддержкой Modbus. Вычислитель подключается к персональному компьютеру по USB для программирования, отладки или обмена данными. При этом он определяется как виртуальный COM порт, с которым может работать любая терминальная программа, например, HyperTerminal. Никаких промежуточных программ – компиляторов, преобразователей кодов, отладчиков для этого не требуется.
Аналоговый ввод возможен по 16 линиям ввода-вывода. Для аналогового вывода используются два 12-разрядных DAC. Формирование сигнала ШИМ не поддерживается – при необходимости его можно попробовать запрограммировать самостоятельно или использовать дополнительные интерфейсные модули.
Из аппаратных ресурсов доступны одно внешнее прерывание, три таймера для подсчета импульсов и работы с энкодерами, таймер для отсчета временных интервалов с точностью 1 мс и часы реального времени с резервной литиевой батареей.
Так же вычислитель позволяет осуществлять вывод информации на символьные (HD44780) и графические (PCF8531) ЖКИ. Их подключение максимально простое – используются любые шесть выводов для символьных и шина I2C – для графических.
Работа со всеми интерфейсами и большинством аппаратных ресурсов микроконтроллера, таких как вывод информации на ЖКИ, часы реального времени, таймеры, ЦАП, АЦП и прочие, поддерживается операторами и функциями языка Fractal-BASIC-Cortex.
Я не буду целиком пересказывать описания вычислителя и языка, а расскажу о своих впечатлениях.
1. Проверка вывода информации на символьный ЖКИ WH0802-YGK-CT.
ЖКИ был подключен к 6 линиям модуля вычислителя и выведена надпись «HELLO WORLD» — по слову в строке.
10 LCD(100)=0AFH, 0ADH, 0AEH, 0B5H, 0B4H, 0B3H
20 CSR=0: PRINT#16, “ HELLO “: CSR=40: PRINT#16, “ WORLD “
В строке 10 указывается список подключенных выводов и производится инициализация контроллера, в строке 20 – собственно вывод текста (CSR – позиция, PRINT#16 – печать на ЖКИ).
Фотографий не делал, но поверьте на слово – надпись появилась.
Тут же обнаружилось неудобство – больше нет никаких команд управления отображением информации. Например, нет возможности очистить экран. Пришлось, выводить пробелы. Вполне возможно, что команды и есть, но они нигде не описаны.
И проблема — мне не удалось увидеть на ЖКИ русских букв.
10 FOR I=0 to 255
20 CSR=0: PRINT#16,I
30 CSR=40: PRINT#16,CHR(I)
40 DELAY 0.5
50 NEXT I
Программа выводит на ЖКИ номера символов и сами символы. Честно смотрел 2,5 минуты. Несколько раз. С первой половиной кодовой таблицы было все нормально, а вторая выводилась абсолютно не в соответствии с описанием на ЖКИ. Может быть, ошибка в операторе PRINT#16? Буду разбираться.
2. Оценка скорости выполнения программы.
Оценка была проведена путем вывода на контакт B0 микроконтроллера последовательно 0 и 1 и измерения длительности получившегося импульса. 
Программа, в которой импульсы выдаются до момента нажатия любой клавиши на компьютере:
10 DO: PIN(0B0H)=0: PIN(0B0H)=1:WHILE KEY=0
Или, что то же самое:
10 DO
20 PIN(0B0H)=0
30 PIN(0B0H)=1
40 WHILE KEY=0
Длительность импульсов оказалась равной 280 мкс — раз в 40 медленнее, чем Arduino и раз в 200 медленнее, чем Maple we.easyelectronics.ru/Arduino/olimexino-stm32—i-maple.html
Для сравнения решил проверить длительность формируемого импульса у аналогичного по функциям старого модуля MCU42-3 на контроллере AT89S53. У старого вычислителя длительность импульса составила 1300 мкс – всего в 4,5 раза больше, чем у нового на STM32.- и это при огромной разнице в быстродействии контроллеров.
3. Я бы объяснил несуразно малую разницу в быстродействии вычислителей тем, что интерпретатор для AT89S53 (8051) был написан на ассемблере на основе какого-нибудь Tiny-Basic, вылизанного за десятилетия использования, а интерпретатор для STM32 – еще «сырой», написан на С (в описании есть ссылка, что для математики использовались стандартные библиотеки ST Microelectronics), а что туда напихал компилятор – одному богу известно.
«Сырость» интерпретатора подтверждается тем, что вычислитель при работе с терминалом периодически по непонятным причинам перестает выполнять некоторые консольные команды. Например, вдруг ни с того ни с сего, перестает работать команда очистки памяти программ NEW. Просмотреть текст программы по команде LIST можно, а очистить память программ командой NEW не получается – программа остается в памяти. И приходится отключать модуль, запускать его BOOT-Loader и специальной командой «K» очищать память.
Так же в терминальном режиме, при работе через Hyper Terminal, при неправильном написании операторов (исправить ошибку в Hyper Terminal невозможно – вычислитель не поддерживает BackSpace) нередко, вместо информации об ошибке, интерпретатор вступает в ступор и вывести его из этого режима можно тоже только через BOOT-Loader.
(Кстати, со старым вычислителем на AT89S53 таких проблем не было). Поэтому настоятельно советую использовать для программирования терминальную программу, поддерживающую редактирование, например, Basic-Terminal, которую можно скачать с сайта Fractal. 
Хочу подвести предварительные итоги.
Вычислитель MCU32-1.2 мне понравился. Большое количество интерфейсов, мощная система команд простейшего языка программирования. Включил – сразу вспомнил молодость. И получил огромное удовольствие.
Это очень интересное изделие, которое можно посоветовать, в первую очередь, двум категориям пользователей:
— в качестве игрушки — любителям что-нибудь сделать своими руками, и при этом еще немного попрограммировать, не вникая в тонкости процесса – может получиться неплохое устройство. В частности — всем бывшим любителям Синклеров и программируемых калькуляторов.
— разработчикам разнообразных систем управления, желающим получить простое и мощное управляющее устройство, и при этом тоже не желающим вникать в тонкости программирования (боюсь, что это та же самая категория пользователей, только уже не дома, а на работе. Много ли таких осталось?). Правда, хотелось бы, чтобы разработчики довести интерпретатор до ума. Чтобы им было еще удобнее пользоваться и не было мешающих работе мелочей.
Кстати, я купил еще вычислитель MSX53-20.1 – тоже с интерпретатором BASIC и с графическим индикатором 128 х 32 точки TIC-32. Доберусь до него – напишу.
Русские Блоги
Режим вывода универсального входного порта (GPIO) MCU
Для обычных микроконтроллеров универсальный ввод и вывод (GPIO) является его самой основной и широко используемой функцией, используемой для достижения самого основного цифрового ввода и вывода.
В общем, GPIO может реализовывать два режима вывода:
Чаще всего используется двухтактный режим вывода.
Принципиальная схема выглядит следующим образом:
Разница между выходом с открытым стоком и двухтактным выходом на внешних каналах
Для выхода с открытым стоком требуется внешний подтягивающий резистор для получения выходного напряжения, иначе выходного напряжения не будет, а двухтактный выход может напрямую получать выходной сигнал.
Вот несколько примеров ситуаций, когда требуется выход с открытым стоком:
Двухтактная выходная цепь
Давайте посмотрим на типичную двухтактную выходную цепь:
Когда напряжение Vin равно V +, верхняя клемма управления транзистора N-типа имеет токовый вход, Q3 включается, поэтому ток проходит сверху вниз, обеспечивая ток для нагрузки.
Ток подается на нагрузку (Rload) через вышеуказанный транзистор N-типа, который называется «толчок».
Когда напряжение Vin равно V-, ток вытекает из нижнего транзистора, включается Q4 и ток течет сверху вниз.
Следующий транзистор P-типа подает ток на нагрузку (Rload), который называется «тяговым».
Выше приведена двухтактная схема.
Некоторое резюме
1) Двухтактный выход может выводить высокий или низкий выход, а выход с открытым стоком может выводить только низкий уровень или закрывать выход, поэтому выход с открытым стоком всегда должен использоваться с нагрузочным резистором.
2) Сопротивление подтягиванию выхода с открытым стоком не может быть слишком маленьким. Если оно слишком мало, при включении токоотвода выхода с открытым стоком напряжение от источника питания к земле вызовет большой расход энергии на сопротивлении, поэтому это сопротивление обычно Выше 10k скорость выхода с открытым стоком очень медленная при переключении с низкого уровня на выходе на высокий уровень.
3) Выход двухтактного выхода является высоким или низким в любое время, поэтому несколько выходов не могут быть замкнуты накоротко, а выход с открытым стоком может закорачивать несколько выходов и совместно использовать нагрузку. В это время выход этих выходов с открытым стоком Диск на самом деле НОР отношения.
4) Когда двухтактный выход высокий, напряжение равно мощности двухтактной цепи, которая обычно является фиксированным значением, а выход с высоким открытым стоком зависит от напряжения, подключенного к подтягивающему резистору, а не от напряжения предыдущей ступени, поэтому его часто используют Сдвиг уровня и управление логикой высокого напряжения с логикой низкого напряжения.
Интеллектуальная рекомендация
Резюме распределенных блокировок
На основе базы данных: На основе кеша: На основе Zookeeper: Реализуйте распределенную блокировку на основе базы данных Создавайте уникальные ограничения на основе записей данных таблицы базы данных (и.
Сценарий мониторинга Python3
На выходных я провел 3 ночи более 3 ночей, чтобы переписать предыдущие 4 сценарии монитора, записанные Это также база данных MySQL по-прежнему расширена. Эффект мониторинга WECHAT Enterprise: Эффект м.
На каком выводе mcu будет такой сигнал при его работе
(проект о формированию VGA сигнала при помощи 8-ми битных MCU фирмы AVR)
Эта статья была опубликована в Atmel Application Journal #6 Winter 2006
(Что, в свое время дало мне «хорошего пинка» в деле мотивации
совершенствования моих познаний в области микроконтроллеров).
Хотелось что-то гораздо более “дешевое и сердитое”. Предварительные прикидки показывали, что из наиболее распространенных и достаточно быстродействующих микроконтроллеров подходит продукция фирмы ATMEL.
Результат своей работы я представляю на ВАШ суд.
Поставленная техническая задача:
Цель которую я поставил для себя, достаточно проста на первый взгляд:
Ограничившись одним корпусом распространенного MCU типа Mega8,16,8535
Фотографии и схемы проекта:
Ниже приводится принципиальная схема простого VGA/ Video адаптера (откорректировано 28.06.2011) :
Так все это выглядит в железе, собранном на “коленке” за один час:
А вот что мы получаем на экране монитора:
Технические характеристики VGA-адаптера:
Частота кадровой синхронизации: 60Hz
Скорость обмена UART 19200 bps
Количество символов: 20 строк по 38 символов
Разрешение матрицы знакогенератора: 8×12 точек
Кодовая таблица знакогенератора: WIN 1251
Формируемый сигнал. Composite Video(PAL/SECAM)
Разрешение: 625 строк (чересстрочная)
Частота кадровой синхронизации: 50Hz
Скорость обмена UART 19200 bps
Тип используемого микроконтроллера: Mega 8, Mega16. Mega32, Mega8535 и т.д.
- Для того чтобы избежать искажения изображения при приеме данных через UART, для VGA рекомендуется производить обмен данными с адаптером в течении приблизительно 300-600 мкс после сигнала вертикальной синхронизации VSYNC (во время обратного хода луча по кадру). Объема RAM памяти Mega 8535 (512 байт) не достаточно для формирования Видео сигнала с разрешением 38 x 20 символов.
Алгоритм работы программы:
Пояснения по работе программы:
Алгоритм рендеринга изображения достаточно традиционен, главное ноу-хау проекта в использовании для побитного вывода изображения – сдвигового регистра SPI SPDR через бит MOSI. При этом образуется двухступенчатый конвейер рендеринга:
В то время, как последующий байт для рендеринга выбирается из памяти,
предыдущий байт выводится через сдвиговый регистр SPI SPDR MOSI.
Исходники подкорректированы под WinAVR-20090313 portable ( «пофиксена» специфика команд: cbi, sbi, PRG_RDB etc.),
не устранены некоторые warnings, думаю они не критичны.
Магнитола. Прошивка. CAN BUS. MCU. Часть 3
После установки магнитолы, а точнее ее подключению, начал поиски как же заставить работать все кнопки, получать температуру потому что сразу ее не показывало, ну и включение БК (который у меня находиться не между спидометром и тахометром, а в штатной магнитоле). Догадывался что изначально что то не так в CAN BUS, что он или MCU настроен на другую машину.
Первым делом начал искать хоть какое то инфо по магнитоле, как оказалось на 4pda совсем не та версия Allwiner T3-T8. Начал гуглить по модели, и попал на блог (cobaltr4.ru/).
Вычитал как зайти в сервис, для этого нужно на рабочем столе зайти в «Настройки«, далее нажать «Об Устройстве«
Появилось секретное меню или по другому инженерное.
В разделе Other я нашел настройку CAN BUS и настойку MCU под марку авто.
В комплекте китаец прислал CAN BUS фирмы Raise, тут было все верно, в разделе CAN Type стоял я так понимаю концерн PSA, но это не давало никакого эффекта.
Не долго думая решил прошить магнитолу, на том же блоге (cobaltr4.ru/) человек слил со своей магнитолы прошивку, так как модели идентичны по железу решил рискнуть.
Моя версия ОС — XWQC01D1-O55-1.0.4.3.1 — 20190603
Версия с сайта — XWQC01D1-O55-1.0.4.3.1_20190715
По последним цифрам понял что моя родная на месяц старее.
Моя версия MCU — STM32-20190514-11-KC1-24
Версия MCU с сайта — STM32-201907121001KC1-1022
Тут дела обстояли хуже моя версия была на два месяца старее. А MCU это как раз та плата которая понимает авто.
!ПЕРЕД ПРОШИВКОЙ ПРОЧИТАЙТЕ ДО КОНЦА! (есть шанс что собьются настройки инженерного меню, поэтому предварительно советую по заходить во все вкладки и переписать параметры, хотя у меня все сохранилось)
Скачав прошивку и распаковав ее на выходе получил два файла mcu-201907121001KC1-1022.upd и os_update_XWQC01D1-O55-1.0.4.3.1_20190715_204335_b1.zip закинул на флешку (флешка в файловой системе FAT32). Вставляем в любой USB порт магнитолы флешку и система автоматически распознает файлы обновления.
Появиться меню прошивальщика.
Прошиваем с начало MCU для этого в верхнем меню выбираем MCU и жмем стрелку. После этого появиться шкала процесса обновления, по ее окончанию магнитола перезапуститься.
После перезапуска, еще раз вставляешь флешку и в этот раз в верхнем меню выбирает ОТА и жмем стрелку на этом этапе пойдет прошивка уже самой платы андроид. После прошивки еще раз перезагрузка, вытаскиваем флешку и проверяем.
Сразу после прошивки я полез в сервисное меню посмотреть что поменялось в MCU и когда я зашел в CAN Type был приятно удивлен, появилось в выборе авто Peugeot 307 408 3008
После выбора MCU плата начала прошиваться под авто, и магнитола ушла в перезагрузку.
При включении обнаружил маленькую победу, кнопки заработали (хоть кнопки следующий трек и предыдущий работали наоборот) Появилась в статус баре температура (как в штатной магнитоле), и заработало приложение БК с расходои топлива и остатком пробега.
В этой части думал объединить прошивку в настройками, но решил разделить, да бы не было сильно много в одной части. В следующей части будет логотип, включение/выключение камеры на задний ход, реверс кнопок, пауза на выключение, цвет кнопок, тонкая настройка подсветки.
Peugeot 301 2013, двигатель дизельный 1.6 л., 92 л. с., передний привод, механическая коробка передач — автозвук
Машины в продаже
Peugeot 301, 2013
Peugeot 308, 2014
Peugeot 206, 2001
Peugeot 2008, 2020
Комментарии 25
Скиньте пожалуйста приложение для Canbus на андроид. На моей корявое установлено
С проводами ничего не напутано? Правильно выбрано в магнитоле в разделе can bus авто?
Привет, что у тебя пишет, там где can версия? На скрине не влезло. Это там где версия ос и т.п
К сожалению уже не подскажу, допаялся)) выкинул магнитолу)))
Опечатка наверное, не понял о чем Вы
Я нашел магнитолу раза в 2 дешевле, по характеристикам все тоже самое вроде как. Ну это ладно. Прошло 3 месяца или больше, как себя ведет магнитола? Стоит брать? Глючит?
У вас тоже без зажигания не включалась магнитола? Как же это раздражает, хочется кнопку вывести отдельную на запитку красного провода
Где то читал там можно сделать поменяв провода
Ребят. у меня киа просид JD 2013г.в. автомат. Голова такая же. Покупал не я, досталась от прежнего владельца. В комплекте шла без кан-баса. При обращении к китайцу-продавану — он морозится и не говорит ничего толкового.
Версия ОС у меня такая же как у товарища с кобальта
XWQC01D1-O55-1.0.4.3.1_20190715
версия MCU — STM32-20190712-11-KC1-28
В CAN-версии- прочерки.
У меня работает прием звонков и отклонения с рулевых кнопок. Реагирует подстветка меню в зависимости от режима освещения фар, но полностью отсутствует меню как у товарища с кобальт.ру, по совету автора заходил в инженерные настройки, там мой авто КИА СИД отсутствует. пытался выставить хендай-киа — магнитола перегрузилась но никаких изменений не произошло. Делаю вывод что моя голова работает в урезанных общих настройках и параметры машины как в приложенном фото не видит. Вопрос: сталвивался кто-либо из сидоводов с такой же проблемой и если да — то как ее решал? поможет ли покупка канбаса Райз и установка в голову для того, чтобы работало как у вас, и в графе Can Type появилась моя машина Киа Сид? и появились ниже указанные настройки? кто что посоветует други?
Может быть поможет другая прошивка? В том числе и решить проблему с режимом сна? При включении голова уходит в длинный перезагруз. При этом в настройках можно выставить чтобы после выключения играла 2.10 мин. или пол часа. Но при включении зажигания уходит в длинный перезагруз.
Обновить прошивку, только точно убедиться что она подходит!
При выборе другой машины, приложение под машину тоже меняется, поэтому так выглядит оно не будет. У меня оно вообще не работает.
Если кнопки работают, то или они подключены на прямую, или скорее всего уже есть Cab Bus адаптер.
У меня тоже уходит в перезгруз, хотя длинным я бы его не назвал, так секунд 20-30.
Не смотря что у меня машина Peugeot приложение у меня тоже не работает.
Кан-адаптера как я уже говорил нет. И не было его и в комплекте поставки. 20-30 секунд это и есть полная загрузка. Люди тут читаю. за счет замены прошивки получают режим сна. Т.е. при включении зажигания у тебя мага активируется секунд за 5.
У меня режим сна есть. Только она после него у меня пару раз зависла и я его выключил.
От подключения CanBus машина в списке не появиться, только если обновлением.
Приложение если и будет работать, то может выглядит по другому. Например тут у человека оно выглядит по другому и функционала почти нет.
Вот тут уже интересно. Т.к машину у меня 3008 и стоит в mcu 3008 а программа CarInfo не отрывается, она сразу закрывается. Что-то китайцы намудрили в моей магнитоле. MCU у меня стояла новее изначально, потом обновлял и всё равно не помогло.
Ещё интересный факт что в App Info у меня весь софт версии 1.0 а у Cobalt4 там разные версии.
У вас после обновления до mcu-201908281001KC1-0933.upd осталось всё работать?
Жду следующею запись. Задний ход интересен и цвет кнопок.
Carinfo до сих пор нет возможности проверить.
Последнюю версию ещё не ставил, восстанавливают магнитолу))
Ааа ну хорошо. Вы не в курсе понижать прошивку можно? Я бы тогда 07 поставил бы. А вдруг.
































