Моторола S08
9S08 семейство ( (μC), первоначально 8 - сокращенно 68HCS08 или S08) — битных микроконтроллеров выпускавшихся компанией Motorola , а затем компанией Freescale Semiconductor . [1] и в настоящее время NXP , произошедший от микропроцессора Motorola 6800 . Это CISC- микроконтроллер. Слегка расширенный вариант 68HC08 , он имеет совместимость с устаревшими микроконтроллерами 68HC05 и встречается практически во всех типах встроенных систем. Более крупные члены предлагают до 128 КБ флэш-памяти и 8 КБ ОЗУ через простой блок управления памятью (MMU), который позволяет переключать банки, 16 КБ адресного пространства и пару адрес/регистр данных, которая позволяет извлекать данные с любого адреса. . Используемая схема пейджинга допускает теоретический максимум 4 МБ флэш-памяти. [2]
Варианты с MMU предлагают две дополнительные инструкции ЦП, CALL и RTC, которые используются вместо JSR и RTS соответственно при работе с подпрограммами, размещенными в страничной памяти, что позволяет осуществлять прямые вызовы подпрограмм между страницами. В рамках одной атомарной операции CALL сохраняет, а RTC восстанавливает не только ПК, но и один дополнительный байт адреса, байт PPAGE (страницы программы). Из-за этого дополнительного байта, а также для поддержания сбалансированности стека подпрограмму, заканчивающуюся на RTC, всегда следует вызывать с помощью CALL, даже если она находится на той же странице памяти.
Внутри набор инструкций 9S08 совместим с 6805 снизу вверх, с добавлением стековой режимов индексированной адресации . SP (Инструкции, использующие регистр , имеют коды операций с префиксом байта 0x9E). Он имеет один восьмибитный аккумулятор A, один шестнадцатибитный индексный регистр HX (младшая половина которого X используется изолированно 6805-совместимыми инструкциями), регистр кода условия , 16-битный указатель стека и программный счетчик . Для совместимости с 6805, у которого нет регистра H, старший байт регистра HX, H, очищается во время сброса, и H является единственным регистром, который не складывается автоматически при входе в любую ISR ( программу обслуживания прерываний ). [3] : 81 В отличие от 6805, стек можно разместить в любом месте памяти с помощью соответствующих инструкций.
Стандартный метод программирования или отладки семейства 9С08 осуществляется через стандартный шестиконтактный интерфейс BDM (для связи с микроконтроллером используется только один контакт).
Для разных участников и/или пакетов доступен широкий выбор периферийных устройств. SCI, SPI, 8/10/12-битный АЦП, (C)ШИМ, захват входных данных и сравнение выходных данных являются общими для большинства членов, но внешняя шина недоступна. Некоторые участники поставляются со встроенным CAN- контроллером.
Поддержка компилятора
[ редактировать ]S08 частично поддерживается (например, без поддержки MMU) бесплатным компилятором C SDCC и полностью CodeWarrior .
Ссылки
[ редактировать ]Эта статья нуждается в дополнительных цитатах для проверки . ( март 2013 г. ) |
- ^ «NXP Semiconductors | Автомобильная промышленность, безопасность, Интернет вещей» . www.nxp.com . Проверено 18 февраля 2021 г.
- ^ Вирамонтес, Эдуардо; Ли, Рик (май 2008 г.). Общие сведения о подкачке памяти в устройствах 9S08 (PDF) (примечания по применению). Версия 0. Техническая поддержка Freescale. АН3730.
- ^ Справочное руководство по семейству HCS08 (PDF) . Ред. 2. Freescale Semiconductor. Май 2007 г. HCS08RMv1/D.