VladA 0 27 апреля, 2010 Опубликовано 27 апреля, 2010 · Жалоба У пользователя VladA отключен личный ящик, поэтому отвечаю здесь. Честно говоря, я создавал эту тему для того, чтобы как-то помочь людям разобраться с powerquicc. У меня нету цели как-то рекламировать себя и я не ищу себе какие-то дополнительные подработки. Поэтому - я готов бесплатно ответить на ваши вопросы в этой теме, если они у вас есть. Если нет желания разбираться самостоятельно, то лучше создать тему в разделе "Предлагаю работу". Желание разобраться есть. Конкретный вопрос: как заставить работать eLBC в режиме burst read/write? На пример: используя Freescale UPM editor, мы создали свой шаблон контрольных сигналов, которые должны генерироваться на локальной шине. Как инициировать начало обмена? Используя DMA? Или есть другие способы? В вurst Rd/Wr режиме мы хотим читать/записывать 16 16 битовых слов по одному и тому же адресу (по принципу FIFO, поддерживаемому FPGA). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_SY_ 0 29 апреля, 2010 Опубликовано 29 апреля, 2010 · Жалоба MPC8360 - выбрали для новой разработки, вы с ним работали? Какие посоветуете референс дизайны? Работал, немного. Референс-дизайнов там всего два, MPC8360E-MDS и MPC8360E-RDK. Второй по-моему разработан какой-то левой фирмой, как все дешевые платки. Посоветую конечно MDS, но лучше посмотреть конечно на схемы обоих и понять, что вам больше подойдет. Есть ли собственные разработки схемотехники и плат? Че-нить наверное найдется, но может быть на 8323, а не на 8360. И не уверен что до ума доведено. Конкретный вопрос: как заставить работать eLBC в режиме burst read/write? Да, тут есть подводный камень - само ядро никак нельзя заставить. Там есть инструкции типа stmv, но даже эти инструкции burst не генерят. На пример: используя Freescale UPM editor, мы создали свой шаблон контрольных сигналов, которые должны генерироваться на локальной шине. Как инициировать начало обмена? Используя DMA? Или есть другие способы? В общем случае - да, либо DMA либо любой другой bus master кроме ядра, например cache-контроллер. Т.е. при включенном кэше ядро будет лазить в память бурстами через cache-контроллер. Только имейте ввиду, что кэш без MMU включать нельзя. В вurst Rd/Wr режиме мы хотим читать/записывать 16 16 битовых слов по одному и тому же адресу (по принципу FIFO, поддерживаемому FPGA). В вашем же конкретном случае - никак, ибо по одному и тому же адресу burst невозможен. Бурст подразумевает последовательное чтение 32-х последовательных адресов, причем выровненных по модулю 32. Надо имитировать ситуацию, как будто у вас burst по 32-м последовательным адресам, ну а внутри вашего target-девайса просто игнорировать младшие 5 адресов. Т.е., если конкретно, то вы допустим читаете бурстом начиная с адреса 0, т.е. будет выполнены последовательные чтения с адресами 0, 2, 4, 6, 8, и т.д. всего 16 раз. Это все на шине пройдет как одна бурстовая транзакция. А внутри вашего девайса все эти адреса должны ссылаться в одно место. Только так можно получить бурст. Внутри самого UPM-ного цикла адреса никак трогать не надо, достаточно 16 раз дернуть transfer acknowledge. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gosu-art 0 20 мая, 2010 Опубликовано 20 мая, 2010 · Жалоба А кто нить может поделится примером схемотехники на MPC8536?? Интересует подключение шины LBC (GPMC и FCM). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_SY_ 0 21 мая, 2010 Опубликовано 21 мая, 2010 · Жалоба У Freescale есть плата на базе MPC8536, называется MPC8536DS, либо "Calamari". Схема от нее наверное должна быть доступна всем желающим, только на сайте почему-то не вижу. Можно спросить в сапорте, наверное пришлют. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gosu-art 0 21 мая, 2010 Опубликовано 21 мая, 2010 (изменено) · Жалоба Подключаю сейчас шину eLBC (GPCM режим, 32 бита для ОЗУ-2Д) Так вот… 1. Правильно ли я понял, что для адреса LSB это LAD[24:31], а для данных MSB-LAD[0:7]? Для чего так сделано? 2. Обязательно подключать адрес через защелку? Или можно LA использовать? Посоветуйте, как лучше сделать. P.S. это у меня первый серьезный проект, поэтому не судите строго за глупые вопросы)) Изменено 21 мая, 2010 пользователем gosu-art Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_SY_ 0 21 мая, 2010 Опубликовано 21 мая, 2010 (изменено) · Жалоба UPD: Протупил, извиняюсь. Схема платы лежит внутри ISO-шника с Linux BSP на эту плату, ISO-шник можно скачать с сайта: http://www.freescale.com/webapp/sps/site/o...5XX&tid=CWH Называется так: "MPC8536DS Linux Board Support Package - LTIB (DVD 4)" Ну 2 гига весит, к сожалению, но схема там точно есть внутри, в директории /help/hardware/DS В принципе это справедливо для всех плат - схема платы лежит внутри ISO-шника с линуксом. Подключаю сейчас шину eLBC (GPCM режим, 32 бита для ОЗУ-2Д) Так вот… 1. Правильно ли я понял, что для адреса LSB это LAD[24:31], а для данных MSB-LAD[0:7]? Для чего так сделано? Да, для 8-bit устройства. Зачем так сделано - не знаю, всегда так было в PowerQUICC. 2. Обязательно подключать адрес через защелку? Или можно LA использовать? Посоветуйте, как лучше сделать. Не обязательно, можно использовать LA. Только их всего 5 штук, не очень понимаю что вы на этом можете съэкономить. В мануале везде написано LA[7:31], так вот это неправда, на самом деле LA[27:31]. На самом деле вопрос об использовании не-мультиплексированных адресов вовсе не простой. В случае, если вы используете UPM и пытаетесь burst-транзакции делать - можно будет делать инкрементацию адреса без вставки LALE-циклов. Но для обычной флешки подключенной через GPCM об этом можно не думать. Изменено 21 мая, 2010 пользователем _SY_ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gosu-art 0 24 мая, 2010 Опубликовано 24 мая, 2010 · Жалоба Да, для 8-bit устройства. Зачем так сделано - не знаю, всегда так было в PowerQUICC. А разве для 32 битной шины не нужно младший байт LAD[0:7] цеплять на старший DATA [24:31] ? И как при этом подключать адрес? В даташиите написано, что младший для адреса байт – LAD[24:31]. т.е цепляем LAD[24:31] на ADR[0:7]?А остальные лини по стандарту? т.е. LAD[8:23] на DATA[8:23], и так же соответственно адрес? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_SY_ 0 24 мая, 2010 Опубликовано 24 мая, 2010 · Жалоба А разве для 32 битной шины не нужно младший байт LAD[0:7] цеплять на старший DATA [24:31] ? Для 32-bit шины LAD[0:31] надо цеплять на DATA[31:0], именной в обратной последовательности, нулевой к 31-му и т.д. При этом старший байт LAD[0:7] будет соответствовать DATA[31:24], и это именно старший байт, не младший. Для 16-bit - LAD[0:7] надо цеплять на DATA[15:8], LAD[8:15] на DATA[7:0] Для 8-bit - LAD[0:7] надо цеплять на DATA[7:0] И как при этом подключать адрес? В даташиите написано, что младший для адреса байт – LAD[24:31]. т.е цепляем LAD[24:31] на ADR[0:7]?А остальные лини по стандарту? т.е. LAD[8:23] на DATA[8:23], и так же соответственно адрес? В этих процессорах (традиционно) используется обратная нумерация, как шины адреса, так и шины данных. Т.е. внутри группы LAD[0:31] старшим значащим является LAD[0], младшим - LAD[31]. Поэтому при подключении, допустим, к обычной флешке - все адресные веревки должны быть перевернуты. Для 8-bit шины LAD[0:31] надо цеплять (через адресный latch) на ADDR[31:0], именно в обратной последовательности, нулевой к 31-му и т.д. При этом если флешка меньше размером, то старшие LAD[0], LAD[1] и т.д. остаются висеть в воздухе. Для 16-bit - LAD[31] не используется, надо цеплять LAD[0:30] на ADDR[30:0], тоже в обратной последовательности Для 32-bit - не используются LAD[31] и LAD[30], надо цеплять начиная с LAD[29], т.е. LAD[0:29] на ADDR[29:0], и тоже в обратной последовательности Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gosu-art 0 24 мая, 2010 Опубликовано 24 мая, 2010 · Жалоба Для 16-bit - LAD[31] не используется....... Для 32-bit - не используются LAD[31] и LAD[30]............ Вроде это про LA, а не про LAD(п. 13.5.1.1 Multiplexed Address/Data Bus for 32-Bit Addressing). Или я ошибаюсь? The eLBC supports port sizes of 8, 16, and 32 bits. When there is an access larger than the port size, the eLBC breaks up the access into smaller transactions using the non-multiplexed address signals LAn. For 32-bit devices, LA[30:31] are irrelevant since these address bits are implicit in the byte lanes which carry data. Similarly, for 16-bit devices, LA[30] is used and LA[31] is irrelevant; however, for 8-bit devices, LA[30:31] are necessary. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_SY_ 0 25 мая, 2010 Опубликовано 25 мая, 2010 (изменено) · Жалоба Это вообще для всех. Попробую объяснить, извиняюсь если слишком подробно: Каждое значение адреса адресует 1 байт. Если у вас ваша флешка 8-битная, и вы пишете 8-bit по адресу 0x00000000, то следующие 8-bit будут по адресу +1, т.е 0x00000001 Если у вас ваша флешка 16-битная, и вы пишете 16-bit (2 байта) по адресу 0x00000000, то следующие 16-bit будут по адресу +2, т.е 0x00000002 Ну и так далее: 0x00000000 0x00000002 0x00000004 0x00000006 0x00000008 Видно, что младший бит адреса всегда равен нулю. А со стороны флешки - каждый адрес адресует 16-бит. Т.е. можно записать 16 бит по адресу 0 и следующие 16-бит по адресу 1. Поэтому, младший адрес флешки в таком случае подключают не к первому (младшему) адресу шины, а ко второму. Для 32-bit устройства все аналогично, только не используются два младших адреса. В этом смысле разницы между LAD[] и LA[] нету. Изменено 25 мая, 2010 пользователем _SY_ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gosu-art 0 26 мая, 2010 Опубликовано 26 мая, 2010 · Жалоба Спасибо за развернутый ответ!!! Все понял! Но по ходу возникли следующие вопросы)))): 1. Могу ли я заменить ADR[29:27] на LA[29:27] для GPCM ? (полагаю да) 2. Для глобальной записи из WE юзать? WE[0]? 3. Если мне нужны сигналы LBS[0:3] (при чтении и при записи), то уже GPСМ использовать не получится? Откуда в этом случае можно взять глобальный сигнал записи? Прилагаю схемку…. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_SY_ 0 26 мая, 2010 Опубликовано 26 мая, 2010 (изменено) · Жалоба 1. Могу ли я заменить ADR[29:27] на LA[29:27] для GPCM ? (полагаю да) Да, конечно. 2. Для глобальной записи из WE юзать? WE[0]? Если возможна запись только 32-bit целиком, то можно использовать любой из WE[0:3], т.к. при записи 32 бит они все будут активны. Если устройство поддерживает побайтовую запись, т.е. использует сигналы байт-селектов, то либо объединять все 4 вместе по или (точнее - и), либо использовать глобальный LBCTL. 3. Если мне нужны сигналы LBS[0:3] (при чтении и при записи), то уже GPСМ использовать не получится? Откуда в этом случае можно взять глобальный сигнал записи? Байт-селектов в GPCM нету, только индивидуальные WE. Либо использовать UPM (что вобщем тоже несложно), либо городить на внешней логике схемку из WE[0:3] и OE. Либо третий вариант - принять мужественное решение забить на байт-селекты и обращаться к этой памяти только 32-битными транзакциями. Прилагаю схемку…. По схемке: 1. Байт-селекты перепутаны. LBS0 соответствует LAD[0:7], LBS1 - LAB[8:15], и т.д. У вас на схеме LBS0 подключен к BE0L, который по всей видимости разрешает первый байт I/O[0:7], а там LAD[24:31]. 2. GPCM не будет работать без пулапа на LGTA 3. LSYNC_IN должен быть соединен с LSYNC_OUT через петлю обратной связи, если local bus будет использоваться на высокой частоте, т.к. там надо будет включать DLL mode. 4. Адресный latch наверное такой большой не нужен, если всего 14 адресов использовать. 5. Стартовать ваш процессор откуда будет, если LCS0 не подключен? Изменено 26 мая, 2010 пользователем _SY_ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
slavayo777 0 27 мая, 2010 Опубликовано 27 мая, 2010 · Жалоба Такой ламерский вопрос... Никогда с DDR2 не работал... 1. Можно ли подключить 1 чип MT47H16M16BG к MPC8323 или обязалово пару надо? 2. Есть ли аналоги подешевле, ну или какими чипами памяти пользуетесь вы? 3. Выкладывают ли на фрискейлы прошивки для I2C епромки, которая грузит ю-бут через кермит в параллельную флешку? Один чип MT47H16M16BG стоит 9-10 баксов... несправедливо как то, если учесть что целая планка DDR2 в комп стоит столько же, где штук 8 чипов стоит аналогичных... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_SY_ 0 28 мая, 2010 Опубликовано 28 мая, 2010 · Жалоба 1. Можно ли подключить 1 чип MT47H16M16BG к MPC8323 или обязалово пару надо? Нет, MPC8323 DDR контроллер не поддерживает 16-bit, эта поддержка есть в 8313 и 8315 2. Есть ли аналоги подешевле, ну или какими чипами памяти пользуетесь вы? Ну аналоги-то известны - Samsung, Kingston, Hynix Пользоваться удобнее готовыми SODIMM модулями, там где размер платы позволяет. Просто потому что за счет SPD информации появляется некоторая гибкость настройки. 3. Выкладывают ли на фрискейлы прошивки для I2C епромки, которая грузит ю-бут через кермит в параллельную флешку? Не видел, но я думаю никакого секрета в ней нету, напишите в сапорт - пришлют образ. Один чип MT47H16M16BG стоит 9-10 баксов... несправедливо как то, если учесть что целая планка DDR2 в комп стоит столько же, где штук 8 чипов стоит аналогичных... Ну не совсем "аналогичных", 16-битных чипов вы там скорее всего не найдете. А если найдутся, то что мешает распаять планку? Бывало и такое. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
slavayo777 0 28 мая, 2010 Опубликовано 28 мая, 2010 · Жалоба Нет, MPC8323 DDR контроллер не поддерживает 16-bit, эта поддержка есть в 8313 и 8315 Не понятно... А чипы есть 32-битные? Ни у микрона, ни у самсунга не нашел модулей x32 most JEDEC standard x8, x16, or x32 DDR2 and DDR memories available. x8 x16 x32 width модулей - это и есть разрядность модулей? тоесть чтобы подключить память над или 4 модуля x8, или 2модуля x16, или 1x32? Не видел, но я думаю никакого секрета в ней нету, напишите в сапорт - пришлют образ. В какой момент загрузки линукса (от включения питания до логина) происходит инициализация DDR контроллера? Просто если поменять память, пойдет ли этот образ I2C флешки для новой системы? И где хранится конфигурация в образе линукс, чтоб можно было ее изменить? :smile3046: Ну не совсем "аналогичных", 16-битных чипов вы там скорее всего не найдете. А если найдутся, то что мешает распаять планку? Бывало и такое. Это идея :) А какие там обычно чипы используются? Кому интересно - ссылка на сравнительную таблицу продуктов PowerQUICC на сайте freescale http://www.freescale.com/files/32bit/doc/b...RDSDPRODSUM.pdf В этой таблице написано что у MPC8323E: T1/E1 - 2 , T3/E3 - вообще нету!!!! В даташите: The SI includes the following features: • Can connect to four independent TDM channels. Each can be one of the following: — T1 or CEPT line — Integrated services digital network primary rate (PRI) — ISDN basic rate–interchip digital link in 4 channels (IDL) — E3 or DS3 clear channel. ---------4 Е3!!!! — User-defined interfaces. • Independent, programmable transmit and receive routing paths. • Total of 512 routing entries for receive and transmit each. ----- 512 таймслотов - это 16х32, тоесть как раз Е3 поток • Total of 256 routing entries + 256 shadow routing entries for receive and transmit each. Эта строчка пока непонятна... ----------------------------------------------------------------------- Кому верить то? В таблице - 2хЕ1, а в даташите 4хЕ3! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться