Как стать автором
Обновить

Комментарии 65

Интересная статейка, но я как начинающий по ней такое же не собиру. Добавили бы схему, как эти конденсаторы и кварц подключать, какого они должны быть номинала. И usb программатор, стоит не малых денег. Нельзя эти контроллеры прошивать проводками через lpt?
начинающему и дешевле, и быстрее взять AVR с внутренним генератором (т.е. любую тиньку или мегу, например atmega48-10pu за 61руб).

из всей схемы останется 1 контроллер, 1 светодиод и 1 токо-ограничительный резистор на 1кОм).

и запрограммировать 5ю проводками через LPT.

да, и программу писать не на асме, а на BASIC (bascom-avr).
лучше на CodeVisionAVR, С удобнее ведь и все его знают.
начинающему в принципе хватит и эмулятора. без реальных плат. это конечно не так интересно, но все же.
что это и где взять?
Например тут: 123avr.com
Уже слышу свист летящих помидоров.
напишите в личку как с вами связаться. я сейчас немного занят, ближе к вечеру найду все необходимые материалы, которые мы использовали в университете, и отправлю вам.
Всетаки предполагается что вы уже имеете базовые навыки для включения контроллера. Программатор такой как у меня, стоит 2.5к
Мигание светодиодом — это и есть базовые навыки.
В данном случае для прошивки подойдет все тот же программатор на трех резисторах, о котором я упоминал в своей статье.

Он подходит почти для всех пятивольтовых пиков.

Но, думаю, эта информация статью не спасет.
НЛО прилетело и опубликовало эту надпись здесь
Проще говоря, ШИМ — это когда за некоторый период времени берется среднее значение импульсов.
То есть для импульсов 00001010 это будет 2/8 — 0,25. Таким образом цифровая схема может иметь на выходе аналоговый сигнал.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Вот ей-богу, не принимайте близко к сердцу, но по такому объяснению новичек никогда в жизни не разберется с широтно-импульсной модуляцией. И без графика действительно ничего не понятно будет.
Можно и даже нужно. Ассемблер такой ассемблер, разница чувствуется моментально.
Я привел ссылку на википедию, где рассказывается что такое ШИМ, его применение и т.д.
Вопрос не правильно ставите. Если есть необходимый компилятор, то писать можно хоть матом. А если пойти дальше, то станцевать или насвистеть программу, тоже можно.
Интересно но нииичего непонятно. ))

Во бы кто нить написал про основы. Что такое ШИМ я в теории понимаю, ассемблером то же баловался, но вот этот абзац
В понятие «рассыпухи» входят такие детали как: пара конденсаторов для кварца и конденсатор на выход модуля CPP (Для того что бы сгладить пульсации).


Интересно очень, но копать с нуля некогда.
Вам не понятно всё это?
Кварцы — кварцевые генераторы частоты для микроконтроллера.
Модуль CCP (Capture Compare Pulse-width modulation [PWM] ) — модуль захвата, сравнения и ШИМ. Используется в основном для измерения и формирования импульсных сигналов. На вход этого модуля автор и ставит конденсатор для сглаживания пульсаций. Как это происходит, надеюсь, ясно.

ПС: по моему скромному мнению, автор опечатался. Модуль называется именно CCP (capture compare PWM), а не CPP. Сам с MSP микроконтроллерами работаю, так что могу и ошибаться.
Это понятно людям, имевшим дело с микроконтроллерами. Понятно и неинтересно, я тут ничего нового не увидел. А вот для новичков сложновато. Можно было сделать без ШИМа, с распайкой платы и комментами в коде.
Я не много не правильно задал свой вопрос. Нет ничего удивительного что новичку может быть что-то не понятно в этой статье. Имелось ввиду «Вам не понятно всё это?», тем самым я хотел поинтересоваться, что именно ему не понятно, чтобы точнее ответить на вопрос.
хи… для «для новичков»
кроме того что светодиод будет мигать ничего не понял…
читал внимательно)
Эх. А я вот всё думаю оживить свой старый спектрум. Дисководы сейчас к счастью вымирают. Есть мысль сделать на каком-нибудь микроконтроллере эмулятор дискового контроллера и засунуть туда гиговую флешку (можно и меньше, всё равно такой объём забить нереально будет). «Диски» переключать простым забиванием данных в один из портов ввода-вывода (это как минимум 256 дисков, кстати, тут флешки 256Мбайт достаточно будет с головой).
есть в сети такие схемы, встречал недавно, но т.к. спектрума никогда не имел, большого внимания не обратил
посмотрите здесь service4u.narod.ru/html/emulator.html кажется это оно
Сильно-сильно хочу такое сделать, тольуо для денди. Честно признаться, я даже ради этого микроконтроллерами увлекаться начал:) Вот уже набрал небольшой багаж знаний, чтобы сделать этот самый программируемый картридж. Осталось только узнать на какой частоте дендевский процессор читает данные с EEPROM картриджа. А то раз, и какие-нибудь 40МГц, и все, облом мне с 20МГц аврками:)
Настоящий картридж — это параллельная EEPROM плюс, если игра большая и длины машинного слова на адрес на хватает, микросхема маппера(коих штук 10 разных). Вот у меня идея как у вас примерно, вместо EEPROM флешку, чтоб все игрушки вошли, а мк — адаптер параллельной EEPROM к флешке + эмулятор мапперов + переключалка записанных игрушек.
Могу схемки поискать с контроллером для управления денди со спектрума. Правда они у меня в бумажном виде в журналах. Оттуда можно логику выкопать, схемки несложные.
О, если возможно — было бы очень интересно. А то единственный стоящий источник информации о NES/Денди — это nesdev.parodius.com/
Там самые обычные ПЗУ-шки пойдут, схема картриджа простейшая. В студенчестве самолично копировал такой картридж — спаял схемку на двух ПЗУ-шках. На нем еще были танчики и стрельба по тарелочкам.
Это для простых игр, если не ошибаюсь, до 64кб которые. На остальные(самые интересные:)) адреса у процессора не хватает, и используются микросхемы мапперов, которые банки памяти переключают.
Вот в них то и загвоздка. Эти микрухи естественно уже нигде не найти.
Есть проект, где на основе картриджа с маппером MMC1 сделали программируемый(тоже просто параллельную eeprom запаяли):
www.raphnet.net/electronique/nes_cart/nes_cart_en.php
Моя же идея — все эти мапперы(ну, самые популярные) эмулировать микроконтроллером.
Вот как с текущими проблемами разберусь — примусь за этот проект:)
Эта Ваша загадочная «микросхема маппера» — просто тупой регистр-защелка, в который процик Денди пишет значения старших адресов для ПЗУ. Никакой загвоздки в них нет. Зачем, чтобы заменить регистр-защелку, применять какой-то дополнительный микроконтроллер и что-то там эмулировать?

Другое дело — использовать проц для ПОЛНОЙ эмуляции ВСЕЙ консоли Денди, вместе с картриджем. Как, например, сделано в Digital Thresher (применен BlaskFin от Analog Devices).

Вот тут примеры видео игрового процесса этой замечательной самоделки: www.youtube.com/watch?v=Hac4vVr90u0
www.youtube.com/watch?v=OIIIVEeT-8k
www.youtube.com/watch?v=nO4O9qRnCkQ
www.youtube.com/watch?v=FjzwWZCcc48
www.youtube.com/watch?v=XYbpvOzOomI
www.youtube.com/watch?v=cIsh0nJHMuc

Думаю, если кто напишет статью на Хабре про эту интересную разработку (или хотя бы тиснет топик-ссылку), у того рейтинг взлетит до небес. Самому что ли написать? =).
Ну, какбы не просто защелка, вот например описание самого популярного, MMC1:
nesdev.parodius.com/mmc1.txt
А есть еще MMC2, MMC3 и т.д.

> Другое дело — использовать проц для ПОЛНОЙ эмуляции ВСЕЙ консоли Денди, вместе с картриджем. Как, например, сделано в Digital Thresher (применен BlaskFin от Analog Devices).

Забавно, еще есть реализация дендевского проца на FPGA:
cegt201.bradley.edu/projgrad/proj2006/fpganes/

Но мне это не надо, денди у меня есть, мне бы только картридж с флешкой:)
Ну и как бы где там не регистр-защелка? Черным по белому написано — reg0, reg1, reg2… И даже адреса для них в адресном пространстве даны, и назначения бит. Никакой процессор для эмуляции картриджа не нужен, только тупая, простейшая схема на логике, и все.
Эм, может и вправду так и есть, но всеравно, простейшая не получится, там 24выводная микруха, с 4 входами, 5 входами/выходами и 11 выходами. Так что как минимум 2 защелки + еще логика… И их же много разных, хочу все и сразу:). К тому же я в цифровой электронике еще очень слабо разбираюсь, чисто на логике мое достижение — это бинарные часы на 7 микрухах, ничего сложнее не делал(как же я запарился с разводкой-то:)). Так что с микроконтроллером проще(да и еще дешевле получится:)), плюс я же к флешке цепляться собираюсь, может с нее читалку на логике и можно сделать, но я это дело точно не осилю:)
В итоге я все это дело вижу так: несколько 74HC165, чтобы данные с параллельного 60пинового разьема для картриджа в последовательный вид перевести, а за ними 1 мк, который эмулятор всех самых популярных мапперов + читалка с флешки и через 74HC595 обратно на паралельный разьем.
Было бы интересно на Хабре про Вашу разработку почитать.
Ну, сначала мне его сделать надо. Думаю у меня на него месяца два уйдет.
Но по результатам(надеюсь удачным), скорее всего напишу статью:)
Наверняка вы проделали большую работу и у вас все прекрасно работает, но с точки зрения новичка вряд ли в вашей статей раскрыто все, что необходимо для понимания. Как минимум, не помешали бы подробные камменты к коду, все-таки команды асма не отличаются интуитивной понятностью, тоже касается управляющих последовательностей битов для регистров специального назначения.
Вообщем, если будет не влом, то потратьте еще немного времени — так вы сделаете статью намного понятнее.
Больше всего мне понравилась музыка в видео со светодиодом. Она знаменует великую победу 8-)

Может быть всё-таки распайку покажете обычную?
Там обычное типовое включение микроконтроллера, и светодиод повешен на ноужку. Больше в схеме ничего нет, честно :)
Ну, вот в том то и прикол, что не все здесь понимают, что такое типовое включение контроллера. Вот, если бы вы это подробно описали, я бы Вам ещё пару плюсов поставил бы. Потому что сам я с паяльником дружен, но микроконтроллеры не испольнозвал никогда.
Есть такие статьи на хабре, которые даже открывать не стоит. Не из-за того, что плохие, а из-за того, что ничего не понятно.
easyelectronics.ru — для новичков куча отличных статей, сам по ним учился
Хоть бы схему приложил для порядка. А то не поймешь что куда цеплять.
Не для начинающего это… Сам AVR программирую. Вот наверное лучше было бы если вы комментарии к полному исходнику распишете, темболее это же не С а Аssembler… Конечно схема подключения стандартная и описана в даташитах на этот МК, но про даташит тут ничего не сказано, а многим людям думаю захочется посмотреть только ради интереса «что да как»…
Может тоже начать писать статьи по программированию микроконтроллеров, хоть пользу какую буду приносить=)
Интересно написано. Сам в универе программировал PIC16F84A. С ассемблером разобрался быстро, команд там не много (по крайней мере у 84-го), да и курс по ассемблеру х86 был 2-мя курсами ранее. Но для новичка сложновато, хотя пример с платами — как мотиватор. Собрать физически схему куда интереснее, чем программировать и отлаживать все это дело на эмуляторе.
ужс, вспомнил свои бессонные ночи за учебником и AVR

кстати, хинт — писать код с комментариями=)
По авр для новичков полно сайтов хороших. Чего только стоит easyelectronics.ru, но вот по пикам таких не встречал.
Хоть в теории все работает аналогично, но на практике немного иначе.

Хотелось написать поподробнее о первых шагах освоения пиков, да не дошло до этого (хотя это поправимо =) ).

Сейчас начал изучать кортексы, с доступной информацией все еще хуже, особенно на русском.
Лучше ARM-ы Atmel изучайте, инфы море, есть дока и на русском.
Да, сейчас тыкаюсь в Cortex-m3. Все радует, кроме копеечного (в прямом смысле) размера.

На русском инфы полезной нашел мало, но это не помеха. Примеры работы со всей перифирией есть — и хорошо.

Парочку устройств на них точно сделаю, осталось тоьлко немного времени выделить.
А для ARM-ов Atmel все нахаляву. Нигде таких полезных примеров не видел, как в пакете для Atmel для IAR — делай что хочешь. Нужен CAN — получи, SPORT или RS-232 — получи, SPI — пожалуйста, TWI (I2C) — запросто, работа с внешней памятью flash NOR или NAND по любой шине — да получи, нужен SDRAM — можно, USB — да вообще не вопрос. Просто праздник какой-то.
Да и тут примеров достаточно. Подключай библиотеку и пользуйся.
Того же эффекта можно достичь на мультивибраторе и в паралель со светодиодом воткнуть электролит.
А вместо изучения написания программы «Hello Word!» можно написать фразу в блокноте…
нет книжку лучше, уж поверьте!
Когда нашего преподавателя, разработчика T0 детектора на ALICE LHC, спросили литературу на PIC, он удивлённо посмотрел и ответил: «Возьмите другой микроконтроллер!»
Лучше бы написали про средства отладки под PIC-ами (если такие вообще существуют за разумные деньги). Чтобы не на коленках программировать типа «написал -> прошил -> попробовал -> не_заработало -> стер -> написал...» и не в симуляторе отлаживать, а по нормальному — в железе, с возможностью выполнения программы как в реалтаме, так и по шагам, с точками останова по исходному коду на C и ассемблере. Иначе — просто баловство и пустая трата драгоценного времени. К слову — для AVR все это давно уже есть.
Соберите PicKit2 Lite и пользуйтесь обычным MPLABом.
Вот про это бы и написали, было бы намного полезнее — какие возможности у MPLABа, что он умеет, что за зверь PicKit2 Lite, как его собрать. Надеюсь MPLAB — это не очередной софтверный симулятор типа Протеуса?
Нет, MPLAB — это среда разработки от самого микрочипа.
Все, что вы перечислили (отладка в железе) — возможно.

PicKit2 — программатор-отладчик от того же микрочипа. Прошивает все (вроде) пики и является полноценным внутрисхемным отладчиком. Продается в магазинах или собирается самостоятельно.
PicKit2 Lite — урезанная самоделка, прошивающая не все микроконтролеры. Зато гораздо легче в сборке.
PicKit3 — новая версия. Прошивает все пики, включая совсем свежие.
Ок, спасибо. Если напишете про это поподробнее, будет интересно почитать:

— на каких языках можно программировать в среде MPLAB с полноценной аппаратной отладкой по исходному коду, какие есть ограничения, какие ресурсы PIC-а задействованы для отладки;
— какой для этого нужен минимальный комплект, где посоветуете купить, почем, или по какой схеме посоветуете собрать;
— какие можно использовать для отладки перепрошиваемые PIC-и;
— какие еще есть IDE и аппаратура для полноценной отладки, сколько это стоит.
Увы, мне хватает проверки в железе без отладчика. Просто знаю о пикките.
При помощи бутлоадера замена прошивки занимает менее полуминуты. При необходимости отследить что-то есть налаженный канал связи с пк.
Ну, а пошагового выполнения мне не требуется, не того уровня задачи.

С отладчиком поразвлекался с АРМами, ничего полезного для себя не нашел.
С программированием методом проб и ошибок завязал давно, еще со времен MCS51. С тех пор от эмуляторов ПЗУ, бутлоадеров и программаторов просто тошнит. Налаженный канал связи с ПК для отладочного вывода должен быть по-любому, но это лишь добавочный инструмент, он ни в коей мере не заменяет аппаратного отладчика.

Получается, PIC-и точно не для меня, слишком я привык хорошему.
Не для вас — потому что я не рассказал вам подробности?

Немного гугла по ключевым словам, и вы найдете ответы на все вопросы.
Да даже на хабре есть пара статей:
berkutsoft.habrahabr.ru/blog/86527/
Эта статья только подтвердила мое мнение. Гуглить не буду, чтобы еще больше не расстраиваться =).
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.