В предыдущих статьях можно прочитать о том, как с помощью микроконтроллера AVR и языка Bascom подключить к компьютеру через USB много полезных вещей - термометры, лампочки, кнопочки, ЖКИ, реле, RC5 и даже светомузыку. Данный материал помогает сделать ещё один шаг - использовать ШИМ(PWM) для своих нужд.
Для чего можно использовать ШИМ, я надеюсь объяснять не надо. Есть много заумных статей, в которых расписано и как этот ШИМ работает, и что с ним полезного сделать можно. Цель этой заметки - не повторить то, что можно и так найти, а показать возможность реализации встроенного ШИМ с помощью BASCOM с возможностью управления через USB.
В качестве подопытных использовались 2 популярных контроллера семейства AVR - Atmega8 и Atmega48. На первом реализован 3-канальный ШИМ, на втором - 6. Управляющие программы написаны на VBNET(2008 студия). Ничего заумного в них нет - только слайдеры с помощью которых изменяется ШИМ в каждом канале.
Можно поставить RGB диоды и сделать лампу настроения, можно повесить через драйверы кулеры и управлять ими, а можно...
Если найдёте, что с этим можно делать или как скрестить с предыдущими проектами - просьба делиться с другими.
Схемы не привожу преднамеренно, т.к. это не законченная конструкция, а заготовка для других. Пины, к которым подключены данные от USB и выходы PWM, легко находятся в прокомментированном коде для контроллера.
А где бы скачать программку bascom 2.0.4 или 2.0.2 там есть файлик m48pdef.dat, что то мне подсказывает что он именно от этих чипов. не мог бы кто хотябы его выложить и сюда ссылочку кинуть. Я думаю 1.11.9.8 должна будет его понять. и судя по этому http://bascomavr.3bb.ru/viewtopic.php?id=415 он там точно есть. зарание благодарен.
m48pdef.dat Такого файла в версии 2.0.4.0 нет! И в более ранних тоже! Есть m88pdef.dat, не знаю, подойдёт ли он. И ещё, откуда информация о DEVID=1E920a, с какого документа?
Боюсь, что это всё же не из документа, а по анологии с AVRDUDE.conf. На сколько я понимаю это единственная строка отведственная за сигнатуру чипа. с 88р ещё не пробовал. Пользуюсь программатором AVRDUDE USB собраннам на меге8. Так же есть собранный AVR910 USB, на той же меге8. Так вот пока я не поправил эту строку "DEVID" в которой коментарий ; device ID, (и что это может быть как не сигнатура чипа?!) чип вообше никак не определялся
Извеняюсь за ложную информацию. а ШИМ то на самом деле не работает. я на радостях написал что всё хорошо пришёл домой а тут это же устройство просто весит программу на компе и всё тут. так что боюсь исторя на этом не закончилась
Т.Е. Всё устройство целиком работает. Для этого я с провленным файликом библиотеки m48_PA_def.dat сделал HEX файл, а потом залил его в чип с правленным avrdude.conf с помощью avrdude. устройство полноценно заработало, но только с обвязкой на стабилитронах(питание контроллера +5v) на других обвязках устройство не определилось. все 6 коналов ШИМ работа. хорошо программу с ПК слушаються безпракасловно
Спешу срочно сообщить, что когда чип прошиваеться из баскома (мега48па) с подправленным файликом m48_PA_def.dat он шьёт не правельно. с ошибками. просто моргание диодом работало стабильно. а как только я попытался залить свеженаписанную программу бегающей дорожки на порте D ничего не заработало. Прошив этимже HEX файлом при помоши AVRDUDE всё прошло успешно и я получил бегушую дорожку. позже отпешусь по поводу USB девайса
да бог с ним с шимом то пока этим, устройство нет ни на одном компе, при любых известных до этого момента ввода обвязки. и с стабилитронами и с диодами и даже стабилизатор нашёл. ничего! Буквально фокус-покус винимаю этот чип(мега48па) ставлю на мокетке на его место мегу8 в дип корпусе всё отлично! То что шим заработает я не сомниваюсь, что там мудрёного то?! а вот то что эти чипы странные какие то, это да. А я по незнанию купил Ажны 20 шт. чтож теперь к стенке гвоздиком? пробовал на них что нить простенькое типо помегаем деодом, мегает.
1-е т.к. по PDF чипы почти индентичны, значит можно использовать настройки от меги48. BASCOM`е: заходим в католог где лежит программа видем файлик m48def.dat копируем его сдесь же и называем m48_PA_def.dat. Потом открываем наш m48_PA_def.dat с помощью блокнота ищем строку сигнатуры. здесь она будет выглядеть так - DEVID=1E9205 ; device ID и меняем последнию циферку 5 на a, чтобы получилось так - DEVID=1E920a ; device ID. ВНИМАНИЕ! буковка должна быть естественно в Английской раскладке. Следовательно после всех монипуляций получим в BASCOM`е в списке девайсов ещё один m48_PA_def.dat пре выборе которого проблема с прошивкой отпадёт. В AVRDUDE всё мение приятно, т.к. как добавить в список новый девай я так и не нащёл, пришлось просто заменить старый девайс т.е. мегу48 на мегу48ПА. и на всякий случай я держу 2-а файлика с настройками от старой и от новой. Файлик называеться avrdude.conf в нём ишем блок от ATMEGA48 в блоке меняем строку - signature = 0x1e 0x92 0x05; на сроку - signature = 0x1e 0x92 0x0a;. вот в принципе и всё.
Спасибо! А вот про версию я не зря писал,на 1.11.9.8 и 9.9 я компилировал без проблем, затем какие-то причуды в версиях 2.0... , пока Марк не исправил в 2.0.4.0 Почитайте всю ветку http://www.mcselec.com/index2.....hlight=
Тут ещё такой момент - может изменения коснулись не только сигнатуры? Нада ерраты почитать. А ещё, как пример, возьмите и залейте прошивку для формирования Шима без кода ЮСБ, чтобы проверить эту часть отдельно. Меняйте в цикле значения ШИМ и наблюдайте результат
Итак: разбившись головой об стенку, выяснил, где у меня была 1-я засада. Новые чипы ATmega48PA содержат сигнатуру signature = 0x1e 0x92 0x0a; а старые signature = 0x1e 0x92 0x05; так что некоторые программаторы-программы этот чип отказывается видеть. могу поделиться опытом, как это полечить в BASCOM`е и в AVRDUDE. программатор AVR910 c avrProg шьёт их очень криво. прошить после поправки получилось влёт... НО сей девайс так и не заработал. думаю, дело во фьюзах, хотя и не обязательно, выставлял как показано на приведённом рисунке Гр. bascom, за что ему в Очередной раз спасибо.
Я использовал в этой конструкции микросхемы в ДИП корпусах. Всё работало без проблем. К сожалению, проверить в СМД я сейчас не могу. Посмотрите здесь, может что-то прояснится - http://bascomavr.3bb.ru/viewtopic.php?id=413#p4010 Поделитесь опытом, как это полечить в BASCOM`е и в AVRDUDE. Я бы поступил так: Взял за основу программу без реализации ШИМ, запустил девайс, чтобы он определился системой, затем уже разбирался с ШИМом. И ещё вопрос, какой версией Баскома вы компилировали (Это важно!)?
та же история! уже весь лоб об стол разбил. собираю на меге48па СМД на 32 ноги. по ночалу просто писал неизвестное устройство, а после 2-перепрошивки просто молчанка какаято. я уже совсем расстроился. а ни меги8 всё кулл. и стабильно. в чем пречина? Поможите....
Во первых, посмотрите внимательно ещё раз на распиновку. Она отличается от DIP! Во вторых - фьюзы! В третьих, проверяйте монтаж, хорошо промывайте от остатков флюса, контролируйте,запустился ли кварцевый резонатор.