Несколько месяцев назад STMicroelectronics бесплатно раздавали отладочную плату STM32F4 Discovery. Я стал одним из тех, кому повезло получить ее бесплатно. Последний семестр я использовал плату для моего проекта (realtime и embedded OS) с применением Keil. У меня так-же есть отладочная плата Netduino, которая является моим фаворитом среди моих отладочных плат потому что я могу использовать Visual Studio и C#. Я знаю об ограничениях управляемого кода, связанных с расходами ресурсов на CLR, но моя программа не является программой реального времени. В последнюю неделю я случайно наткнулся на сайт netmf4stm32.codeplex.com/ и был приятно удивлен тем, что .NET MicroFramework был портирован на отладочные платы STM32F4. Так почему-бы не попробовать? Одновременно я описывал весь процесс, разбавляя текст скриншотами. Источником этой работы стал пост netmf4stm32.codeplex.com/discussions/400293. Благодарю LouisCPro и членов netmf4stm32.codeplex.com/team/view. Все это отняло у меня не более 2 часов (включая установку Visual C# Express 2010). Начнем…
Нам понадобится следующее
- Отладочная плату STM32F4 Discovery
- Micro USB и Mini USB кабели (нужны оба)
- STM32 ST-LINK Utility (что-бы залить бутлоадер на отладочную плату, это необходимо для драйвера) www.st.com/internet/com/SOFTWARE_RESOURCES/TOOL/DEVICE_PROGRAMMER/stm32_st-link_utility.zip
- Скачайте stm32f4discovery.zip и STM32_WinUSB_drivers_(for_evaluation_purposes_only).zip по этой ссылке netmf4stm32.codeplex.com/
- Visual C# Express или Visual Studio 2010 (версия 2012 пока не поддерживается) www.microsoft.com/visualstudio/eng/downloads#d-2010-express
- .NET MicroFramework SDK (в нашем случае версии 4.2) netmf.codeplex.com/releases/view/91594
- Один LED (будем моргать светодиодами)
После того, как Вы все установили (пожалуйста, установите все), подсоедините кабель MicroUSB.
Подключение кабеля MicroUSB к STM32F4
(У меня была установлена другая прошивка, поэтому все легко запустилось)
Как только вы подключите карту, начнется поиск драйверов. Если вы уже установили утилиту STLink, драйвера будут установлены автоматически. Если-же вы пропустили это, пожалуйста установите ее. Запустите STLink (по умолчанию STM32 ST-LINK Utility.exe расположена в папке C:Program Files (x86)STMicroelectronicsSTM32 ST-LINK UtilityST-LINK Utility)
STLink подключена к плате
После подключения к утилите очистите STM32F4 (не пугайтесь, вы не получите кирпич) следуя скриншотам ниже (по очереди запустите Erase Chip и Erase Sectors...)
Меню очистки
Очищение секторов
Сейчас чип очищен. Помните пункт 4 вначале, где указаны ссылки на два архива zip? Распакуйте их в удобное место (мы будем использовать их). В stm32f4discovery.zip вы увидите 3 файла: Tinybooter.hex, ER_Flash.hex and ER_Config.hex. Используя утилиту ST Link загрузите Tinybooter.hex в чип (следуйте указаниям на скриншоте ниже)
Раздел Program
Tinibooter.hex
Затем нажмите кнопку Reset на плате (или вытащите и вставьте кабель usb). После того, как вы загрузили Tinibooter.hex, кабель MiniUSB будет действовать только в качестве источника питания для нашего проекта. После перезагрузки вашей платы подключите кабель Micro USB (другой кабель). Я использовал кабель для зарядки своего смартфона.
Micro и Mini USB кабели подключены
Как только вы подключите кабель Micro USB, система запустит поиск драйверов и не найдет их. Установите драйвер, который находится в другом файле с именем «STM32_WinUSB_drivers_(for evaluation purposes only).zip». Руководствуйтесь скриншотами ниже, если вы не знаете как это сделать.
Перейдите в Devices and Printers (Устройства и принтеры) из меню Пуск, а затем
Нажмите правой кнопкой мыши на ярлык STM32.Net Test
Свойства -> Изменить настройки
Поиск нового драйвера
Игнорируйте предупреждение (как обычно )))
Сейчас ошибок нет!
Теперь MFDeploy должна быть в состоянии обнаружить плату. MFDeploy это MicroFramework Deployer. С помощью этой программы мы установим CLR, на котором будет работать наш .net код. Отлично, запустите MFDeploy.exe (вы найдете его в папке C:Program Files (x86)Microsoft .NET Micro Frameworkv4.2Tools), который у вас должен появится после установки SDK. Что-бы убедиться, что MFDeploy видит плату, сделайте как показано ниже.
MFDeploy ping
Если вы видите ответ, значит все сделано правильно. Загрузите 2 других .hex файла (ER_Config.hex and ER_Flash.hex), распакованных из stm32f4discovery.zip в плату иcпользуя MFDeploy как показано далее
Нажмите Browse для загрузки hex файлов
Установите их в любой последовательности
Перезагрузите плату.
Поздравляю! У вас теперь есть плата с .NET Microframework!
Сейчас необходимо протестировать нашу плату. Откройте Visual C# Express/Visual Studio. Я уверен, что вы уже установили Microframework SDK. Выберите тип проекта
Проект MicroFramework
Теперь нам нужно изменить свойства так, что-бы Visual Express/Studio загружал проект в нашу плату. Настройте так, как показано ниже
Настройки
С помощью USB
Теперь нам нужно добавить класс что-бы мы смогли поморгать светодиодами.
Добавляем класс
Microsoft.SPOT.Hardware
Мой тестовый код
using System;
using System.Threading;
using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;
namespace STM32F_Test
{
public class Program
{
public static void Main()
{
OutputPort led = new OutputPort(Cpu.Pin.GPIO_Pin1, false); //PA1 on discovery board
while (true)
{
led.Write(true);
Thread.Sleep(500);
led.Write(false);
Thread.Sleep(500);
}
}
}
}
Узнать карту пинов платы можно в этом файле “C:MicroFrameworkPK_v4_2DeviceCodeTargetsNativeSTM32ManagedCodeHardwareCPU.cs” который вы найдете, если установили комплект портирования (не включены в список свыше).
Оригинал статьи: singularengineer.wordpress.com/category/electronics/
Автор: vrafael