Jump to content

    

slavka012

Свой
  • Content Count

    824
  • Joined

  • Last visited

Community Reputation

0 Обычный

About slavka012

  • Rank
    self made
  • Birthday 01/01/1973

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Recent Profile Visitors

3555 profile views
  1. Лет 8 сотрудничал с человеком из Херсона. Около месяц назад он пропал, хотя и закончил работу над платой, за которую я ему еще не заплатил. (не потому, что не хотел. Собственно даже еще и счет не был выставлен.) Из контактов есть только скайп и емейл. Скайп вечно оффлайн, емейл без ответов. Раньше такого не происходило. Есть еще почтовый адрес, но он не очень помогает. Зовут его Алексей Н. Полная фамилия известна, но писать не хочу в открытую. Волнуюсь, в порядке ли он. Если кто-то что-то вдруг случайно знает, буду признателен.
  2. В этом коде ужасно все :) И форматирование, и алгоритм, и названия переменных. Быстрее одного деления он будет работать недолго, только если у вас итераций мало. Если в таблице будет хотя бы сотня значений. А главное, кусочно линейная интерполяция и не требует целочисленного деления, если у вас грамотно выбрано кол-во элементов. Всегда можно обойтись делением на степень двойки.
  3. Резистор последовательно с конденсатором достаточно для большинства применений. Ставить TVS для защиты от статики это деньги на ветер. Едиственный смысл всех этих защит на внешних разъемах устройств это защита от криуворукого техника, который будет лапать схему за разъемы во время установки. После установки и подключения эта схема никогда уже не увидит ESD на этих цепях. TVS может быть оправдан на скоростных цепях коммуникации, где резисторы и конденсаторы будут существенно ухудшать фронты, и там где могут быть многократные соединения-разъединения пользователями.
  4. Нормально работает. Да, установка бита в коде делается фунцией, что, возможно кто-то сочтет недостатком. Но по факту на большом арме с IO, который сидит на шине, точных времен ногодрыгом все равно не добиться. По мне так удобство и наглядность в моем случае компенсируют потерю производительности.
  5. // in the API .h #define M_PORT0 0x0000 #define M_PORT1 0x0100 #define M_PORT2 0x0200 #define M_PORT3 0x0300 #define M_PORT4 0x0400 void ConfigPin2(unsigned int PortPin, unsigned int Mode, unsigned int PullUp); static inline unsigned int ReadPin(unsigned int PortPin) {..}; static inline void SetPin(unsigned int PortPin) {...}; static inline void ClrPin(unsigned int PortPin) {...}; static inline void SetPinOut(unsigned int PortPin) {...}; static inline void SetPinIn(unsigned int PortPin) {...}; /////////////////////////////////////////////////////////////////////////////// // in the code .c #define BUTTON1_PIN (M_PORT0 | 13) #define BUTTON2_PIN (M_PORT1 | 30) #define BUTTON3_PIN (M_PORT0 | 12) #define BUTTON4_PIN (M_PORT1 | 31) int main() { unsigned int PinState = ReadPin(BUTTON1_PIN); };
  6. В общем да, но и без него работает... Когда ошибок в схеме нет ;)
  7. Да, но только для 5VT пинов. У обычных пинов стоит защитный диод с пина на питание, и притянуть пин выше чем напряжение питания (ок, + 0.6В если сильно постараться) не получится. Я имел ввиду на вход. На выход - только если пин сконфигурирован Open Drain.
  8. Напряжение питания процессора 3.3В... Если пин не 5VT, делитель нужен чтобы хоть как-то закрыть транзистор. Ошибки распиновки были позднее исправлены, а делитель остался. ;)
  9. Если вы уже нашли конфигурацию устройства, в которой все хорошо работает, зачем опять что-то менять и начинать новый цикл экспериментов? И зачем питать аналог и мк от разных обмоток? Они что ли с друг другом не взаимодействуют? Если да, то это бессмыссленно, т.к. все равно вы их должны гальванически соеденить.
  10. Bingo. Некоторые управляющие сигналы не были назначены на 5VT пины.
  11. Да, соеденил. Заменил резистор на 20К, и стал повышать напряжение пока не получил 5В на резисторе. Это достигается при 6.45В. Vgs при этом 1.45В.
  12. Спасибо! Когда запостил я сам задумался, а почему бы не померять при тех же условиях что и в datasheet? получается что ток 250мкА достигается при Vgs =-1.45V, что намного больше заявленного максимума в 0.95В. Отвечая на вопрос зачем так делать - конечно, так делать не стоит.
  13. В устройстве используется IRLML6401 P-FET, и отдельные экземпляры (примерно 3%) включаются не полностью в схеме. Я взял один из таких экземпляров и включил его в тестовую схему: choose files... Click to choose files При таком включении я получаю следующую картину на осциллоскопе: (Желтый - напряжение на R1, Голубой - напряжение на затворе относительно земли.) Т.е. видно, что при использовании делителя 470:1000 (что при питании от 5В дает напряжение GS в 1.6V) он полностью не включается, а начинает включаться гораздо позже. Симуляция в LTSPICE дает результаты получше (модель в приложении): Я понимаю, что мы имеем дело с экземплярами с особенно высоким Vgs(th). Как исправить тоже понятно (меняем делитель на 1К:1К). Непонятно только следующее: это поведение все еще подходит под спецификации производителя? Я долго долго смотрел на графы в мануале, и по моему так нет, не подходит. Но хотел бы услышать еще чье-то мнение прежде чем сообщать свои выводы клиенту. IRLML.zip irlml6401pbf-2.pdf
  14. согласен копаться надо, но переносятся они отнюдь не автоматом, а вручную. Если вам когда-то понадобится перейти на другой чип, в пределах одной платформы и от одного производителя (и я удивлюсь, если вам это ни разу не надо было делать) то все исходники надо будет перепроверять на соответсвие адресов или менять их. Как бы зачем. Ну это дело хозяйское, конечно.
  15. Ну вот а в эклипсе видно. Разумеется, если вы любите копаться в даташитах и переносить адреса оттуда в .с файлы с риском ошибок, то ваш подход для вас лучше работает, чем использование готовых заголовков от производителя. Переносимость кода вещь умозрительная? ЛОЛ