Современные технологии автоматизации» («СТА») —  журнал для квалифицированных специалистов по промышленной автоматизации Форум СТА — современные технологии автоматизации Домашняя страница
Домашняя страница форума CTA Домашняя страница форума CTA > II. АСУТП и SCADA > Теория и практика автоматизации
  Активные темы Активные темы
  FAQ FAQ  Искать в форуме   Зарегистрироваться Зарегистрироваться  Вход в систему Вход в систему

Разные модификации CPU188?

 Ответить Ответить Страница  <12
Автор
Сообщение
Сергей Брехов Смотреть выпадающим
Новичок
Новичок


Присоединился: 05 Август 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 6
Свойства публикации Свойства публикации   Ответить, цитируя автора - Сергей Брехов Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: Разные модификации CPU188?
    Опубликовано: 13 Август 2007 10:18
  1. Ошибка определения типа процессора

 

Справка: Разряды 12..14 регистра флагов в процессорах типа:

до 286 включительно            - Reserved, Read Only;

386 и старше                - Read/Write.

 

Суть проблемы: В микроконтроллере RDC R8830 разряды 12..14 – Read/Write. Это зачастую приводит к ошибке определения пользовательской программой типа процессора. Startup-код пользовательской программы может содержать подпрограмму определения типа процессора, которая, определив что разряды 12..14 регистра флагов процессора не являются Read Only, вправе решить что тип процессора – 386+ и предложить ему выполнить неизвестную ему команду. Это неминуемо приведет к возникновению исключения «unused opcode». Данная проблема проявляется, в частности, при работе программ, созданных с помощью трансляторов Borland C++ 4.5, Borland C++ 5.02 и Turbo Pascal 7.0.

 

Проявление ошибки: Пользовательская программа, без проблем работающая с микроконтроллером Am188ES при запуске на плате с микроконтроллером R8830 приводит к появлению сообщение «unused opcode» после чего система «зависает».

 

Решение проблеммы: Компания Fastwel разработала программу FIX4RDC, которая вносит необходимые исправления в Startup-код. Программу FIX4RDC необходимо однократно запустить после создания исполняемого файла пользовательской программы указав имя исполняемого файла в качестве параметра в коммандной строке. FIX4RDC версии 1.1 протестирована на взаимодействие с программами, созданными с помощью помощью трансляторов Borland C++ 4.5, Borland C++ 5.02 и Turbo Pascal 7.0. Если данная проблема не решается с помощью FIX4RDC, пользователю необходимо по электронной почте выслать исполяемый файл своей программы на адрес Fastwel указав транслятор, с помощью которого исполняемый файл был создан – специалисты компании решат проблему в кратчайшие сроки. В ближайшее время FIX4RDC будет встроена в операционную систему FDOS 6.22.

 

 

  1. Ошибка определения статуса сторожевого таймера

 

Суть проблемы: После сброса процессора,  вызванного срабатыванием сторожевого таймера в Регистре Состояния последнего разряд 13 должен быть установлен в 1. Микроконтроллер RDC R8830 не выполняет этого требования.

 

Решение проблеммы: Проблема решена программно в BIOS версии 3.6. Пользовательская программа может получить значение Регистра Состояния в регистре AX с помощью программного прерывания 17h (AX=0FD00h, DX=0FFFFh).

 

  1. Отсутствие запрета прерываний при переназначении сегмента стека

 

Суть проблемы: В процессорах семейства x86 выполнение команды присваивания значения стековому сегментному регистру SS (MOV SS, reg; MOV SS, mem; POP SS) вызывает запрет прерываний на время выполнения следующей команды, которая, логично, обычно является командой присвоения значения регистру указателя стека – SP. Это свойство процессоров x86 избавляет пользователя от необходимости при переназначении стека явного запрета прерываний с помощью команды CLI. К сожалению, процессор микроконтроллера R8830 лишен этого свойства.

 

Решение проблеммы: 1. В пользовательской программе переназначение стека выполнять только при запрещенных прерываниях, например

 

MOV AX, STACKSEG

CLI

MOV SS, AX

MOV SP, STACKPTR

STI

 

2. Не использовать операционную систему FDOS 6.22, если она датирована до 14 сентября 2005 года. Первой версией операционной системы FDOS 6.22, разрешенной для использования с микроконтроллеров R8830, считать версию, датированную 14 сентября 2005 года.

 

  1. Номиналы внутренних подтягивающих сопротивлений входов прерываний

 

Суть проблемы: Номиналы внутренних подтягивающих сопротивлений входов прерываний у Am188ES и R8830 различны. Из этого следует что номиналы внешних подтягивающих сопротивлений входов прерываний для Am188ES и R8830 также должны отличаться. После перевода на процессор R8830 осенью 2004 года на модули CPU188-5 продолжали устанавливаться подтягивающие сопротивления «старого» номинала – 10 кОм. На этих модулях может наблюдаться нестабильность работы по прерываниям с внешними модулями ввода/вывода, в частности, с UNIO-xx.

 

Решение проблеммы:

 

Начиная с лета 2005 года на модули CPU-188 процессор R8830 устанавливается вместе с подтягивающими сопротивлениями «нового» номинала – 2,2 или 3,3 кОм. Пользователям, которые преобрели модули CPU-188, выпущенные в период с осени 2004 года по лето 2005 года с микроконтроллером R8830 и подтягивающими сопротивлениями 10 кОм, следует обратиться в компанию Fastwel для замены этих сопротивлений. Определить номинал сопротивлений можно по маркировке резисторной сборки RP31 на лицевой стороне платы контроллера CPU-188. «Старые» резисторы имеют маркировку 103, «новые» - 222 или 332.

 

 

  1. Сброс конфигурации XILINX при срабатывании сторожевого таймера и «теплой» перезагрузке

 

Суть проблемы: При перезапуске микроконтроллера Am188ES, вызванном срабатыванием сторожевого таймера или передачей управления на адрес 0FFFF0h конфигурация схем XILINX сохраняется. Это позволяет сократить общее время загрузки системы и обеспечить сохранение состояния выходов UNIO-48, входящего в состав модуля CPU188-5. В аналогичной ситуации с микроконтроллером R8830, конфигурация схем XILINX не сохраняется.

 

Решение проблеммы: Смириться.

 

Сергей Брехов
инженер BIOS
Fastwel
Наверх
Лопаткин Борис Смотреть выпадающим
Новичок
Новичок


Присоединился: 06 Ноябрь 2003
Категория: Russian Federation
Online Status: Offline
Публикации: 10
Свойства публикации Свойства публикации   Ответить, цитируя автора - Лопаткин Борис Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 30 Август 2007 12:11

Пришлось-таки покопаться в недрах RTKernel (как чувствовал). А причина оказалось в том, что, похоже, нашлась еще одна (шестая) несовместимость R8830 с Am188. Во всяком случае, ни одна из описанных Сергеем Бреховым вроде не подходит. Напишу о результатах, может кому пригодится.

Суть в следующем. У меня используется обмен с COM-портами по DMA, причем как на прием, так и на передачу. На Am188 все это нормально работало. А на R8830 прием работает, а на передачу получались  периодические пропуски символов (иногда через один, иногда по несколько символов сразу). Причем все это проявляется только тогда, когда вызывается RTKernel'овская функция RTKDelay(), т.е. если просто сделать задержку с помощью пустого цикла, то все работает нормально, но только зачем нужет такой DMA. После ряда экспериментов выяснилось, что проблема проявляется только тогда, когда управление получает RTKernel'овская функция IdleTaskCode, то есть пустая задача, вызываемая тогда, когда других активных задач уже нет. А в этой IdleTaskCode есть оператор, который в случае, если тип процессора 0 (т.е. обычный 8086) выполняет ассемблерную инструкцию HLT, т.е. переводит процессор в режим ожидания до следующего прерывания. Зачем так сделано, до конца не понятно (видимо, в целях экономии электроэнергии), но после того, как HLT был убран и вместо него просто выполняется замкнутый цикл с RTKScheduler(), все заработало нормально.

Отсюда вывод - в программах для R8830 команду HLT лучше не использовать: она портит обмен по DMA, а может и еще что-нибудь.

С уважением,
Лопаткин Б.В.
Наверх
Сергей Брехов Смотреть выпадающим
Новичок
Новичок


Присоединился: 05 Август 2004
Категория: Russian Federation
Online Status: Offline
Публикации: 6
Свойства публикации Свойства публикации   Ответить, цитируя автора - Сергей Брехов Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 30 Август 2007 12:19

Большое спасибо за очень ценную информацию. Я с такой проблемой пока не сталкивался.

Сергей Брехов
инженер BIOS
Fastwel
Наверх
 Ответить Ответить Страница  <12

Переход на форум Права доступа на форуме Смотреть выпадающим

Bulletin Board Software by Web Wiz Forums® version 9.64
Powered by Web Wiz Forums Free Express Edition
Copyright ©2001-2009 Web Wiz