Jump to content

    

=AK=

Свой
  • Content Count

    3050
  • Joined

  • Last visited

Community Reputation

0 Обычный

1 Follower

About =AK=

  • Rank
    pontificator
  • Birthday 01/01/2009

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Recent Profile Visitors

5202 profile views
  1. Как предложено на сайте, попросил ссылку на вход в магазин. Ссылку на емэйл получил, а примерно через день на этот адрес пришел еще и спам вида "Your account was approved" на якобы $10.443,83, чего ранее не было. Как выяснилось, ссылку просил зря, поскольку в страну Оз доставки нет. Можно было бы об этом и прямым текстом на сайте написать.
  2. FT4222H, он и мастер I2C, и слэйв. Однако API библиотека LibFT4222 работает не через CDC, а через D2XX драйвер. Есть и под Вин, и под Линукс, и под Мак.
  3. Если вы работаете через последовательный порт, то смена клока изменит бодовую скорость и связь будет потеряна. Чтобы этого не случилось, надо одновременно с частотой клока перенастраивать скорость последовательного порта. При малой частоте клока большую бодовую не получить, поэтому придется закладываться на минимальную бодовую, которая доступна при наименьшей частоте клока. А с I2C слэйвом этих проблем и в помине нет, можно менять частоту клока как угодно. Именно как слэйв, а не как мастер. Если к PIC-у по I2C уже приделано какое-то устройство, то для FT200DX никаких дополнительных аппаратных ресурсов вообще не потребуется. Его можно привесить к той же шине I2C и кидать в него ASCII символы, они появятся в терминальной программе PC. А то, что PC накидает в FT200X можно выгребать из его буфера в любом удобном темпе. Ни с прерываниями возни, ни с освоением MSSP, все можно сделать через два пина PIC-а, быстренько организовав бит-банг I2C мастер.
  4. FT200DX и модули на eго основе, они есть на eBay. Для PIC-а этот чип является I2C слэйвом. Поэтому, в отличие от прочих решений, обращаться к нему можно сколь угодно медленно, на лету менять частоту процессора, и т.д., ему это безразлично. А на стороне PC он выглядит как обычный последовательный порт. Я сейчас такой модулек из eBay использую с одним из PIC16 как раз для того чтобы мониторчик организовать, очень доволен. На PC использую обычный терминал, PuTTy.
  5. ТОЭ является ключом для схемотехники. Всякая принципиальная схема преобразуется в эквивалентную схему (иногда ее называют схемой замещения). А эквивалентная схема рассчитывается по правилам ТОЭ. Надо только руку набить, чтобы быстро, "в уме", "на лету": 1) преобразовывать принципиальные схемы в эквивалентные 2) оценивать как работают эти эквивалентные схемы
  6. Кооперативная ось под Ардуино https://github.com/akouz/a_coos Кооперативная ось на чистом С https://github.com/akouz/coos Что характерно, вообще без ассемблерного кода.
  7. Ваш вариант 2 более-менее близок к истине. Внутренние защитные диоды в большинстве случаев имеются на всех входах. Большой ток через эти диоды может вызвать срабатывание паразитной тиристорной структуры, после чего микросхема "защелкнется" и можно сказать "закоротит" свое питание. После этого результат зависит от мощности источника питания. Если источник питания мощный, микросхема сгорит. Если маломощный - просто просадит питание, но все восстановится после того, как питание на некоторое время будет убрано. Интересный вопрос - какой ток через защитные диоды может вызвать "защелкивание" паразитной тиристорной структуры? Защитные диоды предназначены для защиты от статического электричества при транспортировке и хранении. Соответственно, в даташитах указываются их предельно-допустимые характеристики для режима, когда микросхема обесточена. Как правило это 20 мА или более, такой ток не выведет из строя сам защитный диод. Однако для срабатывание паразитного тиристора достаточно намного меньшего тока, который не приведет к выходу из строя самого защитного диода. Разные люди много раз задавали службам поддержки вопрос о том, какой ток допустим через защитные диоды, когда на микросхему подано питание. Если ответ от служб поддержки был, то, как правило, ток через защитный диод рекомендовалось обеспечивать не более чем 0.5 мА. Вот для этого резистор R3 и стоИт в приведенной вами схеме. Диоды 1N4148 могут выдержать импульсный ток до 3А, но через R3 (т.е. через встроенные защитные диоды) при этом будет течь ток не более 0.5 мА. Паразитная тиристорная структура не сработает, микросхема не "защелкнется" по питанию.
  8. Выпаять микроконтроллер Atmega328 и впаять Atmega328PB взамен, в нем два UART-а. Или купить готовый Arduino Pro Mini с уже запаянным 328PB (вот еще один такой)
  9. И у меня в исходном посте, и в примере из Википедии первым идет старший бит, поэтому добавляется сначала старший байт, а потом младший. Я проверил, получилось. Исходное число 0x123456789ABC после вычисления CRC-16/CCITT дало результат 0xA840. Приписав A840 в хвост исходного числа получаем в результате 0.
  10. Это означает, что связной софт писали малограмотные люди, заложившиеся на наличие подтяжки. Для RS485 это совсем не редкость.
  11. Спасибо. Почитал английскую Википедию - все именно так и есть, и даже пример приведен. The validity of a received message can easily be verified by performing the above calculation again, this time with the check value added instead of zeroes. The remainder should equal zero if there are no detectable errors. 11010011101100 100 <--- input with check value 1011 <--- divisor 01100011101100 100 <--- result 1011 <--- divisor ... 00111011101100 100 ...... 00000000001110 100 1011 00000000000101 100 101 1 ------------------ 00000000000000 000 <--- remainder
  12. Я вычисляю CRC-16-CCITT для некого массива N байт, big endian. После этого приписываю в конец этого массива два байта вычисленного CRC, сначала MSB, потом LSB, и посылаю массив с добавленным CRC приемнику. Приемник принимает массив, включая два байта CRC, и вычисляет CRC всего принятого массива. Можно ли утверждать, что, при отсутствии искажений и помех в канале, приемник, в результате вычисления CRC полного массива (т.е. включая два байта CRC), всегда будет получать значение 0x0000? Хотелось бы узнать математически достоверное доказательство, всегда ли результатом будет 0 или нет.
  13. Похоже что RS485 в блоках ПЧ гальванически развязан от самого блока. Если так, то перемычки, соединяющие клемму 61 с 20 в каждом блоке являются вредными и могут быть той самой причиной, почему все работает плохо. Надо соединить так: 1) A(STM32) - 68(ПЧ1) - 68(ПЧ2) - 68(ПЧ3) 2) B(STM32) - 69(ПЧ1) - 69(ПЧ2) - 69(ПЧ3) 3) GND(STM32) - 61(ПЧ1) - 55(ПЧ1) - 61(ПЧ2) - 61(ПЧ3) То есть, изолированные земли RS485 (клеммы 61) должны быть соединены между собой, а перемычка от них на клемму 55 должна быть сделана в одном и только одним месте, в том ПЧ, откуда STM32 берет питание.
  14. "Правильный" - это тот, на который заточен электронный модуль. Так что купили именно что хрен знает какой неправильный, который не годится для этого модуля. Повторяю дельный совет: купите правильный терморезистор и не страдайте ерундой.