Sigma Lambda Controller

Автор Alexandr S із Дніпра поділився своїм досвідом створення пристрою Sigma Lambda Controller на PSoC. Публікую оригінал його мотиваційної і цікавої історії розробки. Якщо у вас виникнуть запитання, впевнений, Олександр із радістю відповість на них в коментарях.

Решил поделиться впечатлениями, которые остались после реализации одного проекта, в основе которого микроконтроллер PSoC первого поколения CY8C24423A. Для начала расскажу о своем опыте работы с электроникой в общем, опыта ноль. Образование у меня гуманитарное, правда сейчас доучиваюсь и учу язык Си и С++.

Первое знакомство с микроконтроллерами у меня было совершенно случайным, были новогодние праздники и было много выходных, что б не заскучать я приобрел кит часов на старых лампах, там управление было реализовано на AVR. Вот что вышло :

1

2

После удачной сборки, я решил продолжить паять. И очередь подошла к одному интересному девайсу. Я увлекаюсь автомобилями и мне всегда хотелось приобрести широкополосную лямбду, проверять работу двигателя. Вкратце, этот девайс что-то там меряет в выхлопных газах и выдает цифры по которым видно, сгорело все топливо или не всё и сколько кислорода свободного осталось, если осталось. Купить готовый для меня дорого. Начал искать. Много вариантов пересмотрел и остановился вот на этом. Разработал его Алан. Он делает несколько вариантов и продаёт, как конструкторы, нужно самому паять. Но вариант «А» он выложил в свободный доступ, вместе с файлами для изготовления платы и исходным кодом. Оставалось только разобраться во всем и сделать самому. Я повторю, я далек от электроники, но все оказалось не сложно, даже я разобрался, как пользоваться софтом. Работа началась, были изготовлены платки, заказаны детальки, то ещё занятие, часто присылают не то, то в корпусе не том, то ещё что. В общем я не напрягаясь сделал девайс за 4 месяца, большую часть времени потратил на ожидания.

В чем плюс именно в использовании PSoC? В минимуме деталей и произвольном их расположении , плата получилась компактной. Но только хвалить первое поколение я не собираюсь, перейдем к негативу. Думаю одной из причин малой распространённости данного микроконтроллера  есть необходимость иметь программатор. Программатор стоит около 30 долларов плюс доставка. Если вы делаете девайс стоимостью 35 баксов и не знаете нужен ли вам будет программатор после, то у вас не будет желания покупать его. И тут я начал искать альтернативу. Вот такой программатор для LPT порта я спаял и опробовал. Он определил мой микроконтроллер, залил hex файл, проверил контрольную сумму, в общем работоспособный вариант, но без танцев с бубном не обойтись. После прошивки нужно пнуть контроллер им, там предусмотрены для этого кнопки. Так же я не понял, что делать с галочкой защиты, писал без защиты, после записи считывал и не обнаруживал две строчки в хексе. Дома у меня LPT порта нет и приходилось искать по знакомых, это сильно ограничивало меня. Я так и не добился положительного результата от LPT порта, руки опустились. Я разработал целую методику, как прошить контроллер в случае если я доберусь до LPT. Ждал случая. И тут случилось чудо, я в очередной раз полез в поиск и обнаружил, что есть официальное представительство Cypress во Львове и нашел даже живое общение в форуме на тему PSoC. Не долго думая написал о своей проблеме инженеру Василию, он решил мою проблему, как по волшебству, как в сказке. Василий подарил мне программатор MiniProg3. Я прошил и о чудо, работает, но не правильно, это был второй удар. Я начал искать проблему, не отображалось правильно, просто мигал курсор на экране и всё, я быстро написал прогу для вывода тестовых слов на экран, подогнал выводы моего нового проекта к выводам на экран в лямбда контроллере и запустил. Ничего, все также мигал курсор на втором месте в нулевой строчке. Вот так вот и учатся люди создавать новые проекты)))) У PSoCa мало деталек, это упрощает поиск, мне стало понятно, что на экран не идет что-то, прозвонил и нашел обрыв дорожки, на LCD это пин «Е». Переход с одной стороны платы на другую не работал. Припаял перемычку и всё заработало, выдавало мои тестовые строчки. Быстро заливаю прошивочку и радости нет придела, все работает. Вот так вот:

и пара фоточек:

3

4

Немного позже я переписал исходный код и уже с новой прошивкой работает так:

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