Важная информация

User Tag List

Страница 6 из 18 ПерваяПервая ... 2345678910 ... ПоследняяПоследняя
Показано с 51 по 60 из 176

Тема: Работа с SD контроллером на Специалисте_МХ2

  1. #51
    Veteran Аватар для Tronix
    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,933
    Спасибо Благодарностей отдано 
    78
    Спасибо Благодарностей получено 
    231
    Поблагодарили
    115 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Т.е., при 10МГц тактовой, SLOW (по сбросу) будет 625кГц а FAST 5МГц. Можно подать 5МГц и тогда нижняя будет ниже рекомендуемых 400кГц. Добавить еще один бит в делитель не позволяет EPM3032. В EPM3064 можно его добавить.
    Не пойму немного - сначала же выполняется (Pre[3] & Pre[2] & Pre[1]) | Ctrl[1]. По идее тут же не важно что будет в скобках, так как 1 or 1 = 1 ровно как и 0 or 1 = 1.

    Я, в принципе, для IBM PC прикидываю, там 14,31818 MHz. Добавил еще один бит в делитель, убрав красный светодиод и сократив Ctrl[3:0] до Ctrl[2:0]. Извиняюсь за офтоп с IBM PC.

  2. #52
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,404
    Спасибо Благодарностей отдано 
    318
    Спасибо Благодарностей получено 
    596
    Поблагодарили
    442 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ctrl[1] это бит скорости. И по сбросу он =0, поэтому не маскирует старшие биты делителя. Это же видно по симуляции. А потом, ты туда 1 записал и понеслась на ускоренном. Не забудь этот бит добавить внутрь скобок к уже имеющимся.

  3. #53
    Veteran Аватар для Tronix
    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,933
    Спасибо Благодарностей отдано 
    78
    Спасибо Благодарностей получено 
    231
    Поблагодарили
    115 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Спаял - не работает
    Извиняюсь за офтоп со своим IBM XT, если грубо нарушаю, то может быть отрезать в другой раздел или, не знаю. Простите модераторы.

    Просто посылка 10 байт от 1 до 10 выглядит так:



    В цикле послал байт в порт данных, жду пока сбросится BUSY в порту управления/статуса, шлю следующий. С другой стороны, если ПО "извне" игнорит BUSY и лупит подряд в порт данных, то передаются только "хорошие байты", но остальные есстественно теряются. Из тех же 10-ти байт передаются три нормальных байта - 0x03,0x05,0x09 (к примеру).

    Код сейчас такой:

    module MX2_CPLD(
    // Системные
    input Clk, // Входная частота 14.31818 МГц
    input nRes, // Входной сигнал сброса, активный уровень лог.0
    input nRD, // Вход строба чтения
    input nWR, // Вход строба записи
    input nCS, // Вход выбора контроллера
    input Adr, // Вход адреса данные/управление
    inout [7:0]Dat, // Шина данных
    // SPI
    output nSEL, // Выходной сигнал выбора карты
    output reg SCK, // Выход тактовой частоты SPI
    input MISO, // Вход данных SPI
    output MOSI, // Выход данных SPI
    output nRED, // Выход управления красным светодиодом
    input nINS // Вход датчика вставления карты
    );
    // Внутренние регистры
    reg [5:0]Pre; // Делитель частоты
    reg [2:0]Ctrl; // Регистр управления
    reg [7:0]Data; // Регистр данных
    reg [2:0]Bits; // Счетчик сдвигаемых бит
    reg RMISO; // Защелка сигнала MISO
    reg BUSY; // SPI занят передачей
    // Комбинаторика
    assign nSEL = ~Ctrl[0]; // Выбор карты
    assign nRED = ~Ctrl[2]; // Красная лампочка
    assign MOSI = Data[7]; // Выход MOSI SPI
    assign Dat[7:0] = (~nCS & ~nRD) ?
    (Adr) ? {~nINS,BUSY,3'h0,Ctrl[2:0]} : Data[7:0]
    : 8'hZZ;
    // Синхронная логика
    always @(posedge Clk) begin
    // Делитель частоты
    Pre[5:0] <= Pre[5:0] + 6'h1;
    // Запись в управление может происходить асинхронно
    if (~nCS & ~nWR & Adr) Ctrl[2:0] <= Dat[2:0];
    // Сигнал сброса имеет приоритет вне зависимости от выбранной скорости
    if (~nRes)
    begin
    // Сброс действует на эти регистры
    Ctrl[2:0] <= 3'h0;
    Bits[2:0] <= 3'h0;
    BUSY <= 1'b0;
    SCK <= 1'b0;
    end else begin
    // Состояние SPI
    if (BUSY)
    begin
    // Делитель частоты
    if (((Pre[5] & Pre[4] & Pre[3] & Pre[2] & Pre[1]) | Ctrl[1]) & Pre[0])
    begin
    // SPI работает
    if (SCK)
    begin
    // Сбрасываем такт
    SCK <= 1'b0;
    // Спад, поэтому сдвигаем
    Data[7:0] <= {Data[6:0],RMISO};
    // Считаем биты
    Bits[2:0] <= Bits[2:0] + 3'h1;
    // Это был 7й бит?
    if (Bits[2] & Bits[1] & Bits[0]) BUSY <= 1'b0;
    end else begin
    // Устанавливаем такт
    SCK <= 1'b1;
    // Это фронт, поэтому сэмплируем вход
    RMISO <= MISO;
    end
    end
    end else begin
    // Обнуляем счетчик бит
    Bits[2:0] <= 3'h0;
    // Запись в регистр данных возможна только если SPI не занят
    if (~nCS & ~nWR & ~Adr)
    begin
    Data[7:0] <= Dat[7:0];
    BUSY <= 1'b1;
    end
    end
    end
    end
    // Конец
    endmodule
    [свернуть]


    Из изменений - убран зеленый светодиод, делитель на 32, Res активный по высокому уровню. Вроде все.

    Вот еще меня смущает вопрос о назначении пинов (pin assigment). Там у epm3032 вроде нет разных банков IO, и я думал сначала что вообще пофигу, какой пин куда назначать. Но как оказалось - не пофигу. Я хотел сигналы SD вывести на "правую" сторону EPM, назначил их, но квартус при компиляции стал ругаться на тему что-то не может проложить (найти) путь от пина (или сигнала) такого-то до пина такого-то. Ладно, распихал пины более-менее последовательно, начиная с первого и до какого-то, скажем 27. Ругаться перестал и стал компилироваться. Странно, я такого не ожидал.

    И еще опять по пинам. У EPM3032 есть "глобальные" пины - Global Clock. Туда приходит OSC 14,3 MHz, это Clk у меня. Дальше есть еще Global Clear - это у меня Res и Global OE - это у меня nCS. И есть еще Ded. input (pin 2). Я туда nRD посадил. В то время как nWR у меня на обычном IO пине. Думаю не может здесь что-то такого быть. Может лучше nRD то же на обычный IO повесить?

    Половина шины данных оказалась в B.....



    [свернуть]

  4. #54
    Moderator Аватар для fifan
    Регистрация
    30.05.2007
    Адрес
    г. Лянтор, Сургутского р-на, ХМАО
    Сообщений
    4,165
    Спасибо Благодарностей отдано 
    106
    Спасибо Благодарностей получено 
    125
    Поблагодарили
    71 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Tronix, не замарачивайся с распределением пинов. Глобальные лучше по назначению. Если программа ругается предупреждениями это не критично. Главное чтобы не было ошибок. Где какой банк используется я никогда не обращал внимания. Вот с этим проектом при переописании я сталкнулся с глюками. Потом мне подсказали, что не задействованные пины нужно переводить в третье состояние. И всё стало нормально работать.

  5. #55
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,404
    Спасибо Благодарностей отдано 
    318
    Спасибо Благодарностей получено 
    596
    Поблагодарили
    442 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Tronix, ну а вопрос то в чем?

  6. #56
    Veteran Аватар для Tronix
    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,933
    Спасибо Благодарностей отдано 
    78
    Спасибо Благодарностей получено 
    231
    Поблагодарили
    115 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Tronix, ну а вопрос то в чем?
    Почему не работает....

  7. #57
    Veteran Аватар для zebest
    Регистрация
    11.01.2008
    Адрес
    Ладошкино
    Сообщений
    1,668
    Записей в дневнике
    4
    Спасибо Благодарностей отдано 
    320
    Спасибо Благодарностей получено 
    221
    Поблагодарили
    174 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    ну а вопрос то в чем?
    У меня вопрос по лампучкам
    assign nRED = ~Ctrl[2]; // Красная лампочка
    assign nGREEN = ~Ctrl[3]; // Зеленая лампочка
    я не дальтоник, но в чем отличие при работе? У мну как бы одна, вот думаю, на какую лучше повесить
    Profi v3.2 -=- Speccy2010,r2

  8. #58
    Moderator Аватар для fifan
    Регистрация
    30.05.2007
    Адрес
    г. Лянтор, Сургутского р-на, ХМАО
    Сообщений
    4,165
    Спасибо Благодарностей отдано 
    106
    Спасибо Благодарностей получено 
    125
    Поблагодарили
    71 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Там я есть легенда цвета светодиодов:
    RED - сигнал обращения к карте ("0" - активация светодиода) - Operate;
    GREEN - сигнал вставленной карты ("0" - активация светодиода) - Insert.

  9. #59
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,404
    Спасибо Благодарностей отдано 
    318
    Спасибо Благодарностей получено 
    596
    Поблагодарили
    442 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Можно, кстати, применить инверсную логику, как в свичах: не горит - нет карты, горит - карта вставлена и не работает, мигает - карта работает. Тогда хватит одной лампочки, высвободится регистр (и одна LE).

  10. #60
    Activist
    Регистрация
    02.01.2006
    Адрес
    Ufa
    Сообщений
    466
    Спасибо Благодарностей отдано 
    6
    Спасибо Благодарностей получено 
    8
    Поблагодарили
    8 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я так не совсем и понял, достаточно ли ПЛИС EPM7032SLC44 или всё же нужна EPM7064SLC44 ?
    Если достаточно - то не могли бы выложить прошивку?
    И какие нужно сделать изменения на плате МХ2 от perestoronin ?
    http://zx-pk.com/forum/viewtopic.php?f=7&t=466

Страница 6 из 18 ПерваяПервая ... 2345678910 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Продается Орель БК-08 с контроллером дисковода
    от zorel в разделе Барахолка (архив)
    Ответов: 7
    Последнее: 20.04.2012, 22:36
  2. Проблема с контроллером FDD
    от Eugeny в разделе Внешние накопители
    Ответов: 0
    Последнее: 13.11.2011, 13:33
  3. Проблема с контроллером дисковода
    от andreil в разделе Внешние накопители
    Ответов: 29
    Последнее: 04.09.2011, 20:48
  4. Аукцион Орель БК08 с контроллером дисковода
    от zorel в разделе Барахолка (архив)
    Ответов: 1
    Последнее: 24.08.2011, 22:29
  5. Трюки с контроллером FDD 82077
    от Titus в разделе Утилиты
    Ответов: 4
    Последнее: 10.06.2011, 19:17

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •