Статья не закончена. Если охота особенного тантрического секса, то советую посмотреть в сторону адового прибора с названием КР1878ВЕ1. Некоторые тут на хабре на нем даже музыку помница играли.
Вы, наверное, никогда ничего не собирали на макетных платах. При самостоятельной сборке этого нагромождения запоминается каждый проводок, поэтому после сборки в ней относительно несложно разобраться и внести изменения, но другому человеку оно поначалу кажется непонятным и запутанным. Примерно как код своей программы и чужой.
Можно. Но автор статьи исходил из «минимализма» при выборе контроллера, поэтому я посоветовал присмотреться к микроконтроллеру КР1878ВЕ1, который в некоторой степени превосходит своих собратьев типа PIC16x84 с одной стороны, а с другой предоставляет «минималисткую» среду разработки — только ассемблер. Микроконтроллер не часто используемый, поэтому по своему интересный. Чего минусуют первый пост — неведомо. Видать приняли КР1878ВЕ1 за советскую TTL логику, не удосужившись даже загуглить.
«проект по разработке процессора на базе советской логики».
Извините, но не слишком ли это громко звучит для семи чипов, пять из которых — 155 серия, трех семисегментных индикаторов, трех кнопок и 8 светодиодов?....)
Все начиналось с малого =)
На данном конкретном этапе(а не на том, который запечатлен на фотографии) процессор может через определенный интервал выводить поочередно до 2к значений, просто тупым перебором.
Странно только, что Вы называете этот генератор массива данных процессором… =) Я под процессором всегда подразумевал некое вычислительное устройство, обрабатывающее входные машинные инструкции, команды.
улыбнул ваш ник и о сломанном мозге :D может быть, да прост хотел сказать, что я с дошкольных времен рылся в том о чем написано в статье… мне сравнилось с тем как я например написал бы статью смотрите что я нашел у папы на столе, а теперь напишу в след статье что я с этим сделаю:)
P.S. делал и шил, но уже в школьные.
Если бы было указано, что это первая часть, было бы лучше. А вообще, мне кажется, начало довольно интересное (для кодера, который редко держит в руках паяльник).
Нельзя уместить всю информацию в один или несколько топиков. Ну не получится так объяснить человеку, который ни разу или очень редко берётся за паяльник. Я сам подумывал написать статью по этому поводу, но это сложно, т.к. существует много тонкостей и в любом случае, вам не удасться рассмотреть все аспекты или читателю в любом случае придётся искать информацию за пределами хабра.
В сети куча мануалов по этому вопросу и можно всё спросить на форуме. Я тоже раньше хотел подобные статьи писать — хочется рассказать, чтобы всё было понятно, но и охватить побольше. Так можно человека только больше запутать. Поэтому я написал статью про список необходимых книг.
>Попросите продавца подобрать вам светодиоды небольшой яркости, и резисторы к ним для подключения >на 5 вольт.
Ну нельзя так, вы не продукты покупаете, чтобы вам что-то советовали. Резистор ограничивает не напряжение, а ток. Написали бы лучше закон Ома. А вообще стандартный светодиод работает при токе 20 мА, так что в большинстве случаев нужен резистор 220 Ом.
Вы правы, в сети куча информации. И чтобы читатель не искал ее, по ходу повествования я привожу ссылки на материал, который нужно усвоить, чтобы понять, о чем пойдет речь дальше.
По поводу светодиодов — продавец в магазине электроники более компетентен в таких вопросах, чем целевой читатель. К нему можно подойти и сказать, мол я хочу подключить к микроконтроллеру вот такой светодиод, какой резистор нужен? И он все поймет, и объяснит, и про закон Ома расскажет, ему же скучно там целый день торчать :)
В общем, я планирую сосредоточиться на практической части, рассказать что и как можно сделать. А для того, чтобы читатель понял, почему делается именно так, существуют ссылки на те самые объемы информации, которые нельзя уместить в один или несколько топиков. Читателю дается выбор: либо просто следовать инструкциям и получить результат, либо сделать то же самое плюс вникнуть в теоретическую часть и осознать как сам результат, так и процесс его достижения.
А не слишком дорого получилось? 2.5-2.7к программатор + 500 полигон + камень и плата + резисторы и прочая мелочь, ардуино или ему подобные разве не дешевле получились бы?
а никто не заставляет всё это покупать. PicKit2 стоит вообще-то 1900р, а если жалко денег, можно спаять самому. В интернете есть куча статей на эту тему.
ну а самые распространённые Microchip'овские МК 16й серии (PIC16F873A, например) стоят 100-150р.
/Me смотрит на PIC1X (X < 8), блюёт хардварными стеками и долбанутой адресацией. Может, для новичков попроще что-нть нашлось бы, ну, те же MCS51/i8051 от Philips?
Прерывания еще ладно. До них еще надо дорасти чтобы их надо было много. Мне кажется, новичкам гораздо сильнее может взорвать моск необходимость переключения банков памяти при использовании :)
PIC-ов много разных, и среди них можно подобрать на любой вкус и под разные задачи. Нужны прерывания с разными векторами? К ваши услугам PIC24 и старше. Нужно всего пару векторов? PIC18… И т.д. и т.п.
Через дорогу — филиал гаммы(официальный представитель микрочипа). Если у них нет — есть в соседнем городе, два дня на доставку…
Собственно, конкретно в моем городе с атмелами заметно похуже, чем с пиками.
купите какой-нибудь dsp starter kit на TMS или AVR, там железо посерьезнее, можно несколько потоков кода сделать, математический модуль мощный для обработки сигналов, опять же разное навесное оборудование и т.д.
еще в гугле вот это вылазит, www.starterkit.ru, здесь на ARM есть Linux, экраны и все прочее
так что ищите
то есть analog devices имел в виду, а не AVR
но вообще цены суровые на некоторые вещи, а раньше помню по $100 шли почти все киты
но есть и недорогие, типа freescale, опять же на ebay можно что-то заказать www.megachip.ru/catalog.php?open_code=11030405#code_11030405
MCS51? Хотя он до сих пор применяется, имхо, уже отжил своё. Одно дело — куча ранее разработанных устройств, которые нужно поддерживать, а другое — новые разработки. Пора 51-му на заслуженный отдых. Те же AVR дешевле, производительнее и проще в освоении.
Ну…
во-первых, RISC против CISC на 8051,
во-вторых, что там плохо с адресацией?,
в-третьих, если с нуля, то 8051 вряд ли особо проще будет, много разбираться придется в обоих случаях (разве что по началу для RISC программы непривычно писать, но это по началу только).
Необходимость ручной реализации стека — не очень приятно, конечно… Но зато… just for fun, как говорится (:
пиккит2 это не просто программатор. Он же еще и отладчик (прям по коду, как в JTAG правда этот мелкий пик это возможно не поддерживает) и какой никакой, но четырех канальный логический анализатор. Пусть и слабенький, но отладить и2с шинку или 1-wire на нем можно гораздо быстрей чем на аналоговом осциллографе.
Плюс научившись сразу писать код под МК и делать схемы с нуля на соплях можно приступать к построению уже более серьезного устройства на плате, с отдельным контроллером. И вот тут цена в 100р за А4 текстолита и 100р за процессор по цене рвут дурку как тузик тряпку. Т.к. в каждую херню ардуино совать жирно будет.
Если заниматься этим серъездно, профессионально — то да, программатор и прочие средства разработки необходимы как воздух.
Но если это хобби, не профессиональная деятельность — я думаю, тратиться на это не целесообразно. Для этого случая и придумали Ардуино и тому подобные решения…
>>Т.к. в каждую херню ардуино совать жирно будет.
Конечно, жирно. Но так никто и не делает. Вы, что — строите готовые решения на отладочных платах? Думаю, нет. Ардуино такая же отладочная плата, на ней легко и быстро строить единичные продукты, не требующие серии. И также же — это дешевый и быстрый способ для разработки прототипа — если конечное итоговое решение будет основываться на схожей архитектуре с МК от Atmel.
>>Та же ардуино+ всякие шилды тоже отнюдь не дешевое решение
По сравнению с отладочными платами, Ардуино не такой дорогой.
>>Купил голый контроллер за 60р
МК, что стоят на Ардуино (Atmega328) стоят отнють не 60 рублей, в розницу как минимум в 3 раза дороже.
>>проводками на LPT порт и поехали.
Все же сказать: «поехали» — можно про Ардуино — воткнул в USB и поехали.
А вот про голый МК с проводочками через LPT порт — придется еще попаять, пошаманить, тут сразу не поедешь…
1500р за голую168 мегу + FTDI + линейный стабилизатор это очень дорого. Себестоимость там рублей 300 максимум. Красная же цена этой платки рублей 500.
А зачем сразу брать максимальный проц? Можно и на меньшем сделать, ведь далеко не всегда возможности использутся. Ну и смотря где брать. 328 может и дорогая, а вот 88 или 168 стоит уже недорого.
>>Себестоимость там рублей 300 максимум
Про себестоимость на самом деле так категорично говорить нельзя, потому как она зависит от объема производства. При малых тиражах (менее 1000 штук) в 300 рублей уложиться невозможно. Например, только два компонента «съедают» большую часть вашего бюджета.
FT232RL — 3$ (+18% НДС)
ATMEGA328P-PU — 3.8$ (+18% НДС) — причем, это дефицит.
А ведь есть еще куча мелочевки стоимостью от нескольких копеек до 10-20 рублей. А еще изготовление ПП, маска, маркировка, в конце концов — монтаж…
А то, что оригинальные Ардуино стоят у нас дорого, объясняется одним словом — растаможка (сборы, пошлина, ндс) + транспортировка.
если хотите минимализма — выбирайте ПЛИС. Тогда не только байты — биты считать научитесь :-)
На самом деле программировать ПЛИС — это интересно.
И не сильно сложно.
Вот пример: marsohod.org
существует куча проектов, которые делать на ПЛИСе глупо при наличии готовых МК. К тому же, ПЛИСы, как правило, обходятся куда дороже. А учитывая, что тут народу 2к на программатор для PICов жалко, то что же тогда говорить о том же Xilinx Platform Cable USB II за 250 баксов? А в России он вообще 15к руб. стоит.
А я решил в замен сгоревшей платы в термопоте свое сделать из подручных материалов пока вот в таком виде www.softcoder.ru/public/17012011810.jpg
Используется AVR Mega8 + самодельный программатор + и немного усердия
Если кому то интересно могу в итоге результаты показать(небольшой статьей), прошивку со схемой конечно в общий доступ :)
М-м-м, пробежался по архитектуре, крутота! 41 байт памяти, максимум 1024 инструкций. Стек глубиной 2! Банки памяти.
Вот только одно смущает: что, нету conditional branch? Т.е. циклы не получится запрограммировать?
Там есть инструкции, которые позволяют проверить бит и, в зависимости от его значения, пропустить следующую инструкцию — btfss и btfsc. Ставим такую инструкцию перед безусловным переходом (goto) и получаем переход по условию.
Чего там действительно нет, так это сравнения больше-меньше)
Дайте мне железа! Часть 1