====== 1636РР - ПЗУ с электрическим перепрограммированием Flash-типа ====== **Замечания ГК:** **1. Изначально хотели полную совместимость РР4 с РР2. Но фабрика не смогла обеспечить те характеристики, которые были нужны.** **2. Сектора изменились, так как при той технологии фабрики, что нам была доступна, размер кристалла при сохранении старой структуры секторов увеличивался и не помещался в корпус с нужной циколёвкой. Поэтому увеличили размер секторов, то есть ёмкость сектора была взята больше, чтобы уместиться в корпус. некоторое уточнение про команды: ** **3. Команды не изменились, а дополнились новым функционалом. Единственная операция и соответствующая ей команда, которая была удалена это приостановка стирания/возобновление стирания, так как новая технология не имела этой функции.** **Вопрос перехода на другую технологию был неизбежен, так как технология РР2 вызывала вопросы, на которые не находилось ответа. Многие производители предлагают переход на новые продукты которые уже не совместимы со старыми как раз из-за ограничения технологии.** **4. ID микросхем 1636РР3У и 1636РР4У при работе по параллельному интерфейсу различаются - 4F и C8 соответственно. При работе по интерфейсу SPI - одинаковые: С8. ** 1636РР1, 1636РР2, 1636РР3, 1636РР4 - программируются одним программатором, ПО - ProgFlash Память 1636РР4 вставляется в колодку 1636РР2 и производится прошивка. Для прошивки необходимо использовать свежее ПО с сайта (Поскольку старое ПО (более 7 лет), может некорректно работать с 1636РР4. ====1636РР1 - Микросхема электрически стираемого и перепрограммируемого постоянного запоминающего устройства Flash-типа==== Выводы микросхемы 1636РР1БУ **nOE, nWE, OE_HV, A9_HV** используются для работы **по параллельному интерфейсу**. При работе **по последовательному интерфейсу** используются **MRST, STROBE, TCK, TDI** (рис. 17 "Временная диаграмма записи/чтения последовательного канала", спецификация Версия 2.10.1 от 05.03.2015 ) __Неиспользуемые в последовательном интерфейсе выводы__ (**nOE, nWE, OE_HV, A9_HV** ) должны быть переведены в неактивное состояние. Неактивное состояние определено в таблице 2, выбор в качестве nCE уровня логической единицы, позволит одновременно обеспечить режим пониженного энергопотребления. ==== 1636РР2 - микросхема электрически стираемого и перепрограммируемого постоянно запоминающего устройства Flash-типа. ==== В этой микросхеме памяти приоритетным является последовательный Flash интерфейс. Поэтому, учитывая, что в спецификации(стр. 21) написано, что, //**Примечание**// - Для входа в последовательный режим работы STROBE=1 должен быть зафиксирован по переднему фронту TCK. Для выхода из последовательного режима необходимо произвести сброс с помощью сигнала MRST=0, то любая помеха на STROBE, которая выставит на нем "1", переводит микросхему из параллельного режима в последовательный, из которого она может вернуться только по сбросу. => STROBE тоже рекомендуется подтягивать земле, а не оставлять свободным. У микросхемы есть внутренние резисторы подтяжки, по словам разработчиков, порядка 300кОм. ====1636РР4 - ПЗУ с электрическим перепрограммированием Flash-типа==== **//Приоритетность интерфейсов://** //**высший: SPI**// //**средний: последовательный Flash**// //**низкий: параллельный**// 2 последовательных интерфейса и один параллельный. Последовательные: 1. SPI 2. последовательный Flash (используется для программирования) На самом деле в микросхеме один последовательный канал, поэтому можно либо работать по последовательному Flash в режиме программирования, либо по SPI. **При работе по параллельному интерфейсу**: SEL_SPI - к земле, используя резистор подтяжки, как в "Осведомленности" (1кОм). //Можно ли без доработок на место 1636РР2 поставить 1636РР4: нужно ли подтянуть вывод SEL_SPI к нулю или можно оставить неподключенным для того, чтобы работать по параллельной шине?// Высокий уровень на входе SEL_SPI задает работу микросхемы в режиме SPI. Логический ноль обеспечит работу по параллельной шине. В микросхеме 1636РР4У есть слабая подтяжка к нулю на этом выходе, но чтобы обеспечить гарантированную работу по параллельной шине, лучше подтянуть этот вывод к земле дополнительно. При замене микросхем 1636РР2У на 1636РР4У обратите, пожалуйста, влияние, что адресное пространство секторов у этих двух микросхем разбито по-разному, и немного разная система команд, поэтому в коде будут различия. У некоторых выводов есть внутреннее доопределение, но, для надежности, можно подключить их к неактивному уровню: TDI, TCK, STRB - к нулю, MRST - к единице. ---- **При работе по последовательному FLASH** - SEL_SPI - низкий уровень (доступен параллельный и 3-х выводной последовательные интерфейсы). SPI в этом случае не доступен. Первое обращение по 3-х выводному интерфейсу в этом случае выключит параллельный интерфейс (до сброса). **Неиспользуемые входы SCK, SI и nCE** нужно доопределить, чтобы не болтались (nCE в высокий уровень). Как доопределить: Можно подтягивать как через резисторы, так и напрямую, перемычкой. Если вывод является только входом, то обычно это всё равно, резисторы или прямое соединение, лишь бы подаваемые уровни соответствовали допустимым по ТУ. Но бывает, что где-нибудь в ТУ, напишут о необходимости резисторов. И, следовательно, нужно подключать через резисторы, не потому что напрямую нельзя, а потому что так написано в ТУ. В таблице 14 указан ток при и высоком и низком уровне на входе. Но отдельно указанный ток высокого уровня для выводов TDI, OE_HV, A9_HV, SEL_SPI, SCK, SI, TCK, MRST, STROBE говорит о наличии на этих выводах внутреннего резистора подтяжки, тянущего к земле, т.е. в низкий уровень. В принципе, можно ограничиться и этими встроенными резисторами, а можно для повышения помехоустойчивости продублировать внешней схемой. SI, SCK - полностью аналогичны SEL_SPI (см. описание выше). ---- **При работе по SPI** //Нужно ли задавать логические уровни из вне на выводах A9_HV,OE_HV,nCE,nOE,nWE при работе с микросхемой через интерфейс SPI? Можно ли их в таком случае оставить не подключенными?// Выводы nОE, nWE можно подключить к питанию. Входы OE_HV, A9_HV необходимо подключить к земле. ===Особенность обмена данными по SPI МК 1986ВЕхх с микросхемой памяти 1636РР3(4)У=== Вывод nCE используется для выбора микросхемы активным нулем. Формат обмена данными по SPI с микросхемой 1636РР4У(3У) требует чтобы на время выполнения операции сигнал nCE был всегда в активном состоянии (логический ноль). Так, например, для операции чтения массива данных необходимо установить сигнал nCE в активное состояние, после чего передать 1 байт команды, далее 3 байта базового адреса массива и в зависимости от кода команды (0Bh или 03h) передать фиктивный байт. Сразу после этого начнётся передача массива данных от микросхемы 1636РР4У(3У). Выдача данных будет выполняться до тех пор, пока сигнал nCE поддерживается в активном состоянии (ТСКЯ.431214.005СП, пункт 4.23 Операция чтения массива данных, стр. 26). Поэтому для минимального обмена данными (принять 1 байт) необходимо удерживать сигнал nCE в активном состоянии на время передачи 1+3+1=5 байт. Аппаратно контроллер SSP в МК 1986ВЕ1Т и 1986ВЕ9х поддерживает передачу пакетов до 2 байт, после чего сигнал SSP_FSS будет переведен в неактивное состояние, что будет означать для микросхемы памяти прекращение операции. Поэтому управление сигналом nCE необходимо осуществить программно. Например, можно использовать любой вывод МК, настроенный как порт ввода-вывода. Остальные сигналы SPI подключаются к МК в зависимости от настройки портов. Например, можно сделать подключение для МК 1986ВЕ1Т:\\ SI-PD2(SSP1_TXD),\\ SO-PD3(SSP1_RXD),\\ SCK-PD4(SSP1_SCK).\\ Для выводов PD2-PD4 должна быть выбрана альтернативная функция ---- **ДООПРЕДЕЛЕНИЕ ШИНЫ АДРЕСА И ДАННЫХ** Шина адреса - всегда вход. Если нужно использовать не всю микросхему, а только половину, то подтягивая к уровням, задаем адрес. Шина данных так или иначе для одной из сторон всегда выход. Общие рекомендации в отношении входов: Подтяжка, или корректнее сказать доопределение **не используемых входов** микросхемы до логических уровней, нужна обязательно. Причем не только управляющих сигналов, а именно ВХОДОВ. Это влияет как на энергопотребление (плавание всех входов), так и на возможность перехода микросхемы в случайное состояние, включая запись/стирание (плавание управляющих входов). Конкретный список доопределяемых входов и направление доопределения выбирает РАЗРАБОТЧИК, исходя из придуманной им схемы включения. Входы нужно подтягивать к земле или питанию (в зависимости от того какой уровень является не активным). Как подтягивать - через резистор (и какого номинала) или напрямую - **решает разработчик**. //Есть общее правило, если вывод ВСЕГДА вход, то можно напрямую, если, конечно, где-нибудь в ТУ не прописан формальный запрет на это.// Если разработчик сомневается, что этот вход может вдруг стать выходом, то через резисторы. Номинал резисторов выбирается из конкретной схемы и условий эксплуатации, и должен обеспечить гарантированное нахождение входа в состоянии требуемого логического уровня с одной стороны, а с другой стороны не перегрузить вывод, если он вдруг станет выходом. Шину данных, если она является выходом подтягивать не нужно. Она всегда выход - либо для одной либо для другой микросхемы. В некоторых конкретных схемах требуется подтяжка шины данных, но для достижения других разнообразных целей, и соответственно номинал подтяжки и направление зависит от того, что требуется. КП EXT_POR, TM<2:0> - ПОДКЛЮЧАТЬ НЕ НУЖНО (запрещается подведение каких-либо электрических сигналов (в том числе шин "Питание", "Общий") к выводам микросхем, не используемым согласно схеме электрической. Схема электрическая структурная приведена на рисунке 1 спецификации) ---- //**1636РР3У Максимально допустимое значение напряжения, прикладываемого к выходу SO в высокоимпедансном состоянии (nCE='1').**// Все площадки в микросхеме одного типа, выключенное состояние SO - это вход. Поэтому если SO ни при каких условиях не будет выходом, то для него действуют те же правила ТУ, что и для D0-D7. ---- Количество циклов записи/стирания указано для всей микросхемы. Если какие-то страницы или банки не стирать, то их ресурс не будет тратиться. ---- //**ОШИБКА ОБМЕНА ДАННЫМИ** [[http://forum.milandr.ru/viewtopic.php?f=5&t=75&hilit=1636%D0%A0%D0%A04&start=120#p17860|тема на форуме]] Выбрана работа по SPI, SEL_SPI=1. Программатор при работе в ProgFlash выдает "Ошибка обмена данными", если попробовать стереть-записать, то сначала вылазит "Ошибка обмена данными", потом "Ошибка записи". // Если SEL_SPI=1 то интерфейс программатора блокируется, находясь при этом в сбросе. Нужно управлять выводом SEL_SPI, выбирая его равным нулю при прошивке через программатор. ---- **Можете ли Вы дать заключение (какие-то гарантии) о невозможности восстановления информации, ранее записанной в микросхемы Flash-памяти, после выполнения команды стирания и проверки того, что все байты в микросхеме стерты?** К сожалению нет, так как такого рода задачи не доказуемы. Мы можем проверить различными методами, что информация не восстановилась. Но общее число таких методов неизвестно и потому все их перебодать невозможно. Обычно это решают сами разработчики делая для уничтожения старой информации несколько циклов записи случайной информации и стирания. ====== 1636HH51E - микросхема ЭППЗУ Flash-типа с параллельным интерфейсом ====== Микросхема поддерживает одобренную JEDEC программно-защищенную запись данных. Цитата из спецификации: Микросхема поставляется с разрешенной программно-защищенной схемой записи данных. Разрешение этой схемы осуществляется записью трех командных последовательностей перед началом цикла загрузки страницы. Пояснения: В новой микросхеме программно-защищенная запись данных не инициализирована. Инициализируется для одной страницы записью трех командных последовательностей перед началом цикла загрузки страницы. После этого для страницы становится активным режим программно-защищенной страничной записи, который не сбрасывается выключением питания, а только подачей определенных командных последовательностей. Защищена только та страница, для которой инициализирована эта защита. Другие страницы или часть страниц могут быть запрограммированы без защиты, соответственно не нужна последовательность трех команд, но также данные могут потеряны и скачке Ucc и т.д.