faqs.org.ru

 Главная > Электроника и компоненты >

EMBEDDED FAQ: Микроконтроллеры

Секция 2 из 2 - Предыдущая - Следующая

Вопросы по PIC

>Q: Какие кросс-средства есть для PIC и где их взять?

[еще не написано]

>Q: Компилятор HiTech выдает сообщения об ошибках там где он их раньше не выдавал, или там где их явно нет.

A: Михаил Евстафьев
Первое - истек срок работы демо версии. Второе - компилятору нужно максимум свободной памяти в ДОС. Hесколько килобайт могут радикально улучшить его работу. Поэтому никогда не запускайте его из ДОС оболочек типа NC, VC и т.п. Лучше всего вызывайте его из Windows напрямую.

>Q: Мне не удается повторно запрограммировать кристалл с УФ стиранием. Стираю его так же как и все другие кристаллы, а программатор сообщает что кристалл не чистый

A: Михаил Евстафьев
Случайно или преднамеренно был установлен бит защиты...

>Q: Странно себя ведет RA4 сконфигурированный на выход

A: Михаил Евстафьев
Этот бит порта A имеет выходной буфер с открытым стоком...

>Q: PORTA как то странно работает на выход, биты запрограммированные на выдачу лог 1 самопроизвольно переходят в лог 0?

A: Михаил Евстафьев
Eсли Вы работаете с кристаллом имеющим встроенный АЦП, то скорее всего Вы не проинициализировали регистр ADCON, и PORTA (и PORTE там где он есть) остались сконфигурированы в режиме аналоговых входов.

>Q: Странно ведет себя бит порта при работе в двунаправленном режиме или при имитации выхода с открытым стоком, при переключении его на выход он выдает не тот сигнал, что я записал в него ранее.

A: Михаил Евстафьев
Это из-за особенностей схемотехники портов PICов... См. примечание на стр..

>Q: Странно ведет себя бит порта сконфигурированный для работы со спецфункцией в двунаправленном режиме (например в режиме I2C), он самопроизвольно меняет направление (вход/выход) вовсе не в соответствии с алгоритмом работы спецфункции (например вызывает блокировку шины I2C).

A: Михаил Евстафьев
Это из-за особенностей схемотехники портов PICов... См. примечание на стр...

>Q: Можно ли перепрошить программную память FLASH PICов через интерфейсы RS232, I2C, SPI и др.?

A: Михаил Евстафьев
Да ...

>Q: Программа ранее разработанная для OTP PIC16C77 и отлаженная в нем не работает в FLASH версии PIC16F877. Почему, ведь это 100% аналоги, исключая EEPROM у F877.

A: Михаил Евстафьев
Включен режим низковольтного внутрисхемного программирования (LVP) в байте конфигурации кристалла.

>Q: Как с помощью PicStart+ запрограммировать PIC17C756? Почему не удается это сделать с "фирменным" адаптером для PicStart+ для PLCC68 корпусов?

A: Михаил Евстафьев
Hужно изготовить адаптер по схеме...

>Q: А можно прочитать PIC, если у него установлены биты защиты ?

A: Алексей Владимиров
По-разному для разных кристаллов.

Для PIC16C5X/PIC12C5XX адреса 000-03F можно считать (и допрограммировать) и после установки бита защиты. Ссылка на эту особенность есть в фирменной документации.

Для PIC16C8X существует метод взлома, опубликованный Давидом Тайтом на http://www.brouhaha.com/~eric/pic/84security.html. Аналогичный метод для PIC16C8X/PIC16F8X используется в программаторе PICPROG фирмы Телесистемы http://www.telesys.ru/english/picprog.htm. Можно воспользоваться и сервисом, предлагаемым на http://u1.chat.ru/hack84.htm. Возможно, эти методы применимы и к новым PIC16F8xx.

Для PIC16C61/71 существует метод взлома, описанный Дежаном Калевичем (ссылка перестала работать)

Для других PIC пока ничего, кроме физических методов считывания (электронный микроскоп и т.п.), мне не встречалось. Еесли возникает задача считывания, можно обратиться, например, на http://www.mts.net/~tgrand/index.html

 


Вопросы по SCENIX

>Q: Какие кросс-средства есть для SCENIX и где их взять?

A: Алексей Владимиров
Подборку ссылок на кросс-средства для Scenix можно найти на http://www.svtehs.com/ru/scenix.htm#Development software.

Бесплатных ассемблеров по сути два - SASM, http://www.scenix.com/tools/index.html от Scenix и MPASM, http://www.microchip.com/10/Tools/pTools/MPASM/index.htm от Microchip, к которому нужно добавить макроопределения команд Scenix, http://www.svtehs.com/sxdefs.inc

Приличный программный симулятор один - SxSim, http://www.brouhaha.com/~eric/scenix/sxsim/. Поддерживает только SX18/28, для SX48/52 есть только внутрисхемные эмуляторы, о которых речь пойдет чуть ниже.

Основных компиляторов C для SX два, оба вполне работоспособны и в бесплатном режиме. C ftp://ftp.htsoft.com/hitech/demo/picdemo.zip можно скачивать триальную версию Hitech PIC C, которая работает 21 день, а потом придется скачать заново. А с http://www.geocities.com/SiliconValley/Station/7733/ можно скачать бесплатный AS2SX - дополнение Hitech PIC C для работы с SX. Второй компилятор С и C++ - С2С, http://www.geocities.com/SiliconValley/Network/3656/c2c/c.html Слегка ограниченная версия бесплатна, полная стоит $45. Здесь же есть неплохое сравнение эффективности компиляторов C для PIC и SX.

Для приверженцев PASCAL есть и его компилятор - P2C, http://www.geocities.com/SiliconValley/Network/3656/p2c/p.html, урезанная версия бесплатна.

Интегрированных оболочек три: SX-DEV, SX-KEY и MPLAB.

SX-DEV, http://www.svtehs.com/ru/sxdev.htm представляет собой оболочку, объединяющую программатор/внутрисхемный эмулятор SX-DEV, внешний ассемблер MPASM или SXASM, внешний симулятор SXSIM и встроенный софт для обеспечения всех режимов эмуляции. Стоит $150, в комплект входит собственно программатор/внутрисхемный эмулятор, модуль реального времени и софт.

SX-KEY, http://www.sxtech.com/developmenttools.asp - это софт программатора/внутрисхемного эмулятора SX-KEY. Полностью "вещь в себе" - никаких внешних программ подключить нельзя, аппаратура не позволяет отлаживать кристаллы при низком напряжении. Однако пользоваться можно. $149.

В качестве интегрированной оболочки можно использовать и MPLAB, добавив к MPASM файл макроопределений SX, компилятор Hitech PIC C интегрируется туда штатным образом, компиляторы C2C++/C2C и P2C интегрируются в MPLAB при помощи C2C++/C2C/P2C Rocket, http://www.geocities.com/SiliconValley/Network/3656/rocket/index.html. Однако встроенным в MPLAB симулятором и программатором PICSTART для работы с SX воспользоваться не удастся.

>Q: Чем запрограммировать SX ?

A: Алексей Владимиров
Лучше всего воспользоваться программатором SX-TIPS, http://www.svtehs.com/ru/sxtip.htm, его можно купить там же, где и сами кристаллы. Можно собрать программатор самому - например, по документации от Sсenix, http://www.scenix.com/virtual/download/isp.html или, например Fluffy, http://www.codepuppies.com/~ben/sens/pic/sx/ или заапгрейдить COMPIC-1, http://www.geocities.com/SiliconValley/Station/7733/, переведя его на внешнее питание, добавив транзисторный ключ и заменив софт.

>Q: Что меньше потребляет, PIC, SX, или AVR ?

A: Алексей Владимиров
Вот сравнение при одинаковой производительности (то есть тактовая PIC в 4 раза больше, чем для SX и AVR) следующих похожих по параметрам 28-выводных микроконтроллеров с флеш:
PIC16F872, http://www.microchip.com/Download/Lit/PICmicro/16F87X/30221a.pdf (2Kx14 флеш, 128 байт ОЗУ, 5 входов АЦП, 1 ШИМ, 3 таймера, 28 выводов)
AT90S4433, http://www.atmel.com/atmel/acrobat/doc1042.pdf (4Kx8 флеш, 128 байт ОЗУ, 6 входов АЦП, 2 таймера, 2 ШИМ, 1 UART, 1 компаратор, 28 выводов)
SX28, http://www.scenix.com/products/datasheets/sx28_1_19.PDF (2Kx12 флеш, 136 байт ОЗУ, 1 таймер, 1 компаратор, 28 выводов)

Сравниваются типовые значения тока потребления, указанные в даташитах, при нормальной температуре c кварцевым резонатором при минимальном питании для данной частоты.

Потребление 28-выводных флеш микроконтроллеров
Условия PIC AVR SX
PIC, AVR и SX в power down 2.5В, WDT включен ~10 мкА ~10 мкА ~10 мкА
PIC на 32 кГц 2В, AVR и SX на 32 кГц 2.5В ~15 мкА - ~100 мкА
PIC на 4 МГц 2В, AVR и SX на 1 МГц 2.5В ~0.7 мА ~1 мА ~1 мА
PIC на 10 МГц 3В, AVR и SX на 2.5 МГц 3В ~2.5 мА ~2 мА ~2 мА
PIC на 20 МГц 4В, AVR и SX на 5 МГц 3В ~6 мA ~4 мА ~4 мА
PIC на 48 МГц, AVR и SX на 12 МГц 3В не работает ~8 мА ~10 мА
PIC на 60 МГц, AVR на 15 МГц 5 В, SX на 15 МГц 3В не работает ~24 mA ~15 мА
PIC на 200 МГц, AVR на 50 МГц, SX на 50 МГц 3В не работает не работает ~37 мА
PIC на 300 МГц, AVR на 75 МГц, SX на 75 МГц 5В не работает не работает ~100 мА

 


Вопросы по C166/ST10

>Q: Какие кросс-средства есть для C166/ST10 и где их взять?

A: Сергей Борщ
На http://www.keil.com можно скачать демо uVISION2.

>Q: Что сейчас производится из C166/ST10 и где их купить ?

A: Сергей Борщ
Сайт Infineon http://www.infineon.com/products/micro/micro.htm

Я получил такую справку в Интехе, они представляют Infineon Technologies AG, так теперь Сименс-полупроводник называется, в Москве их тел (095)451-86-08,451-97-37, а мне на вопросы мылом отвечал Владимир: Vlad :vc-intec@aha.ru

Сейчас из кристаллов с FLASH-памятью производятся SAB-C163-16FF,
SAB-C163-16F25F, SAK-C167CS-32FM и в ближайшее время выйдут
SAK-C161CS-16FF, SAF-C163T-16FF, вслед за ними выйдет SAK-C164CH-8FM.
Все кристаллы работают на 25 мГц и имеют 5 В FLASH различного объема.
Так, поясняю. SAB - 0+70, SAF - -40+80, SAK -40+100 (+125). Размер FLASH памяти 2 в степени х (цифра перед F) килобайт. 161 серия на сайте обозначена как 16МГц (8MIPS). 163 - без АЦП и CAPCOM, остальные имеют их, плюс CAN.

Цены на SAB-C165-LM - $24.06, SAB80C166 - $32.94, SAB-C167-LM - $29.80 штучно в Макро Тим, SAK-C167CS-32FM - 120 DM в Интехе, его аналог ST10F168 в Платане за 4 недели, цена ~$75.

ST10C172 аналога у Siemens не имеет. Hо учесть надо то, что у него флешки нету, а значит, фактическое быстродействие не превышает 1.5*Tcycle внешней памяти (считаем 50% команд - "длинные", это нормально). При 45нс флешке реально выжать 70нс Tcycle со всеми временами предустановок, удержаний и фактическую производительность 10MIPS, что примерно соответствует фактической производительности F168, поскольку длинные команды из внутренней 32-bit флешки выполняются за то же время, что и короткие. ST10C172 есть смысл использовать с быстрым SRAM в качестве программной памяти.

 


Вопросы по MSP430

>Q: Чем запрограммировать MSP430 ?

A: Сергей Борщ
Ввиду закрытости алгоритма программирования через JTAG, только фирменными программаторами от TI. Есть, правда, еще вариант купить внутрисхемный JTAG эмулятор (кто их делает - можно найти на сервере Texas Instruments http://www.ti.com).

Встречный вопрос: какой именно кристалл ? Если интересуют однократные или отладочные (EEPROM-версии), то они программируются программатором MSP-430PRG, описание работы с ним, его схема (не очень сложная, но по-моему уж больно навороченая - куча транзисторов там, где можно без них) находится в файле SLAU026.PDF MSP430 family programing adapter manual. Файл лежит на сервере TI по адресу http://www.ti.com/sc/docs/products/micro/msp430/docs.htm Программное обеспечение последней (3.02) версии лежит по адресу http://www.ti.com/sc/docs/tools/controllers/msp430freetools.html под вывеской Parallel Programmer. Готовый программатор у дистрибуторов стоит около $250

Если есть желание запрограммировать флеш (на данный момент существуют в природе только PMS430F110, PMS430F112, PMS430F1101, PMS430F1121), то ПО программатора для них встроено в С-SPY пакета от кита MSP-FET430x110. Полная версия пакета, с документацией, схемой самого кита (74HC244, 2 транзистора, стабилизатор) и IAR-овским (ver 2.31) С (ограничение 2К кода), ассемблером (без ограничений), линкером (ограничение 4К кода), симулятором и внутрисхемным JTAG-эмулятором лежит на той же страничке http://www.ti.com/sc/docs/tools/controllers/msp430freetools.html под вывеской Kickstart, full version. Весь Kickstart (в комплекте 2 кристалла PMS430F1121) стоит у дистрибуторов около $70.

В настоящий момент существует 2 версии кристаллов:

1) PMS430F11xx всех партий программироваться через загрузчик, видимо, не могут.
MSP430F1121IDW партий 03AJX4T, 03AK16T, 05ACR4T, 05ACV2T, 05AD2LT, 05AD2XT, 05ADY4T, 05ADY5T лечению тоже не поддаются и отличаются от предыдущих тем, что в них исправленна ошибка FLASH12 (см. errata). Во всяком случае, в errata сказано Bootstraploader: Not functional
2) MSP430F1121 партий 05C24NT, 05C24RT, 05C24TT и MSP430F1121IPW 'почти работают'. В них также исправлены все известные ошибки Flash-модуля и компаратора. Что касается загрузчика, то Software patch required. Программируются ли кристаллы из первой группы с помощью этого patch - пока неизвестно. Проведу эксперимент, о результатах сообщу.
!! Hа данный момент в errata других партий не указано. Возможно, что следующие партии окажутся с полностью рабочим загрузчиком.

По адресу http://www.ti.com/sc/docs/psheets/abstract/apps/slaa096.htm лежит документ Application of Bootstrap Loader in MSP430F11x - Hardware/Software Proposal размером 389К, а также 37К архив с примером программы на РС (Visual C++, консольное приложение) для программирования MSP430F11x используя именно bootstraploader. Приведен один из вариантов схемы программатора (HC14, стабилизатор 3В, компаратор, резисторы, можно сильно упростить). По сравнению с предыдущим описанием изменен формат пакета и некоторые команды. В документе утверждается, что в настоящее время прошивка загрузчика исправлена. Для старых кристаллов с полудохлым загрузчиком в том же архиве предлагается patch, который грузится в ОЗУ контроллера силами полуживого загрузчика и берет управление на себя. Кстати, такой же промах у них и в новом кристалле MSP430F149IPM (во всяком случае, в существующих данный момент партиях 04DVLLT, 06CF0NT и 06CF10T).

Сравнение datasheet от января 2000г (slas241b) и от июня 2000г (slas241c) показало, что адрес начала сегмента Flash Data ИЗМЕHЕH с 0xEF00 на 0x1000, а сегмента BootRom с 0x0800 на 0x0C00. Теперь адреса этих сегментов в кристаллах F11x1 совпадают с адресам этих же сегментов в F14x, F13x. Hачиная с какой партии введено это изменение, как всегда, не указано.


Вопросы по микроконтроллерам Zilog Z8

>Q: Что такое микроконтроллеры Z8, какие у них особенности и области применения ?

A: Андрей Мозжевилов
Микроконтроллеры Z8 - это 8-ми разрядные СISC-контроллеры. На борту от 124 до 220 регистров общего назначения, которые могут адресоваться непосредственно по адресу или как регистр в текущем банке регистров. 4 младших байта в регистровом файле отведено под порты ввода-вывода. Старшая область в 16 байт отведена для регистров специальных функций. Архитектура не содержит аккумулятора как такового. В качестве приемника результата может выступать любой регистр, что уменьшает количество пересылок и сокращает объем кода программы.

Определенные модели МК Z8 позволяют подключать внешюю память данных и/или программ. Стек может находится как во внутреннем, так и во внешнем ОЗУ. Архитектура предусматривает только 6 прерываний. Обычно - 4 от внешних сигналов, и 2 от таймеров. Если добавляется источник прерывания (например UART) то его прерывания садятся уже на существующие вектора, как следствие - нужно анализировать дополнительно источник прерывания программно. Более подробно об архитектуре Z8 прочитать на http://www.zilog.com

Облаcти применениия практически любые, не требующие очень высокого быстродействия. По приведенным параметрам потребления можно сказать, что Z8 вполне можно применять в устройствах с батарейным питанием. Напимер для Z86E04 заявлено потребление 80uA при 3.2V и 32kHz в активном режиме и 1uA в режиме останова. Но поскольку я не сталкивался с подобными задачами применительно к Z8, то и утверждать здесь ничего не буду.

> Q: Какие особенности отладки устройств с Z8 существуют? При помощи чего отладить программу для Z8? Как и чем можно запрограммировать Z8 ?

A: Андрей Мозжевилов
Микроконтроллеры Z8 в своем большинстве выпускаются только с масочным или однократно программируемым ПЗУ. Выпускаются несколько типов Z8 с УФ-EPROM, но цена на них очень высока по сравнению с OTP, и они подходят, разве что для проверки устройства на конечном объекте, когда невозможно применение эмулятора.

Большинство устройств с Z8 (особенно младших моделей Z86E02-08, которые не поддерживают внешнее ПЗУ) можно отладить только при помощи эмулятора. Политика Zilog в области ценообразования на эмуляторы очень дружественна именно для разработчиков. Эмуляторы продаются по довольно смешным ценам, если сравнивать их с ценами на эмуляторы для других семейств МК (PIC, AVR...). По моим сведениям цена на эмулятор, поддерживающий МК от Z86E02 до Z86E40 составляет менее $100.

Эмулятор является и программатором в одном флаконе. Эмулятор поддерживают 2 оболочки - ZDS и ICEBOX (возможно есть и другие сторонних фирм). О ZDS будет сказано подробнее ниже. ICEBOX - достаточно примитивная оболочка. Особого сервиса не замечено, но для несложных проектов ее вполне достаточно.

При использовании эмулятора нужно иметь ввиду некоторые особенности портов ввода/вывода эмулируемого МК и того чипа, который используется в эмуляторе. Например, стоит обратить внимание на тип входа, который в МК может не иметь триггера Шмитта, а в эмуляторе иметь.

> Q: А на чем, собственно, программировать для Z8?

A: Андрей Мозжевилов
Ответ на этот вопрос, возможно, не является всеобъемлющим. Я попытаюсь немного осветить только те средства, с которыми я пытался работать или работал. Их не так и много.

1.Пакет ZDS (Zilog Development Studio). Свободно лежит на http://www.zilog.com в разделе Development Tools для Z8. Это интегрированная среда разработки, которая включает в себя ассемблер, отладчик и много разных фенечек по организации и отладке проекта. Поддерживает все виды эмуляторов и соответственно отладку на уровне исходных текстов и прочие прелести. Я с ней не работал, поэтому ничего конкретного сказать не могу. И почему же я с ней не работал, если она такая вкусная то? Ах да :-), ну конечно, а где собственно Си? А Си затерялся в недрах могучей корпорации Zilog. Немного подробнее на эту тему.

Внимание!!!, информация на август 2000 г. На сайте Zilog есть ссылка на компилятор, который является компонентом ZDS. В базовую (бесплатную) версию ZDS он не входит, потому как за него хотят денег, иначе с чего бы ссылка отправляла за компилятором к дистрибьюторам? Письмо в Zilog подтвердило, что компилятор доступен через представительства, но как выяснилось, в Выборгской Гамме, которая и является таким представителем в России, возможности приобрести компилятор нет (пока). Отсюда у меня возникает цепочка логических выводов - ах, еще нельзя ? - а, ну это значит его только выпустили - да,да, и версия небось 0.00 бета - глюкодром, наверняка, полнейший - а нафига мне это надо, да еще за деньги? Может такие выводы где-то и несправедливы, но я для себя так решил :-) Если бы проект был простой и хватило бы ассемблера, и было бы время и желание этот ассемблер досконально изучать, то тогда без вопросов ZDS.

2.На сайте Zilog предлагается еще один пакет для разработки. Вот выдержка из readme "ZiLOG Z8/Z8Plus Tool Set Release 4.05". Файл назывался z8cc405p.exe и занимал около 2.8M В пакет входит компилятор Си, ассемблер, линкер, библиотекарь, документация в pdf. Никакой IDE нет. Все работает из командной строки. С этим компилятором мной был реализован проект средней сложности с объемом бинарного кода около 4К.

По результатам можно сказать следующее:
а) Компилятор в некоторых случаях создает неправильный код. В процессе написания программы было поймано 2 такие ситуации на отметке 265 байт бинарного кода. Глюки были устранены отключением оптимизации. При дальнейшей работе с отключенной оптимизацией глюки не отмечены.
б) Оптимизации, можно сказать нет. При отключении оптимизации при объеме кода в 265 байт, увеличение лишь на 4 байта. Поэтому и включать ее не особенно и нужно.
в) Код получается неплохой. Заметны места, где можно сделать лучше, но в общем все довольно не плохо.
г) В пакет включены исходники библиотечных функций, большинство на Си.
д) Линкер имеет кучу команд, позволяющих линковать, как душе угодно.

Как отлаживаться? Здесь все хуже. Отладки на уровне исходных тесктов добиться не удалось. Оболочка для поддержки эмулятора ICEBOX в принципе имеет возможность отладки на уровне исходника, но создать нужные для этого форматы файлов не получилось. Ответ от Zilog на письмо по этому поводу подтвердил это. Так что пришлось загружать hex-файл. При отладке функции ее адрес можно найти в map-файле и поставить точку останова в нужном месте, сравнивая дизассемблированный текст в окне отладчика с lst-файлом, созданным компилятором.


Дополнения, пожелания присылайте Алексею Владимирову, avlad@mailbox.riga.lv

Секция 2 из 2 - Предыдущая - Следующая

Вернуться в раздел "Электроника и компоненты" - Обсудить эту статью на Форуме
Главная - Поиск по сайту - О проекте - Форум - Обратная связь

© faqs.org.ru