|
Главная страница > Обзоры по типам > Микроконтроллеры
|
|
FAQ по микроконтроллерам MB90FXXX, MB91FXXX
16-bit Fujitsu MCU: |
| MB90FXXX - F2MC-16LX series |
|
32-bit Fujitsu MCU: |
| MB91FXXX - FR series |
|
REV 3.03 [2004.10]
Первоисточником документов по 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. |
Для большинства контроллеров существует документ Hardware manual
correction, он включает в себя ошибки в основном документе Hardware
manual for MB9xxxxx и описание недочетов работы самих MCU. Файлы
размещены на страницах с документацией на МК сайта GSDC.
Примеры программ есть на сайте GSDC (или его CD-версии) в разделе
Software->Samples. Архив для каждого семейства содержит шаблон проекта
в стиле Softune и проекты с примерами программ по работе с периферийными
устройствами. Примеры постоянно дополняются и обновляются.
В комплект стандартной поставки Softune не входят библиотеки функций для
работы со встроенной периферией. Разработчики некоторых DevKit'ов
прилагают к плате OBJ файл низкоуровневых драйверов, иногда можно даже в
сорцах за extra-cost :).
В параметрах компилятора необходимо установить опцию -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
при определенных установках режима последовательного интерфейса).
Группой энтузиастов разработан внешний адаптер и программа
для него со следующими возможностями: аппаратная установка режима
программирования, запуск из командной строки, возможен запуск на выполнение
программы, созданной для работы в RAM.
http://f2mc.nm.ru/fujitsu/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-ми.
|
|