![]() |
Теория_003
Теория_003
Итак, продолжим. После того как мы рассмотрели счётчик команд РС, то волей неволей, нам пришлось затронуть регистры специального назначения РСН. Память данных представленная в виде регистров, состоит из двух наборов, этих регистров. Регистры специального назначения РСН и регистров общего назначения РОН. Первые РСН имеют фиксированные имена и адреса, а вторые РОН назначаются самим программистом. Например, в микроконтроллере PIC16F84A регистров общего назначения 68. Все РОН 0-го банка дублируются (отображаются) в 1-ом банке. Поэтому можно считать, что все РОН находятся в 0-м банке и забыть про переход в 1-й банк при работе с РОН. С регистрами специального назначения дела обстоят немного сложнее и это основные элементы, с которыми приходится работать программисту. Ниже на рисунке представлен состав РСН для микроконтроллера PIC16F84A, с двумя из них мы уже ознакомились в Теория_002, это регистры PCL расположенный по адресу 02h и PCLATH расположенный по адресу 0Ah: Регистр STATUS. По мере изучения, нам придётся их все детально рассмотреть, запомнить, понять и выучить. И продолжим изучение с регистра STATUS расположенного по адресу 03h. Это регистр, как и предыдущие два расположены в банке 0, а в банке 1 дублируются, поэтому для работы с этими регистрами не требуется смена банка. Регистр STATUS тесно связан с АЛУ (арифметико-логическое устройство), первые пять бит, это флаги, которые используются для информирования программы о результате выполнения команды. Например, был ли перенос при выполнении операции сложения или равен ли результат операции нулю. Биты 5, 6, 7 рабочие биты и предназначены для выбора банка. Названия битов и их расположение представлено ниже на рисунке: Флаг переноса. Бит 0 (С). Используется в качестве флага переноса. Основное его назначение – хранение бита переноса предыдущей операции сложения. При операциях вычитания значение этого бита соответствует инвертированному биту заёма. Флаг С также используется в операциях сдвига. Пометка R/W обозначает, что бит, доступен как для чтения (R), так и для записи (W), а после сброса по питанию его состояние не определено (при любом другом сбросе состояние этого бита не изменяется). Флаг десятичного переноса. Бит 1 (DC). Используется в качестве флага десятичного переноса DC. Этот флаг функционирует точно так же, как и обычный флаг C, только содержит бит переноса из младшего полубайта в старший, т. е. из 3-го бита в 4-й. Аналогично флагу C, флаг DC содержит дополнение бита заёма из 3-го бита в 4-й. Информация о наличии или отсутствии переноса между полубайтами полезна при работе с данными, представленными в двоично-десятичном коде. Флаг нуля. Бит 2 (Z). Используется в качестве флага нуля Z. Этот бит устанавливается, то есть становится равным 1, если результат выполнения команды равен нулю, и сбрасывается в противном случае. Специально предназначенных команд для сброса или установки флага нет, но это можно сделать при помощи бит ориентированных команд, например, bcf f, b или bsf f, b в которых непосредственно указывается регистр и бит. А сами команды не влияют на состояние флагов. Назначение более специализированных флагов, размещающихся в 3-м и 4-м битах, мы пока не будем детально рассматривать, познакомимся с ними только в общих чертах. Флаг /PD (Power Down) сбрасывается при выполнении команды sleep, которая используется для выключения тактового генератора и перевода микроконтроллера в режим ожидания с малым потреблением электроэнергии. Флаг /TO (Time Out) сбрасывается при наступлении тайм-аута сторожевого таймера. Сторожевой таймер пока мы тоже не будем рассматривать, но поверьте, ничего в нём страшного нет. Оба эти флага доступны только для чтения – их состояние не может быть изменено программно. После сброса оба эти флага устанавливаются в 1. Рабочий бит 5 (RP0) предназначен для переключения банков (0 – нулевой банк, 1 – первый банк). Рабочий бит 6 (RP1) предназначен для переключения банков (0 – второй банк, 1 – третий банк). Так как в PIC16F84A 2-го и 3-го банка нет, то для этого микроконтроллера можно забыть о существовании бита 6 регистра STATUS. Рабочий бит 7 (IRP) предназначен для выбора группы банков. (0 – банки 0,1; 1 – банки 2,3). И об этом бите можно забыть при применении микроконтроллера PIC16F84A. А связано это ещё с тем, что после сброса эти биты, устанавливаются в 0 и тем самым автоматически будет выбран банк 0, а для смены банков потребуется только бит 5 RP0. Вот, пожалуй, и всё, что нам пока необходимо знать о регистре STATUS, не знаю как Вы, а я пока это всё писал, выучил наизусть, надеюсь, не забуду. |
Quote:
|
Quote:
|
Quote:
|
Quote:
|
Quote:
Quote:
|
Quote:
|
У меня небольшой опыт программирования pic - всего три устройства на PIC16F676 и PIC16F628А. Но могу сказать следующее. Первое главное преимущество pic'ов среднего семейства (далее только про них) - малое количество команд, из-за чего их легко освоить за короткое время. Из-за малого объема памяти программировать на чем-то кроме ассемблера хоть и возможно, но не серьёзно. Большой недостаток системы команд - нет команды сложения/вычитания с учётом флага переноса, нет отдельных команд перехода по состоянию флагов. Но все эти недостатки можно компенсировать использованием макросов. Кроме того в 18-х pic'ах такие команды уже есть. Особенно радует микроконтроллер pic12f675 в 8-ми выводном корпусе. При очень богатой периферии (таймеры, компаратор, ацп) цена данного прибора сравнима с какой-нибудь импортной микросхемой мелкой логики. Все используемые мной микроконтроллеры (pic16f676, pic16f88, pic16f628, pic12f675) имеют абсолютно одинаковую систему команд и отличаются только периферией, что делает процесс перехода с одного микроконтроллера на другой простым и безболезненным. Программирую я их с помощью самопального программатора аналога extra-pic с питанием от usb. Шьётся правда не всегда с первого раза. В журнале Радио очень много статей первой половины 2000-х посвящено программированию pic16f84, который является родоначальником всех pic'ов среднего семейства. Сегодня этот контроллер устарел морально и цена на него кусается. Но всё что там про него сказано с небольшими поправками на периферию применимо ко всем микроконтроллерам среднего семейства. Мне пока что не с чем сравнить, т.к. кроме pic, z80 и pc я больше ничего не программировал, но по-моему pic следует использовать в устройствах, где требуется низкая цена и умеренно развитое п/о. Если хотите научится программировать pic, то мой совет - возьмите готовое устройство с исходником и попробуйте разобрать по косточкам, а лучше усовершенствовать.
|
Не знаю выкладывали здесь уже или нет, но вот две довольно хорошие, на мой взгляд, книжечки:
http://www.pic24.ru/lib/exe/fetch.ph...asm_tricks.pdf http://www.pic24.ru/lib/exe/fetch.ph...formatting.pdf |
8ногие AVR тоже бывают, и стоят еще дешевле и еще доступнее. С командами все ок. Пример - attiny13,25,45,85.
Я программировал dsPIC33 на ассемблере (си был платный...), пришлось привыкать к стилю написания мануала, и что весь зоопарк серии свален в один документ. Так же не порадовали флаги наизнанку и адресация памяти. Если кратко, то память данных надо уложить в 16384 байта, даже при 128к памяти кристалла. Из приятного - ЦАП 2х16 бит и тактовая - 40МГц, среда разработки удобная. И тупенький программатор мог до 2х аппаратных точек останова (внутрисхемная отладка), это очень выручало. |
Quote:
ATTINY13: 48...108 руб (цены в зависимости от модификации и корпуса) ATTINY25: 139 руб ATTINY45: 96-130 руб ATTINY85: 92-135 руб PIC12F629: 34-42 руб PIC12F675: 27-42 руб http://www.marketmec.ru/Goods_List.g...=1&By=1&Page=2 http://www.marketmec.ru/Goods_List.g...el=3&finding=0 |
tixer.ru
ATTINY13 - 24р.50коп. ATTINY25 - 50p. ATTINY45 - 55p. А я так вообще переполз на STM8. Еще дешевле в разы. STM8S003 можно найти по цене около 12 рублей. |
подскажите, какой максимальный ток держат пики на выход. Подозреваю, что 25 мА.
Кроме цены, есть куча не менее важных факторов которые следует учитывать при выборе МК: 1) наличие толковой документации (в т.ч. готовых библиотек) на русском от производителя 2) популярность в р/л кругах, а значит и количество информации в инете. Про pic и atmel очень много статей в журналах Радио и Радиолюбитель. А вот про STM кот наплакалъ 3) доступность (бесплатность) п/о 4) простота программатора и др. У STM функционал и цена интересные, но что-то мне подсказывает, низкая цена на сам мк компенсируется необходимостью платить хорошие мани за всё остальное, ибо бесплатных пироженных не бывает. На tixer.ru этот самый STM8S003 35 рублей. Причем я так понял они идут только в корпусе для поверхностного монтажа, что не очень-то удобно. В екатеринбургскои МЭК'е STM вообще нет, а в Промэлектронике от 25,4 руб в розницу. Весьма сомнительные преимущества |
Quote:
|
Quote:
Программатор - да, придется купить. Только он вдвое дешевле ПИККита. Quote:
Когда "понюхал пороху" - уже все равно, есть ли тонны публикаций... Кстати, информации/публикации и пособия для чайников по СТМ8 есть в достаточном количестве на изиэлектрониксе, в блогах сообщества. Там есть и парочка моих статей. Ничего сложного в СТМ8 нету. Зато фарша - сколько хочешь... И цены реально низкие. Quote:
Уже вышел и продается этот 003 в дип-корпусе. Только они уже на любителя, меня вот лень природная заставила перейти на поверхностный монтаж, забодало дырки сверлить :) А "реальные" магазины в наших городах действительно дают очень часто печальные цены. Я уже приводил ссылку, где цена разнилась в 50 раз!!!!! Хочешь жить дешево - покупай по почте... Я уже привык не отрывать зад от стула... |
Quote:
|
Информацией обменялись, и то хорошо :)
На вкус и цвет, само собой. Совсем уж напоследок добавлю, что программатор ST-Link для STM8 стОит вместе с демоплатой около 400р, а на барахоловках еще дешевле, что для студентов тоже неплохо :) Пойду дальше ПЛИСы мучить. |
Quote:
Экстрапики и лайт-кастраты только для недалеких "кулибиных", с чего-то считающих что пЫки заканчиваются на MiD Range линейке. Вменяемый клон пЫКкита2 собирается неспешно за полдня, с ценой коплектующих 300-400 р. И есть ли смысл самому ляпать? Если китайские клоны и 2го и 3го стоят 600 -900 р. То же и STM8/32 : клон STLink v2, обрезанный без транслятора уровней, обойдется в 150 -200 р . Полный в 600-700р. Вместе с доставкой . А поверхностный монтаж нынче это преимущество, паяется весьма легко в домашних условиях , даже корпуса с питчем 0.5- 0.4 ... На счет холливара пЫк, AVR или STM. При наличии STM32F0xxx, я вообще не вижу смысла в 8ми битках . ---------- Post added at 12:04 ---------- Previous post was at 12:01 ---------- Quote:
STM32F103C8T6 -130р. http://www.chip-nn.ru/81.php |
Quote:
|
Quote:
---------- Post added at 12:18 ---------- Previous post was at 12:09 ---------- О преимуществах смд монтажа в домашних условиях . Этот чип был запаян жалом мини волна , обычной скошенный конус с выбраннным бормашинкой углублением, за полминуты. Сами посчитаем - сколько понадобится сверлить, паять , если даже найдем подобный чип в дип ? http://s018.radikal.ru/i515/1404/21/0df3b9f41ab1.png ---------- Post added at 12:39 ---------- Previous post was at 12:18 ---------- Прототип многофункционального базового блока . STM32F050C6. Габариты 50х40х20 , и места свободного еще много. Что предложим в дипе ????????????? http://s020.radikal.ru/i719/1404/fe/f0d1e038aa15.jpg http://s57.radikal.ru/i158/1404/80/2b88d237bdcd.jpg |
Меня габариты не сильно волнуют, так как я делаю в основном стационарную технику, спорить о том, что СМД компактнее нет смысла так как СМД намного компактнее. Как и обычный монтаж намного компактнее навесного монтажа.
Как было сказано выше, на цвет и вкус - товарищей нет. |
Спорить ни кто и будет, и дело не в вкусах.
Ни каких преимуществ у дип корпусов нет, все доводы "за" - лишь от незнания и боязни применения нового ... Мне вот так же , как Женя выше сказал, лениво насверливать по сотне отверстий для дип корпусов , да и тратить огромные площади под них ---------- Post added at 13:44 ---------- Previous post was at 13:36 ---------- Quote:
Безграмотные и основанные лишь на своих надумках выводы . Цена квикстарта у STM8/32 на порядок ниже тех же пЫк, о AVR вообще молчу - ибо все убого . Вменяемого отладчика за вменяемые деньги просто не существует . Причем речь о использовании - для себя любимого , а не о производстве ... Впрочем никого уговаривать и охмурять не собираюсь , кто умней уже давно осознал все преимущества для себя . Уверовавшие так и останутся на допотопном, дорогом старье - бормоча как отмазку : "а мне и так сойдет" ... |
Quote:
|
Quote:
Порты I/O монстроидальны на STM32.... Ладно, со временем привыкну. Пока же я упорно/упорото предпочитаю 8-битные платформы, вероятно это уже просто религия, привитая ретрокомпьютерами, а значит - не лечится и обсуждению не подлежит :) ---------- Post added at 14:07 ---------- Previous post was at 14:06 ---------- Quote:
|
Quote:
|
Quote:
dosikus по идее профессионал в ПИКах, вот он точно может корректно посоветовать, что нужно изучать, чтобы это было современно, и при помощи чего. |
Ewgeny7 STM8S003 в розницу нашел только за 19.71 р. в планаре.
Pickit3 у меня фирменный, стоил от силы долларов 50. Pickit2 с алиэкспресса, рублей 600 (pickit3 не шьет i2c память, вообще не понимаю его преимуществ). Обидно, что STM32F103 идут без USB загручика. Пришлось ST-Link у китайцев заказывать. Viktor2312 - поверхностный монтаж нынче неизбежность. Захочешь современный звучащий операционный усилитель, или DAC - все идет в SO/TSSOP. Берешь линзу и паяешь. Либо берешь переходник на DIP и раскидываешь на него. Сейчас даже транзисторы уже шарами оснащают, скоро и TSSOP канет в Лету, будет тотальное BGA. Jukov - за базаром приглядывай, пегий. Самый дешевый PIC12F675-I/SN микросхема SO-8 стоит 29 рублей и выше, против 23р. за Attiny13. К тому же, в 2 раза медлееннее (если на тиньку повесить кварц, то в 3.2 раза). |
Quote:
Программатор/отладчик само собой лучше купить, причем верно здесь заметили - и пиккит2 и пиккит3 Но повторюсь в плане цены пЫки - не лучший вариант ... ---------- Post added at 14:42 ---------- Previous post was at 14:37 ---------- Quote:
Quote:
Я JLink в основном юзаю, хочу еще один прикупить . Хоть и куча дискаверин есть. |
Начинающему надо танцевать от задачи. Я в PIC влез только из-за аналоговых выходов dsPIC33. Других преимуществ у него небыло 3 года назад, а сейчас и подавно нет. Ну ладно, 2 аппаратных точки останова со стандартным программатором pickit.
Еще, начинающему советую курс https://www.edx.org/course/utaustinx...2#.U1jo6_l_uls Это бесплатное обучение микроконтроллерам. Американцы форсят контроллеры TI на базе их демо платы. Таких же как и ты, 100 000 человек сядут разбираться, делать домашку, писать варез, общаться на форумах и решать проблемы. В результате, окончив курс ты будешь уже специалистом, способным решать задачи, а не любителем, который когда захотел, тогда и бросил. И да, это ARM. ARM сейчас рулят. AVR - дело привычки. Они простые как 2х2, и изучать мк не имея денег и опыта, лучше с них. PIC - тут двойственно, они могут мало что предложить, чего у ARM нет. А учитывая цену, скорость и объем памяти - вообще в проигрыше. Кстати, у LPC вроде было пара моделек ARM в DIP корпусах, для фанатов. |
Quote:
А вся прелесть STM именно в юзанье аппаратной части - сконфигурить периферию и пусть лопатит ... Quote:
|
Quote:
dsPIC удобен с красивой средой и точками останова. Его си был платный, кряк я не нашел, матерясь изучил асм и заковырки дебильной пиковой документации. Она не умная, очень. AVR (STM32) - ну глупо разводить зоопарк программаторов, есть же USB на большинстве моделей. Нет, снова надо колхозить. Купил Leaflabs Maple - детская поделка. Библиотеки сконвертированы топором, сам разработчик ни в чем не рубит. SD карту через DMA до сих пор писать нечем. Raspberry Pi - вот ништяк система, купил за 40 баксов вместе с доставкой, воткнул старую флэшку и накатил дебизьян с первой попытки. Отличная вещь! Хочешь, как микроконтроллер гоняй, хочешь, с юниксом бибись ---------- Post added at 14:49 ---------- Previous post was at 14:48 ---------- Quote:
|
Quote:
А вообще, вон Терраэлектроника вроде предлагает в розницу по 9 с половиной рублей, в розницу, хоть и под заказ - http://www.einfo.ru/store/STM8S003F3P6./ Есть куча оптовых предложений по 10 рублей. ---------- Post added at 14:57 ---------- Previous post was at 14:55 ---------- Quote:
Quote:
А начинать сейчас лучше уже с СТМ, как мне кажется, а не с ПИКов. |
Quote:
Quote:
Quote:
|
Вот наверное это и следует изучать:
32-битные микроконтроллеры. Старшим семейством контроллеров от Microchip Technology является 32-разрядное семейство микроконтроллеров PIC32: * ядро MIPS32 M4K, частота тактирования 80 МГц, большинство команд выполняются за 1 такт генератора, производительность 1.53 Dhrystone MIPS/МГц * порты ввода-вывода относятся к основному частотному диапазону, т.о., к примеру, можно дергать портами с тактовой частотой. * дополнительный частотный диапазон организуется для периферии из основного посредством программно настраиваемого делитель, т.о. частота тактирования периферии может быть снижена для снижения энергопотребления. * 28-, 44-, 64- и 100-выводные корпуса, до 128 кБ SRAM и 512 кБ Flash с кэшем предвыборки * совместимость по выводам и отладочным средствам с 16-битными контроллерами Microchip * аппаратный умножитель-делитель с независимым от основного ядра конвейером, оптимизированным по скорости выполнения *набор расширенных инструкций MIPS16e™ — набор 16-битных инструкций, позволяющий на некоторых приложениях снизить объем кода на 40 % *независимый от основного ядра контроллер USB Семейство 32-разрядных микроконтроллеров PIC32 выделяется значительно увеличенной производительностью и объемом памяти на кристалле по сравнению с 16-разрядными микроконтроллерами и контроллерами цифровой обработки сигналов PIC24/dsPIC. Контроллеры PIC32 также оснащены большим количеством периферийных модулей, включая различные коммуникационные интерфейсы — те же, что у PIC24, и 16-битный параллельный порт, который может использоваться, например, для обслуживания внешних микросхем памяти и жидко-кристаллических TFT-индикаторов. Семейство PIC32 построено на ядре MIPS32®, с конкурентоспособной комбинацией низкого потребления энергии, быстрой реакции на прерывание, функциональностью средств разработки и лидирующем в своем классе быстродействием 1.53 Dhrystone MIPS/МГц. Такое быстродействие достигнуто благодаря эффективному набору инструкций, 5-ступенчатому конвейеру, аппаратному умножителю с накоплением и несколькими (до 8) наборами 32-разрядных регистров ядра. |
Quote:
пЫк32 http://www.trt.ru/Stock.php?Part=320 STM32 http://www.chip-nn.ru/51.php Причем для STM я специально даю ссылку на демоборды ... |
мде, авторы пик32 не слышали про stm32f405 ....
Изучать я все же настаиваю в обойме, т.е. бесплатных онлайн курсах. Я там азы электроники изучал, а корешь сейчас цифровую обработку сигналов рубит. Агарвал - молодец. |
Quote:
http://www.youtube.com/watch?v=l6KmvP-Kwro http://www.terraelectronica.ru/news_postup.php?ID=2863 Японец на F4 дискаверине запилил медиа плеер http://www.youtube.com/watch?v=0ETyFmAMFjY Исходники открытые ... |
Quote:
|
Quote:
|
Вывод явно не в пользу пЫк. А если еще прислушаться к psb ...
|
| All times are GMT +4. The time now is 00:04. |
Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.