Народ, давайте делиться опытом по созданию устройств на микроконтроллерах, впечатлениями от тех или иных кристаллов каких угодно фирм, методами/приёмами их программирования и др., делиться софтом, схемами...
Я тут уже немного поговорил с одним человеком
Microchip MPLab.
Подключайтесь...
как только будет что рассказать, обязательно всё расскажу и покажу
Чего-то совсем глухо... 
Как в немецком танке...
Eladan, тебе еще MPLab нужен? Возможно в грядущий понедельник эта софтина у меня появится (если меня не подведут).
Я, вроде как, и сам заинтересовался, но тоже жаба душит качать по внешнему трафику. А то она еще и сама денег требовать начнёт...
CQ-CQ: Люди! Давайте же активнее!
Добавлено: Я, к стати, как-то в начале месяца на FTP случайно заметил папочку "PIC_18". Поинтересовался, чем там люди занимаются и попытался их сагетировать на разговор в этой теме. Как видим, результат - 0.
Добавлено: Eladan, у тебя совсем нет софта для компиляции?
| QUOTE |
| Eladan, тебе еще MPLab нужен? |
угу
| QUOTE |
| Чего-то совсем глухо... Как в немецком танке... |
Часто бывал в немецких танках...
Дак мы и сейчас в нем, по всей видимости...
На всякий случай залил тебе MPAsm + DataSheet на него + DataSheet по всем внутренним устройствам кристаллов среднего семейства PIC-ов (на русском языке!) incomingXXI/=ForPeople=/4Eladan
микроконтроллеры это конечно круто, но, по-моему, это немного специализированная тема. Большинству она не интересна!
А где ж нам её обсуждать, в УФ, что ли, или вообще далой нас неформалов с форума? Это ж самый подходящий раздел.
Да я не против, сам с МК дело имел, просто зная специфику думаю дело дойдет до программирования микроконтроллеров и тут уже сложно с разделом будет определиться
Развивайте пока тему, посмотрим потом куда ее поместить.
| QUOTE |
| ...тут уже сложно с разделом будет определиться |
А на мой взгляд, из всех имеющихся форумов этот пока что самый подходящий.
| QUOTE |
| Развивайте пока тему, посмотрим потом куда ее поместить. |
Это точно... Надо стараться развивать...
Я вот видимо скоро внесу свою лепту. Вы уж меня извините, но свои проекты на контроллерах по работе я публиковать не буду (коммерческая тайна - по голове от начальства получу). А вот собственные (домашние) - пожалуйтса. Правда они могут оказаться неинтересными. Если кому интересно, могу выложить:
- модуль управления УКВ ЧМ радиостанцией (PIC, AVR - прогресс 20% и 40% соответственно)
- частотомер (AVR - прогресс 80%)
Сейчас работаю над проектом
записной книжки (дисплей Nokia3310, flash-память 0,5...2Mb). Строится она на AVR-ке ATtiny26L (прогресс 70%)
Когда закончу проект - сообщу.
Во-Во Интересно! Оссобенно про записную книжку!
Правда сам-то я пытаюсь заниматься немного другой темой, робототехникой. Безполезно, но интересно. Правда вчера судя по всему был удачно спалён 3-й pic (не по вине програматора), так что с программированием пока придётся повременить ввиду недешёвости микроконтроллеров, придётся занятся пока другими блоками. Вот.
Хочу побольше узнать об этом (просто интересно), что посоветуте почитать новичку и с чего начать?
С программированием проблем абсолютно никаких, свободно могу писать на асме. А вот с железом познания отдаленные.
Сам новичёк в этой области. Ну, в основном, вся инфа бралась из журналов "Радио" и из интернета, ну
вот например неплохой сайт...
| QUOTE (Rander,32-09-3004 @ 11:01) |
| QUOTE | | ...тут уже сложно с разделом будет определиться |
Сейчас работаю над проектом записной книжки (дисплей Nokia3310, flash-память 0,5...2Mb). |
А у меня уже есть записная книжка и тоже дисплей от 3310 и флешь память там еще он звонить и вибрировать может кнопок штук 16

аккамулятор - куда ж без него

ну вообщем ты понял.
| QUOTE ("Megabit тут пишет...") |
| А у меня уже есть записная книжка и тоже дисплей от 3310 и флешь память там еще он звонить и вибрировать может кнопок штук 16 аккамулятор - куда ж без него ну вообщем ты понял. |
/Этого человека я знаю очень давно/
Юмор я оценил

, но давай по существу...
Теперь, касаемо
MPLab. Толькочто с работы приполз... и сразу с народом делиться. Налетай... (
incomingXXI/=ForPeople=/MPLab/)
| QUOTE (Aleksey писал...) |
| Хочу побольше узнать об этом (просто интересно), что посоветуте почитать новичку и с чего начать? |
В книжных магазигах периодически появляются книги, содержащие достаточное количество информации по архитектуре отдельных семейств МК. (Насколько я понимаю, если я сообщу название конкретного магазина, это будет рекламой. Поэтому, кому интересно - Private Massege, pls.)
Однако, лучше родного даташита не может быть ничего. Лично я 90% информации черпаю именно от туда.
Я не уверен, что имею моральное право советовать, но я все же настоятельно рекомендую AVR (Atmel). Безусловно, если Вы хотите ознакомиться с несколькими семействами, это большой плюс. Но если хотите получить скорейший результат/опыт без лишних проблем... прислушайтесь к моему совету. Замечу, что я начинал с MCS-35/48/51 и 1820ВЕ1, а сейчас вот - AVR. Разница между PIC и AVR весьма ощутимая... Все познается в сравнении. А по большому счету, хочу сказать, разрабатывайте Вы на чем угодно (хоть на 1878ВЕ1), только на месте не стойте - и PIC, и AVR достойны Вашего внимания.
С чего начать? На мой взгляд, начать надо с ознакомления с архитектурой кристалла: состав ядра, ассортимент периферийных устройтсв и др. Этот этап особенно важен.
Знание системы команд (в том числе, если пишите на Си), хотябы обзорное, также необходимо.
Буду рад ответить на Ваши вопросы! Удачи!
Alchemist
15.9.2004, 19:45
Есть описание всех Microchip'овских контроллеров (на их CD от 2002(3?) года). Также вроде был компилятор с языка C для PIC18.
Надо кому?
| QUOTE (Alchemist) |
| Есть описание всех Microchip'овских контроллеров (на их CD от 2002(3?) года). Также вроде был компилятор с языка C для PIC18. |
Давай! Заливай - пригодится.
Alchemist
17.9.2004, 9:15
| QUOTE (Rander,15-09-04 @ 18:50) |
| QUOTE (Alchemist) | | Есть описание всех Microchip'овских контроллеров (на их CD от 2002(3?) года). Также вроде был компилятор с языка C для PIC18. |
Давай! Заливай - пригодится. |
Залито в /incoming/=For_People=/Microchip/
Вопрос к
Rander'у, как к главному специалисту по AVR'ам

. А что из AVR'ов можно достать в Новгороде, и что они из себя представляют, и сколько примерно стоят, в двух словах, если не сложно?
Да, и чем их прошивать?
Если у кого появиться острое желание ответить, только приветствуется!
| QUOTE (Eladan) |
Вопрос к Rander'у, как к главному специалисту по AVR'ам. А что из AVR'ов можно достать в Новгороде, и что они из себя представляют, и сколько примерно стоят, в двух словах, если не сложно? Да, и чем их прошивать? |
Я знаю, что в ТРД лежат
AT90S2313, 8515..., но цены у них там... мягко выражаясь, завышены

. Мне из Питера привозили 2313 за 60р (а не за 124)... У них мой знакомый заказывал
ATmega8 - так она ему обошлась всего за 110р. Парадокс...

Для сравнения, в дешевых питерских и московских магазинах эта штуковина стоит порядка 80р - имеет смысл заказать.
На счет
чем прошивать. Я как-то сливал на ФТП
PonyProg2.06 и схему программатора
SI-Prog... Этим наборчиком лично мне прошивать нравится больше всего
Удачи!
| QUOTE |
имеет смысл заказать.
|
А кому заказывать то?
| QUOTE (Eladan) |
| А кому заказывать то? |
... Дак в ТРД (дяде Васе

). Насколько я понимаю, теперь они там заказанный товар сразу (прямо при тебе) в И-нете ищут и, если смогут привезти, говорят в какую сумму это выльется. Дальше, можно соглашаться / не соглашаться - дело хозяйское. А то раньше приходилось самому брать цифру "с потолка" (сколько не жалко

)... короче, теперь по другому

.
Чё-то я не уловил, то есть лежащие у них в офисе микросхемы стоят дороже, чем они же, заказанные из Питера, у них же???
| QUOTE (Eladan) |
| Чё-то я не уловил... |
Нет. Мне привозил знакомый (зимой). А в ТРД, видать, эти микросхемы у них давненько лежат закупленные еще по старым ценам. А еще это может быть вызвано тем, что на Atmel-е разработали новую технологию производства flash-памяти (она занимает около 70% поверхности красталла). Вот поэтому новые "большие" кристаллы стоят как старые "маленькие"...
Кстати, ценовые перекосы в ТРД иногда могут оказаться в пользу покупателей. Я, например, как-то раз отхватил PIC16F877-20PI за 190р, тогда как самый дешевый удавалось найти в И-нете за 185р.
Для того, чтобы можно было ориентироватся по ценам, рекомендую сходить на поисковик
e-find. Он автоматически шарит по трем - четырем десяткам электронных магазинов. Полезная штука.
Если надумаешь заказывать 2313, то в ТРД, разумеется, начнут предлагать свои неликвиды. Но можно попытаться обойти это, заказав 2313, скажем, в другом корпусе (soic, а не dip) или на другой (расширенный) диапазон питающих напряжений... Попытка - не пытка.
Я вижу тут народ более менее шаристый собрался, может подскажете, где можно эмулятор найти, чтобы хотябы попробовать че нить попрограммировать для микроконтроллеров, в живую не хочу, а то я тут смотрю еще и спалить можно.
Спалить можно, если руки растут из одного места, как у меня...
| QUOTE (Frozik, 29-09-04 @ 23:40) |
| где можно эмулятор найти, чтобы хотябы попробовать че нить попрограммировать для микроконтроллеров |
Для AVR-ов могу посоветовать AVR-Studio3.56 (4.0 - прожорливая, но вроде как безглючная). Я уже достаточно долго пользуюсь 3.56 и меня все вполне устраивает.
Для PIC-ов есть MPLab. Видел, что хорошая штука, но я на PIC-и я временно "забил" - очень уж мне там неудобно. Конечно, если жизнь заставит, то...
Все это хозяйство можно взять на FTP
incomingXXI -> ForPeople -> МикроконтроллерыP.S. А нашего полку все прибывает и это очень радует!
На самом деле тема более чем интересная. Еще в универе мне предложили попробовать свои силы для какого-то сигнального микропроцессора из Texas Instruments, но в то время из за незнания си, мне пришлось это все дело на асме делать, долго не выдержал и скис ;o(. Но сейчас, появилось и время и желание огромное, просто не знал с кем так можно посоветоваться.
| QUOTE (eladan, 13-09-04 @ 01:12) |
| ну вот например неплохой сайт... |
а где сайт-то?
Дык там в посте кликни на слово "вот"
| QUOTE (eladan, 01-10-04 @ 19:30) |
| Дык там в посте кликни на слово "вот" |
Извиняюсь, в глаза продолбился

А по Атмелам не находил подобного?
Гхм... Такой вопросик... А дизассемблера нету? Конкретно интересует под AT90S1200. Ну и чтобы код делал человеческий, а не элементарно железно адресами все писал, разумеется...
| QUOTE (Dr.D,05-10-04 @ 14:19) |
| Гхм... Такой вопросик... А дизассемблера нету? Конкретно интересует под AT90S1200. Ну и чтобы код делал человеческий, а не элементарно железно адресами все писал, разумеется... |
Хорошо б еще и комментарии сам бы писал...
(извиняюсь за плоский юмор)А если серьезно, то я пока еще таких не встречал

, да и особой необходимости не было.
Если что-нибудь раздобудешь - поделись, pls.
Ок, если чего найду. Пока немного погонял гугль - молчит, партизан

Скорее всего мне кажется к IDA есть смысл поискать добавок, но не знаю...
Полиграф Полиграфыч
10.10.2004, 1:17
Здравствуйте все!
Давно слежу за обсуждением данной темы, но подключаюсь к разговору только сейчас, так как программатор для PIC16F84A собрал пару дней назад. С командами разобрался, но когда глянул даташит на MPASM, то понял, что почти ничего не понял. Там оказывается есть команды ветвления и циклов (и ещё много чего), а в ASM-файлах (которые качнул из интернета на пробу) эти ветвления и не применяют (всё из регистров туда-сюда данные пересылают).
Для программирования использую IC-Prog, так она мне при загрузке HEX-файлов выдаёт: ФАЙЛ НЕ СОДЕРЖИТ ID ИНФОРМАЦИИ ДЛЯ УСТРОЙСТВА.
А в даташите на MPASM про ID пишут: "_ _IDLOCS - Установка значения ID. Для микроконтроллеров PIC12CXXX, PIC14000 и PIC16XXX указывается 4 шестнадцатиразрядных полубайта ID." Вот и пойми, что эти микрочиповцы сказать хотят.
И вот ещё вопросик. Это кусок программы:
TMR0 EQU 01h
PC EQU 02h
STATUS EQU 03h
FSR EQU 04h
Можно ли было эти регистры в других ячейках разместить? И назвать другими именами. Например status назовём registr (но будем в своём уме подразумевать, что он выполняет функции регистра status).
C EQU 0h
DC EQU 1h
Z EQU 2h
PD EQU 3h
TO EQU 4h
RP EQU 5h
Почему мы так уверены что это биты регистра status, их же ведь и по другому назвать можно (вроде бы).
Кстати, с помощью MPASM только PIC можно запрограммировать, или AVR, SCENIX, HOLTEK тоже имеют компиляторы для этого ассемблера?
Буду благодарен, если разъясните мои вопросы.
| QUOTE (Полиграф Полиграфыч, 10-10-04 @ 00:17) |
| IC-Prog, так она мне при загрузке HEX-файлов выдаёт: ФАЙЛ НЕ СОДЕРЖИТ ID ИНФОРМАЦИИ ДЛЯ УСТРОЙСТВА. |
ID - туда можно записывать любую информацию (четыре 4х-разрядных слова: 0123, например). Обычно туда пишут серийные номера или версии прошивки.
В принципе, можно шить и без него...
| QUOTE (он же...) |
| Можно ли было эти регистры в других ячейках разместить? И назвать другими именами. Например status назовём registr (но будем в своём уме подразумевать, что он выполняет функции регистра status). |
В других ячейках нельзя - эти адреса обусловлены аппаратным строением кристалла (хочешь обратиться к таймеру - обрашайся по указанному адресу и т.д.) А вот символьные переменные можно менять запросто, вот только народ обычно старается обозначать регистры в соответствии с их названиями от производителя. Поэкспериментировать-то конечно можно, вот только ты и сам потом запутаешься.
| QUOTE (-//-) |
| Почему мы так уверены что это биты регистра status, их же ведь и по другому назвать можно (вроде бы). |
Именно такие обозначения предлагает производитель, но обозвать их можно как душе угодно. Но опять же, возникнут проблемы с восприятием ситстемы команд...
| QUOTE (...) |
| Кстати, с помощью MPASM только PIC можно запрограммировать, или AVR, SCENIX, HOLTEK тоже имеют компиляторы для этого ассемблера? |
?!?!? Дык, MPAsm и есть компилятор. Ему просто исходный текст подсовываешь, а он его в машинные коды компилирует (транслирует, переводит).
[лекция=
] Ассемблер - это просто язык, как и множество других, для компиляции или интерпритации которых существует кучища компиляторов (интерпритаторов)...
[/лекция]Извини за лекцию-нотацию...
Кстати, сдесь озвучивалась тема про среду создания и отладки программ на PIC -
MP-Lab Я сам не разбирался еще, и пока не собираюсь.
Eladan наверняка владеет этим вопросом. Попробуй обратиться к нему.
А еще попробуй AVR (софтом и схемами обеспечу). Он и стоит ощутимо дешевле (если не в ТРД, то за 58 рублей достать можно AT90S2313).
Ты увидишь с первых шагов, что там
(это подтверждено моим практическим опытом!) намного удобнее...
Удачи!
| QUOTE |
| Eladan наверняка владеет этим вопросом. |
Неа, нифига я не владею этим вопросом. Некогдабыло разбираться

Да и вообще, заманил ты меня в свою секту ATMEL'опоклонников

. теперь вот в них разбираюсь.
А мне приятно это слышать... Единомышленники - это очень хорошо
Полиграф Полиграфыч
10.10.2004, 16:57
; описание опеpационных pегистpовTMR0 EQU 01hPC EQU 02hSTATUS EQU 03hFSR EQU 04h; pегистpы ввода/выводаCNTRLPORT EQU 05hDATAPORT EQU 06h; ячейки ОЗУSCRATCH EQU 0ChDIGIT EQU 0Dh; биты pегистpа STATUSC EQU 0hDC EQU 1hZ EQU 2hPD EQU 3hTO EQU 4hRP EQU 5hНасчёт битов регистра status:Как компилятор разберётся что это именно биты регистра status? Может мы подразумеваем, что это биты регистра cntrlport или dataport или scratch или digit? И как в таком случае определить биты других регистров?
А на каком языке вы программы пишите? Я тут наткнулся на сайт по AVR'ам, так там на Си пишут. Кстати, неплохой сайт
http://www.avr123.by.ru на мой не слишком профессиональный взгляд. Они там ссылочку дают на программку (~3 Мб), которая сама дорожки на печатной плате развести может, только схему надо нарисовать и всё. Так вот эта ссылка не работает, а программа такая мне бы не помешала. Может в курсе, где её взять?
Насчёт ассемблера:Мне приходилось писать программы для нашего советского К580ВМ80 (правда только на бумаге). Так там команды немного другие: mov a,b вместо movf f,d и так далее. Или под ассемблером понимают правила и последовательность указания заголовка, операционных регистров, ячеек ОЗУ?
| QUOTE (Полиграф Полиграфыч, 10-10-04 @ 15:57) |
| Как компилятор разберётся что это именно биты регистра status? Может мы подразумеваем, что это биты регистра cntrlport или dataport или scratch или digit? И как в таком случае определить биты других регистров? |
К сожалению, никак. За этим надо следить самому.
| QUOTE (...) |
| А на каком языке вы программы пишите? |
Я сейчас на ASMе. Бывало и на Си пописывал (кстати, среднее семейство PIC не ориентировано на применение к ним Си-кодинга). Впечатления следующие...
Достоинства Си1) хорошая читаемость кода (наглядно и просто разбираться в программе) - при больших объемах кода может оказаться очень важным, хотя, этого можно добиться и от ASM`а, если соблюдать определенные правила при составлении программ;
2) автоматизация работы с переменными, стеком, динамическое выделение памяти, организации работы подпрограмм и т.п.;
3) наличие
огромного числа библиотек (математические функции типа sin, cos, возведение в степень, драйвера под распространенные LCD индикаторы и даже по GPS-приемник).
4) возможность оптимизации кода (по объему или по скорости)
Недостатки Си1) расточительнейший расход памяти и процессорного времени (программы больше и тормознутее по сравнению с ASM)
2) для создание эффективных программ требуется хорошее знание структуры кристалла и, как это не парадоксально, ассемблера.
3) компилятор Си в отдельных случаях может несколько видоизменять порядок следования команд в процедуре, что отыскать весьма проблематично (это не для всех компиляторов).
4) отладка программ может оказаться проблематичной
Достоинтсва ASM1) возможность создания (при наличии определенного опыта) программ, обладающих предельной эффективностью, которая только может быть достигнута (малый объем, высокое быстродействие);
2) возможность создания программ, которые не могут быть созданы на Си в принципе (для этого в Си программах применяют ассемблерные вставки);
Достоинств меньше, но они имеют большое (иногда решающее) значение.
Недостатки ASM1) меньшая читаемость кода (несколько затрудненное восприятие больших программ), однако, при наличии исчерпывающих комментариев этим недостатком можно пренебречь;
2) полное или частичное отсутствие автоматизации процесса программирования, но это уже недостаток конкретного компилятора. Верхом мастерства компиляторостроения стал TASM 4.12 для процессора Z80 (он в процессе компиляции может реализовывать игровой процесс - питон буквоед

)
3) неудобства, связанные с заданием string-овых переменных и т.п. (опять все "выстрелы" к компилятору)
Вот такие впечатления...
| QUOTE (те же...) |
| под ассемблером понимают правила и последовательность указания заголовка, операционных регистров, ячеек ОЗУ? |
Ну, это скорее относится к общепринятым правилам составления ASM-программ, а сам язык - (на мой взгляд) это способ реализации рабочего алгоритма при помощи мнемонических имен (обозначений) инструкций (команд) конкретного процессорного ядра, составленных в определенной последовательности в соответствии с алгоритмом и принятыми правилами (это определение на достоверность не претендует, т.к. специального образования в этой области у меня нет - я самоучка, так сказать)
Приношу свои извинения тем, кому показалось, что я хотел выпендриться...
P.S.: Что-то размеры моих постов все больше и больше... Если есть пожелания - умерю свой пыл
| QUOTE |
| Так там команды немного другие: mov a,b вместо movf f,d и так далее. Или под ассемблером понимают правила и последовательность указания заголовка, операционных регистров, ячеек ОЗУ? |
Я зык асемблера принципиально отличается от других языков программирования те, что он является аппаратно зависимым языком, то емсть сильно зависит от конкретного процессора... Основы конечно везде одни и теже, но всё же нюансы существуют...
| QUOTE |
| P.S.: Что-то размеры моих постов все больше и больше... Если есть пожелания - умерю свой пыл |
Ничего, мы потом по ним учебник составим для начинающих
Полиграф Полиграфыч
11.10.2004, 18:57
[QUOTE] [К сожалению, никак. За этим надо следить самому]
Значит, при написании программы, кроме битов регистра status никакие другие биты определить нельзя?
Хочу поэкспериментировать со знакосинтезирующим ЖК индикатором. Может конкретную марочку подскажете, чтобы с русскими буквами, цифрами, и дешёвый, без наворотов. И чтобы его практически в любую конструкцию вставить можно было.
И как эти QUOTE в белую рамку выделять?
| QUOTE (Полиграф Полиграфыч, 11-10-04 @ 17:57) |
| Значит, при написании программы, кроме битов регистра status никакие другие биты определить нельзя? |
Можно все, что угодно... Дело в том, что компилятору абсолютно пофигу, какой бит в каком регистре ты ему задаешь. Все эти символьные переменные (status, C, PO и т.п.) для компилятора обычные целые числа. Разумеется, не следует пытаться изменять 10-й бит в восмиразрядном слове и обращаться к 1000000-му байту памяти.
| QUOTE (Полиграф Полиграфыч, 11-10-04 @ 17:57) |
| И как эти QUOTE в белую рамку выделять? |
Самый простой способ - нажать внизу данного поста (сообщения) "цитировать" и все... (обрати внимание на квадратные скобки)
Полиграф Полиграфыч
11.10.2004, 20:14
| QUOTE (Rander,11-10-04 @ 18:38) |
| Можно все, что угодно... |
Напиши, например, как задать биты регистра dataport.
2Полиграф Полиграфыч
Ты не правильно понимаешь суть. Ассемблер при компиляции просто подставит вместо С число 0h, а далее, что это будет определяется только операторами.
Полиграф Полиграфыч
11.10.2004, 21:56
Да это-то я понял. Мне непонятно в какой части программы надо определять биты регистра status, а в какой части биты регистра dataport. Меня интересует последовательность. Что нужно описывать сначала, а что потом. Или если я напишу:
C EQU 0h
DC EQU 1h
Z EQU 2h
PD EQU 3h
TO EQU 4h
RP EQU 5h
Тогда это будет справедливо для любого регистра?
BCF STATUS,RP ;Выбор банка 0
BTFSS DATAPORT,RP ;пропустить команду, если бит RP равен 1
Я так понимаю, что бит RP можно считать битом №5 любого реистра?
| QUOTE |
| Я так понимаю, что бит RP можно считать битом №5 любого реистра? |
ДА
Полиграф Полиграфыч
12.10.2004, 19:59
| QUOTE (Rander @ 10-09-04, 22:26) |
| На всякий случай залил тебе MPAsm + DataSheet на него + DataSheet по всем внутренним устройствам кристаллов среднего семейства PIC-ов [color=red](на русском языке!) |
Rander, залей ещё разок DataSheet по всем внутренним устройствам кристаллов среднего семейства PIC-ов (на русском языке!)