Микроконтроллер из стиралки Samsung: обзор возможностей и теоретические возможности по применению

В этой статье я рассмотрю возможности микроконтроллера из серии S3, а так же разберу базовую схему включения(а ведь она там не простая...)
Не смог найти подходящего блога, посему выложил в модернизацию, так как это хоть как то подходит к теме
Будем заводить микроконтроллер S3C8469 — знакомый многим, кто ремонтировал стиральные машины. Мне попались два модуля управления от них, но использовать по назначению их было некуда. Валялись у меня на полке до того момента, пока не стало скучно и я не решил почитать даташит на первую найденную микросхему(кого-то уже тошнит от даташитов, а мне вот интересно их читать, я мазохист :)). Как вы догадались, попался именно этот микроконтроллер. На удивление, я нашел систему ассемблерных команд в Сети, а так же полный даташит с описанием всех периферийных модулей. Огорчила лишь одна строчка — масочное ПЗУ. Любой здоровый человек выкинул бы этот хлам на помойку, но мы же не ищем легких путей) Этот МК умеет во внешнее ПЗУ до 64 Кбайт, ровно как и в ОЗУ, столько же. Рассмотрим подключение только ПЗУ, так как для простых проектов хватит и того объема ОЗУ, который уже имеется.
Характеристики у этого МК достаточно внушительные, а именно:
528 байт оперативной памяти
56 пинов GPIO(но доступно будет лишь 36, так как 20 будут использоваться для подключения внешней флешки)
Три модуля таймеров, которые могут работать в различных режимах:
Таймер0: 8-бит таймер с регистром сравнения, делитель на 4096, 256, 8, а так же внешний вход для тактовых импульсов; умеет работать в режиме собственно таймера или счетчика, использоваться для модуля захвата а так же для генерации ШИМ
Таймер1: сам еще не понял до конца, как он работает, в даташите написано, что умеет в два 16-бит таймера/счетчика и еще пара режимов на 8 бит, но зачем нам это, если есть 16; регистра сравнения нет, но есть контроль счета, то есть, пока на пине нет высокого уровня, таймер не считает; считает частотой кварца, деленной на 6
Таймер2: делитель на 1024, 512, 256, 128, 64, 32; может очищаться прерыванием от модуля ZCD; таймер 8-битный с регистром сравнения

Классический WDT, который может играть роль таймера стабилизации частоты
SPI блок, UART блок, два ШИМ канала по 14 бит каждый, 10 бит АЦП на 8 каналов
Блок обнаружения перехода через ноль(ZCD)
Модуль генератора частоты, который можно использовать для пищалки
Семь уровней приоритетов прерываний
Питание от 2.7 до 5.5 вольт, ниже 4.5 можно работать только на 8 МГц, выше — на 12 МГц
Программруемый делитель частоты CPU, который можно изменить в любое время


Можете так же посмотреть на характеристики из официального даташита:
Как видно, возможности даже получше некоторых PIC, производительность на 12 МГц может достигать 2 MIPS, что эквивалентно PIC16 на 8 МГц. Что ж, неплохо.

Проверить МК очень просто — подаем питание, подтягиваем пин EA к 5 вольтам, подключаем светодиод катодом к DS, а анодом к 5 вольтам, мы увидим, что светодиод начнет гореть и возможно немного мерцать.
Подключать мы будем параллельную флеш — 29F040, 8 страниц по 64 Кб — 8 программ, которые можно переключать тумблерами на старших битах.
Достаточно удобно для теста, например, в первый сектор мы зальем программу мигания диодом, а во второй — парсинг значений из UART и вывод их на дисплей и т.д. Теперь о подключении: CE памяти подключаем на минус, OE память подключаем к DS микроконтроллера.

A15-A8 контроллера подключаем к одноименным выводам микросхемы памяти. AD7-AD0 подключаем на вход параллельной защелки по типу 74HC573. Так же AD7-0 подключаем на входы данных микросхемы памяти. AS микроконтроллера подключаем к входу защелки LE. Важный момент: пин AS контроллера, который выведен специально для защелки имеет активный низкий уровень, поэтому конкретно для 573 нужен инвертор уровня(с 0 в 1, с 1 в 0). WE памяти подключаем к плюсу.
Распиновка:

RESET нужно подтянуть к плюсу.
Также A16-A18 у памяти являются пинами для выбора страницы, из которой читается код. Грубо говоря, мы переключаем, к какому чипу 64 Кб памяти мы обращаемся. Можно замкнуть их все на минус, так мы выберем первый сектор в диапазоне адресов 0000-FFFF
Вот, собственно, все, что нужно для подключения. Добавлю также, что писать в свою память микроконтроллер не умеет, поэтому для каждой замены прошивки нужен программатор параллельной флеш. В следующих статьях не буду скорее всего буду писать, как программировать для этого МК в IAR. Надеюсь, статья вызвала интерес хоть у кого-нибудь. Просьба также не ругать за немного корявое написание, это моя первая статья все-таки)

Комментарии (3)

RSS свернуть / развернуть
Контроллер с проприетарной системой команд от SAMSUNG?
С подключением внешней памяти программ через защелку? Большинство MCS-51 это умеет, даже i80C88, но набор готовых готовых алгоритмов и программ несравненно больше.
0
вообще там система команд от S3, который вроде бы чем то похож на z8, а интерес применения этого МК скорее академический, но все же возможно применение в каких-то проектах
0
Действительно, интерес сугубо академический. Но работа хорошая, чоуж.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.