FAQ по микроконтроллерам MB90FXXX, MB91FXXX.
Вопрос, поставленный правильно, содержит большую часть
ответа.
| 16-bit Fujitsu MCU: |
| | MB90FXXX - F2MC-16LX series |
|
| 32-bit Fujitsu MCU: |
| | MB91FXXX - FR series |
|
REV 3.06 [2006.09]
Объёмный и хорошо структурированный FAQ по MCU Fujitsu размещён на
головном сайте http://www.fujitsu.com/.
Есть подозрение что созданы на основании реальных вопросов.
Первоисточником документов по MCU от Fujitsu является
Японский сайт.
У региональных представителей можно заказать CD-версию сайта GSDC.
Этот вариант каталога документации
структурирован и имеет продукт-селектор для удобства выбора и ознакомления
со всем спектром микроконтроллеров от Fujitsu. CD также содержит программное
обеспечение для разработки и отладки программ.
Перечень изменений в документации и программах на сайте GSDC
приведен на страничке news.htm.
Перечень изменённых документов на Японском сайте (за последние 3 недели)
приведен на страничке newliste.html.
Если Вы имеете CD-версию сайта GSDC, то практически на каждой страничке
имеется иконка для получения перечня обновлённых документов текущего раздела.
На сайте GSDC, используя Product Selector,
можно быстро найти микроконтроллер, удовлетворяющий условиям:
семейство микроконтроллеров, тип и объем ROM, объем RAM, минимальное и
максимальное напряжение питания, наличие различного рода периферии и
его количества (UART, I2C, CAN ...).
Сводная страница по процессорам семейства 16-LX
Сводная страница по процессорам семейства FR
Официальным представителем в России является:
- EBV-Elektronik Moscow, tel: +7 095 937 8707, fax: +7 095 937 8706
- Ineltek (Rus)
Розничной продажей занимается ЕвроСтандарт.
Узнавать о возможности заказа MB9xFxxx можно в любой другой фирме, у которой
налажены поставки комплектующих из Германии.
Softune Workbench от Fujitsu V3 (для семейств 8LX, 16LX и FR),
распространяется бесплатно на CD через региональных представителей.
Работает под WINxx. Softune включает в себя компиляторы С(ANSI) и ASM,
симулятор, утилиты анализа C-кода C-analyzer и C-checker.
Softune Workbench от Fujitsu V6 (только для FR),
распространяется также бесплатно, включает в себя инструменты, как и
V3, поддерживает стандарт EC++.
GCC поддерживает процессоры FR (target=fr30)
c 1999 года.
| PS: | Оболочка Softune посредственна, все утилиты для компиляции и
сборки проекта можно запускать из командной строки, используя make. |
Информация о появлении новых версий и обновлении компонентов публикуется в
ежемесячной E-mail рассылке. Подписаться на рассылку можно, отравив запрос или
заполненный бланк регистрации Softune на адрес micro_info@fme.fujitsu.com.
Если в очередном сообщении рассылки присутствует информация об обновлении Softune
или его компонентов, то необходимо отправить запрос на их получение. В ответе
будет указан URL, права доступа и срок действия прав.
Иногда архивы защищают паролем, для его получения потребуется отправить
дополнительный запрос.
Регистрация Softune обязательна, согласно требованиям лицензии распространения
Softune на территории, контролируемой Европейским подразделением Fujitsu.
Для этого необходимо отправить запрос на адрес micro_info@fme.fujitsu.com
с информацией на английском языке:
- Адрес компании.
- ФИО и e-mail регистрирующегося.
- Какое ПО необходимо зарегистрировать.
- Какое количество копий ПО будет использоваться.
| PS: | С практической точки зрения это элементарная формальность, которую следует
соблюсти в знак поддержки полностью бесплатного продукта
или ради приобщения к технологии регистрации программных продуктов. |
Для большинства контроллеров существует документ Hardware manual
correction, он включает в себя ошибки в основном документе Hardware
manual for MB9xxxxx и описание недочетов работы самих MCU. Файлы
размещены на страницах с документацией на МК сайта GSDC.
Примеры программ есть на сайте GSDC (или его CD-версии) в разделе
Software->Samples. Архив для каждого семейства содержит шаблон проекта
в стиле Softune и проекты с примерами программ по работе с периферийными
устройствами. Примеры постоянно дополняются и обновляются.
В комплект стандартной поставки Softune не входят библиотеки функций для
работы со встроенной периферией. Разработчики некоторых DevKit'ов
прилагают к плате OBJ файл низкоуровневых драйверов, иногда можно даже в
сорцах за extra-cost :).
Вариант 1, дорогой
Для этого можно воспользоваться программой IDA.
Компоненты для работы с кодом контроллеров Fujitsu входят в комплект Pro Advansed.
Вариант 2, трудоёмкий
При помощи программы для захвата текста с графического экрана. Например Kleptomania.
- Преобразовать код в текстовый формат массива.
- Создать небольшой проект, единственной функцией которого является копирование
исследуемого массива в нужное место.
- Запустить симулятор, выполнить копирование массива в требуемое место размещения.
- Открыть окно ассемблерного листинга.
- Постепенно перемещаясь по страницам листинга копировать текст в буфер, затем
в текстовый редактор.
В параметрах компилятора необходимо установить опцию -B.
- Setup Project
- C compiler
- Language
- Treat items following // as comments in C source
Дмитрий Ефимов (Санкт-Петербург):
Для исключения подобных ошибок в опциях компилятора требуется установить ключ
-kanji EUC (для любой из кодировок DOS866 или WIN1251).
Возможно без ограничений, начиная с версии V30L10(2002-10-01) компилятора
fcc907s (Fujitsu CD v3.4).
В более ранних версиях оптимизация СИ-кода автоматически отключается
при асм-вставках, поэтому более выгодным решением было написание функций
на ASM.
Принципиальным отличием архитектур F2MC и FR, с точки зрения компилятора,
является порядок расположения байт в памяти при хранении многобайтовых
операндов (short, long).
| F2MC: | старший байт операнда располагается в памяти по старшему адресу. |
| FR: | старший байт операнда располагается в памяти по младшему адресу. |
| (long)0x12345678 |
| Addr |
F2MC |
FR |
| x00 |
0x78 |
0x12 |
| x01 |
0x56 |
0x34 |
| x02 |
0x34 |
0x56 |
| x03 |
0x12 |
0x78 |
Про операции через указатель (с размерностью, отличной от типа хранящихся
данных) придется забыть...
{
...
long test = 0x12345678;
char *p = &test;
...
(F2MC) *p == 0x78
(FR) *p == 0x12
...
}
В OS/2 под ODIN-ом (эмулятор WIN32) полностью работоспособны все
утилиты командной строки.
Известен опыт работы под Linux через конвертер wine, тоже только
утилит командной строки, но в таком сочетании существуют некоторые
трудности с доступом к исходным файлам (wine создает свою виртуальную
файловую систему).
Наиболее простой способ - используя последовательный порт (UART).
Адаптер (внешний или размещённый на плате) должен обеспечивать установку
необходимого режима программирования
- MD0=0 MD1=1 MD2=1 - режим BI-ROM
- P00=0 P01=0 - режим последовательного интерфейса (асинхронный)
и согласовывать по уровню сигналы UART PC и контроллера.
(Режим последовательного порта для большинства MCU определяется состоянием
выводов P00 и P01, для F387/F455 - P30 и P31)
Программное обеспечение для записи Flash поставляется производителем
свободно Flash Writer 16LX, поддерживает все
кристаллы, но накладывает ограничение на основную частоту тактирования
контроллера (она может быть 4, 8, 16МГц и только для некоторых
6, 10, 12, 20 и 24
при определённых установках режима последовательного интерфейса).
Группой энтузиастов разработан внешний адаптер и программа
для него со следующими возможностями:
аппаратная установка режима программирования,
запуск из командной строки,
возможна работа с частотами основного генератора в
диапазоне от 3 до 5 Мгц.
возможен запуск на выполнение программы, созданной для работы в RAM.
ISP_MB9X
Типовое время программирования одного слова (2 байта) - 16мкс. При
использовании асинхронного интерфейса максимально возможная скорость
38400бит/сек, совместимая с RS232 компьютера (при основной частоте у
контроллера 16МГц) - время записи 64Кбайт составляет около 17секунд.
Применение синхронного адаптера увеличивает максимально возможную скорость
передачи данных для программирования до 500 Кбит/сек - время
записи 64Кбайт около 2 секунд.
Такое возможно пока только на одном MCU - MB90F897, у остальных программа записи intFlash
должна выполняться в RAM (internal or external) или внешней Flash.
От FME - Flash-Kit Serial Programmer.
Позволяет подключаться по RS232 или LPT и программировать в синхронном или
асинхронном режиме последовательного порта MCU.
Описание
От Accemic - Host Interface Adapter и ПО Accemic MDE
Необходимо соединить выводы RST и HST во время программирования напрямую.
Если функция вывода HST не используется, то его необходимо соединить с RST
постоянно.
Есть на сайте Американского подразделения Fujitsu в разделе Application Notes:
canproflash.zip
Стоит отметить тот факт, что не у всех кристаллов внутренний генератор при
использовании кварцевого резонатора может работать с частотой 16МГц. В этом
случае диапазон возможных частот кварцевого резонатора ограничен [3..5 МГц],
применение встроенного PLL с возможностью умножения на 1, 2, 3, 4
компенсирует это ограничение. При отключённом PLL тактовая частота процессора
равна 1/2 частоты генератора.
При использовании внешнего генератора входная частота у всех кристаллов может
быть [3..16МГц].
У всех не хуже чем [-40 +85], некоторые работают и при +105.
MB90F497 допускает +125.
У каждого порта есть два регистра - PDRx и DDRx.
- PDR - регистр данных
- DDR - регистр направления
Входы/выходы совместимы со CMOS.
Все входы имеют гистерезис. Ток выхода -4/+4мА, импульсный - 15мА.
Внутренние подтягивающие сопротивления (50К) имеют серии MCU:
- на портах P0 - P3 :: MB90340 Mb90435 Mb90440 Mb90540 Mb90545 MB90860
- на портах P0,P1 :: mb90550 mb90560 mb90565
- на портах P0,P1,P4 :: mb90520 Mb90620
- на портах P0,P1,P6 :: mb90570 Mb90580
| PS: | по результатам поиска в MB90*.h |
Команда вывода/ввода байта в порт (MOV A,io / MOV io,A) выполняется
за 3 такта (3*62.5=187нс при 16МГц).
Команда изменения/установки/сброса бита порта выполняется за 7 тактов
(7*62.5=437.5нс при 16МГц)
Каждый UART имеет возможность получать тактирование от одного из трёх источников
опорной частоты:
1. Dedicated baud rate generator,
скорость передачи можно вычислить по следующей формуле:
- а) F/(div * 104 * 2^n)
- F - основная частота процессора
- div - делитель с коэффициентом от 1 до 8
- n - может принимать значения от 1 до 4
| Пример: | 16000000/(2*104*2^1)=38462
Разница в cкоростях в 0.16% Вас не должна пугать, это
намного меньше допустимого значения разброса частот UART
(кажется 5% - не нашёл где читал). |
б) F/(div * 2^5) {не у всех UART}
в) F/(div * 2^6)
Таблицу перечисленных скоростей при основной частоте 16МГц с указанием
значений, записанных в регистры (в формате XLS) можно взять здесь:
http://www.fme.gsdc.de/pdf/an-baudratecalculation-sheet-v1-1.xls
2. Внутреннего перегружаемого таймера (который в свою очередь может
использовать для деления основную частоту процессора или внешний генератор)
F/(div timer * 16 * (n+1))
- F - основная частота процессора
- div timer - величина деления входной частоты для таймера (2, 8, 32)
- n - значение, загружаемое в таймер
Пример расчёта скорости UART для контроллера F543 есть в апнотах на сайте GSDC.
3. Внешнего генератора (f=0..2МГц), в этом случае скорость передачи будет f/16.
Пример : для скорости 57600 необходимо применить генератор с частотой
921,600 кГц.
Таким образом, если требуются более высокие скорости, чем 38400, совместимые с
контроллером PC, необходимо подобрать подходящий по частоте основной генератор
или использовать для тактирования UART внешний генератор.
| PS: | Для получения скорости 57600 при частоте процессора 16Мгц можно
воспользоваться PPG (соединив его выход со входом внешнего тактирования UART)
в качестве делителя на 17 - в результате скорость MCU будет 58823,
больше стандартной на 2%, что допустимо. |
Каждый SCI:
- имеет вывод тактирования и может работать в синхронном режиме;
- можно настроить на прием/передачу первым старшего бита.
Только представители серии MB90x650: MB90F654A(Flash) и MB90P653A(OTP). Корпус
и периферия у этих микроконтроллеров одинаковые. Отличия в напряжении питания,
объёмах памяти ROM и RAM:
- MB90F654A: [2.4 .. 3.6V], Flash 256K, RAM 8K
- MB90P653A: [2.7 .. 5.5V], OTP 128K, RAM 5K
Интерфейс внешней шины есть только у части серий представителей семейства 16LX,
это: MB90440 MB90470, MB90495, MB90540, MB90545, MB90550, MB90570, MB90580. Из
них только у MB90470, MB90570 есть устройство выборки кристаллов.
Внешняя память разбита на 3 региона:
- [0x0000C0-0x0000FF]
- [Top int. RAM - 0x7FFFFF]
- [0x800000-0xFFFFFF]
Для каждого из которых можно определить время ожидания [AUTO или 1..3] и
режим доступа 8 или 16 бит.
Ядро процессора питается от внутреннего стабилизатора напряжения на 3В,
требуется один внешний элемент - блокировочная ёмкость на 0.1мкФ. За счёт этого
снижена потребляемая мощность на 60% и улучшена устойчивость к помехам.
В документе External Bus Interface приведена схема и пример настроек
оболочки при работе с устройствами на внешней шине.
Примеры схем есть в документах на DevKit'ы от FME:
Серия объединяет в себе кристаллы, совместимые по выводам портов и периферии
между собой, которые могут отличаться допустимым напряжением питания,
максимальной частотой, объёмом и типом памяти ROM, объёмом памяти RAM.
Номер серии кратен 5 и не содержит индексов, например, контроллер MB90F594A
является представителем серии MB90590.
Наиболее простой способ - используя последовательный порт (UART).
Адаптер (внешний или размещённый на плате) должен
согласовывать по уровню сигналы UART PC и контроллера.
Программное обеспечение для записи Flash поставляется производителем
свободно Flash Writer FR, поддерживает все кристаллы семейства FR.
Группой энтузиастов разработан внешний адаптер и программа
для него со следующими возможностями:
- аппаратный сброс MCU,
- запуск из командной строки,
- возможен запуск на выполнение программы, созданной для работы в RAM.
Типовое время программирования одного слова (2 байта) - 16мкс. При
использовании асинхронного интерфейса максимально возможная скорость
115200 бит/сек, совместимая с RS232 компьютера - время записи 64Кбайт
составляет около 6 секунд.
Такой возможности нет ни у одного контроллера семейства FR.
Все МК имеют единую систему команд, а отличаются максимальной
производительностью ядра в зависимости от технологии изготовления.
Ни в коем случае, MK имеет такое количество ошибок в ядре, что оценить
возможности семейства FR в полной мере не удастся.
Некоторые ошибки:
- для правильного выхода из прерывания необходимо выполнить определённый ряд
команд не несущих никакой информации.
- почти половину команд необходимо сопровождать NOP-ми.
Copyright © 2001-2005, Пинигин Сергей.
|
|