Jump to content

    

flammmable

Участник
  • Content Count

    116
  • Joined

  • Last visited

Community Reputation

0 Обычный

About flammmable

  • Rank
    Частый гость

Recent Profile Visitors

1156 profile views
  1. В этом и вопрос. Почему конфигурационные памяти всегда и у всех стоят очень дорого? Что в них такого? У Атмела-Микрочипа для AT17LV010 или AT17F040 - тоже плата за имя бренда? Хм будет ли в ответе стоящая мысль, если он начинается с тыканья незнакомым людям... ...и продолжается орфографическими ошибками?
  2. Самая дешевая микросхема в разделе конфигурационных памятей на Маузере стоит $9.13. В тоже время, 10M02SCE144C8G (одна из самых дешевых ПЛИС у Интела) со встроенной конфигурационной памятью стоит $11.97. Я бы понял, если бы фирменные интеловские памяти были искусственно завышены в цене. Но у Атмела-Микрочипа плюс-минус такие же цены. В чем причина столь высокой цены на конфигурационные памяти?
  3. Это да. На Али "100% новый и оригинальный STM32F103RCT6" продается за 100,44руб.
  4. Вы не заглядывали в раздел "Продам"? Может кто продает, кому они не нужны? :)
  5. Вам тоже нужны STM32F103RFT6 ? :)
  6. Решил продать 5шт. STM32F103 (RCT6) т.к. увлекся ПЛИСами, а контроллеры пылятся на полке без дела. Город - Москва. В Чип-и-Дипе данный МК стоит 420руб/шт., в Электронщике - 532руб/шт. Думаю, что было бы справедливо запросить за мои - 400руб/шт. flammmable@yandex.ru
  7. А STM32F103RCT6 или STM32F103RET6 вам не подойдут?
  8. И эти самые риски ДКО "Электронщик" непринужденно перекладывает на клиента. Что-то у них случилось в 2018-2019 году и всё покатилось по наклонной. А ведь в 2017 это был пожалуй лучший магазин.
  9. Спасибо за столь быстрый ответ! Я как раз об этом подумал, когда перечитывал свой вопрос. Но что, если нужно передавать на устройство и текст и поток данных?
  10. Есть проектируемое устройство, которое предполагается соединить с ПК при помощи RS-232. С одной стороны было бы неплохо, чтобы устройство отвечало на *IDN? ,набитого в терминале. С другой стороны при необходимости передачи изохронного (равномерного по времени) потока данных (значения напряжений для ЦАПов данного устройства) было бы нелепо передавать его в текстовом виде - канал потеряет скорость в разы просто так. Как есть идеологические варианты организовать переключение между этими режимами?
  11. Типа памяти? Вот раздел с примерами реализации различных памятей. Или вы хотите двунаправленную шину внутри ПЛИСа? Если так - это невозможно.
  12. Подобную конструкцию делителей if(counter[5] && counter[4] && counter[0]) begin я увидел в примере Марсохода, посвященном UFM вот здесь. Задал вопрос на electronics.StackExchange, там присоветовали заменить на выражение if(counter & DIVIDER == DIVIDER) begin По количеству LE в синтезаторе Квартуса результат получился одинаковый. Однако, в комментариях также упомянули крохоборство и преждевременную оптимизацию, сказав, что проблема скученности возникнет быстрее, чем недостаток LE. Большое спасибо за все комментарии!
  13. Стандарты написания кода предостерегают от использования т.н. магических чисел. В частности в "SEI CERT C" есть правило DCL06-C. Для Verilog данное правило также актуально. Но тут есть вопрос. Глядя на отдельное выражение типа some_reg <= 1; не ясно, идет ли речь об установке логического значения TRUE, о переводе некой линии в состояние HIGH или присвоении регистру целочисленного значения, равного единице. Чтобы исключить эту неопределенность, возможно следует определить параметры TRUE, FALSE, HIGH и LOW, а затем использовать уже их в коде. Делаете ли вы так? Если да, то где именно вы прописываете определения TRUE-FALSE-HIGH-LOW ?
  14. Лучшим делителем частоты является PLL, встроенный в ПЛИС. Однако, PLL-ов ограниченное количество и иногда оптимальным решением является сделать делитель на основе счетчика: reg [7:0]counter = 0; reg divided_clk = 0; always @(posedge clk) begin if(counter == DIVIDER - 1) begin divided_clk <= ~divided_clk; counter <= 0; end else begin counter <= counter + 1; end end Однако, сравнение if(counter == DIVIDER - 1) begin не оптимально использует логические элементы. Есть вариант проверять установку какого-либо бита: if(counter[DIVIDER_POW]) begin т.е. делить частоту на степень двойки. Однако, пропадает гибкость и точность установки делителя. Также возможно подобрать определенный делитель, вычесть из него единицу, перевести результат в двоичное число, а затем сделать лог.И всем разрядам с единицами. И вставить эту штуку в условие. Для делителя "50" будет что-то типа того: if(counter[5] && counter[4] && counter[0]) begin Логики тратится меньше, чем в первом случае. Но как параметризовать подобную конструкцию?