====== Устройство и совместимость микросхем семейства UOC I ====== Телевизионные процессоры Ultimate One Chip (UOC) серии TDA93xx/TDA95xx (выпускались до конца сентября 2009г). БОльшая часть информации о них взята отсюда: http://www.anyram.net/anyram_ru/portfolio/index.php Собственно, они первоначально и исследовали все основные проблемы. ==== Устройство микросхемы UOC ==== UOC содержат внутри 2 кристалла: 1. Собственно микроконтроллер на базе x51, аналогичный применявшимся ранее SAA55xx/SAA56xx с интегрированной OTP ROM различного объема и телетекстом (опционально), в нескольких версиях. 2. Сигнальный процессор, во многом подобный TDA8844/TDA8885, также в нескольких версиях. Управление сигнальным процессором - по внутренней I2C шине. ==== Маркировка микросхем UOC ==== Маркировка на корпусе м/с: [{{ :ru:stati:uoc-01.jpg?400|Маркировка на корпусе м/с}}] Номер прошивки (четыре цифры в конце заводской маркировки) - уникален и не повторяется внутри группы UOC TDA93xx/95xx. То есть, например, номеру 0792 соответствует только **TDA9381PS/N2/3I0792** (третья строка - партномер от LG **0ICTMPH010A**), и никаких других TDA93...(TDA95...) с окончанием 0792 нет и не может быть никогда. Остальные элементы маркировки имеют служебное назначение. [{{ :ru:stati:alluoc:other_lines.png?600 }}] ==== Взаимная совместимость ПО ==== Кроме запрограммированных при изготовлении, UOC выпускались и в виде OTP (однократно программируемых болванок с различным набором опций). Совместимость прошивок ROM и OTP болванок определяется следующими различиями: 1. Версия микроконтроллера и сигнального процессора: 2 основных типа – тип 1 (TDA93xxPS/N1) и улучшенный – тип 2 (все остальные). Между собой ограниченно совместимы, но лучше обойтись без экспериментов. [[ru:stati:alluoc:uocn1n2fw|Возможности применения и адаптации ПО в UOC разных версий]] 2. Размер памяти (ROM/RAM): 64K/1K или 128K/2K. Прошивки меньшего размера ROM могут быть размещены в болванке с бОльшим. Прошивки, рассчитанные на 2K RAM, не будут работать в болванке с 1K RAM. 3. Телетекст: нет телетекста, 1-страничный, 10-страничный. Прошивки от м/с с 1-страничным телетекстом можно поместить в болванку без него – работать будет все, кроме приема телетекста. Прошивки от м/с с 10-страничным телетекстом требуют 2K RAM, иначе ничего работать не будет вообще. 4. Путь обработки звука: FM или QSS. Касается только корпусов SDIP-64. Прошивки от FM нельзя переносить в болванки QSS, и наоборот – не будет звука. Для корпусов QFP-80 этого различия нет. 5. Структура памяти: обычная или Split Memory. Между собой несовместимы. 6. В серии TDA959x вывод 44 для корпуса SDIP-64 (49 – для QFP-80) используется как выход сигнала Scan Velocity Modulation (SVM). В серии Split Memory эта опция есть в TDA9376. SVM – вещь малополезная, к тому же работающая только в системе PAL, ее отсутствие практически незаметно. Поэтому можно спокойно размещать прошивки от TDA959x в других болванках. В то же время перенос прошивки обычной м/с в корпусе SDIP-64 в болванку с SVM может быть затруднителен, поскольку вывод 44 (линейный выход звука) будет занят под SVM, и звуковой сигнал придется снимать с вывода Audio Deemphasis: 28 (FM) или 32 (QSS в режиме внутреннего декодирования) через повторитель, что потребует изменений в схеме. В корпусе QFP-80 вывод 49 практически никогда не используется, поэтому такие болванки с SVM можно применять вместо обычных. 7. TDA939xH значительно отличаются от всех остальных: нет радиоканала, и выводы аналоговой части расположены по-другому. Несовместимы с другими. Bсе остальные опции, в том числе EW-коррекция, системы ТВ и т.д. на самом деле присутствуют всегда, независимо от названия болванки. На рисунках изменяемые опции выделены: Для корпуса SDIP-64 [{{ :ru:stati:uoc-02.jpg?400|Опции для корпуса SDIP-64}}] Для корпуса QFP-80 [{{ :ru:stati:uoc-03.jpg?400|Опции для корпуса QFP-80}}] Однако если при разработке ПО использовались библиотеки Philips (а таких прошивок большинство), то прямой перенос ПО из одного типа болванок в другой невозможен. Это связано с наличием предустановленных байтов сигнатуры в Character ROM: прошивки, созданные средствами разработки от Philips, при инициализации обращаются к сигнатуре. Чтобы избежать этого при смене болванки, требуется патч. Задача – сделать прошивку не зависящей от сигнатуры. UOC типа Split Memory (см. таблицу) принципиально отличаются по структуре памяти. Их прошивки несовместимы с обычными, хотя назначение выводов одинаково, и в одном и том же шасси могут стоять как обычные, так и Split Memory. Они проще, чем обычные UOC, корпуса SDIP-64 тоже бывают разных конфигураций по звуку (FM и QSS). И также при переносе прошивок может потребоваться патч. В предложенной программе предусмотрен скрипт для патча. {{:ru:stati:alluoc:uoc_patch..pdf|Интересующимся - простое описание процесса}} Для анализа прошивок применим встроенный в программу hex-редактор с функцией поиска и сравнения. Можно также использовать, например, 010-Editor или что-нибудь попроще, например, редактор от какого-нибудь программатора. В таблице {{:ru:stati:alluoc:otpdevice_.xls|OTPDevice+}} указаны основные параметры для разных типов UOC. Очень подробно об этом - опять же на сайте разработчиков: http://www.anyram.net/forum/viewtopic.php?id=18 http://www.anyram.net/forum/viewtopic.php?id=42