Jump to content

    

Димон Безпарольный

Участник
  • Content Count

    654
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Димон Безпарольный

  • Rank
    Знающий

Recent Profile Visitors

3694 profile views
  1. Точно инверсия. Буду разбираться откуда она берется. Сам алгоритм выдает на двух компиляторах данные без инверсии.
  2. Считаю контрольную сумму 16-ти байт Формирую бинарный файл с этими данными, получаю результат 0xСECEE288(crc файла в Проводнике). Контроллер выдает 0x31311D77. Загнал алгоритм (код ниже) в C-Free компилятор. Тоже получил 0xСECEE288. Сравнил сформированные таблицы - одинаковые. Закипел. Код формирования таблицы unsigned long crc_table[256]; Таблица глобальная void Crc32Init(void) { unsigned long crc; for (int i = 0; i < 256; i++) //инициализируем таблицу расчёта Crc32 { crc = i; for (int j = 0; j < 8; j++) //цикл перебора полинома crc = crc & 1 ? (crc >> 1) ^ 0xEDB88320UL : crc >> 1; crc_table[i] = crc; } inCRC = 0xFFFFFFFF; } Код самого подсчета unsigned long int Crc32(unsigned char Byte) { inCRC = (inCRC >> 8) ^ crc_table[(inCRC ^ Byte) & 0xFF]; return inCRC ^ 0xFFFFFFFF; } inCRC - глобальная переменная unsigned long int inCRC = 0xFFFFFFFF; в которой накапливается сумма. Может подскажет кто, где я накосячил?
  3. Насколько понял от сюда, https://electronix.ru/forum/index.php?app=forums&module=forums&controller=topic&id=159180&page=3&tab=comments#comment-1728612 «During a write operation to the Flash memory, any attempt to read the Flash memory will stall the bus. The read operation will proceed correctly once the write operation has completed. This means that code or data fetches cannot be made while a write/erase operation is ongoing. For write and erase operations on the Flash memory (write/erase), the internal RC oscillator (HSI) must be ON» Это stall не является ошибкой. Просто ожиданием. Но реализации у контроллеров бывают разные. https://electronix.ru/forum/index.php?app=forums&module=forums&controller=topic&id=159180&page=4&tab=comments#comment-1728702 так что может и вывалится в HF. В stm32L476 работает.
  4. Из документации читаю: В микроконтроллере всего 2 банка. В мегабайтном варианте первый заканчивается адресом 0x0807 FFFF. Значит если бутлоадер выполняется в первом банке, для программирования доступен только второй. Я же вижу https://www.feaser.com/openblt/doku.php?id=manual:design что пользовательская программа располагается сразу за бутлоадером в первой свободной двухкилобайтной странице. Как тогда это работает?
  5. Всё прекрасно получилось . Рассчитал по методике описанной в sboa093a.pdf. Спасибо Plain. Надо сказать что в Proteus совпала даже рассчитанная добротность. В железе также всё прекрасно работает.
  6. Спасибо. Очень помогло. Пока не совсем понятно что за коэффициент k. Он где 10^-4, где -5 просто выбирается неизвестно из чего. Попробую разобраться.
  7. Хотел посоветоваться. LtSpice vs Proteus - что точнее симулирует? Proteus один в один показал такое же поведение схемы.
  8. Для приема сигналов X10 нужно разработать полосовой фильтр на 120КГц. Нашел такой расчет: https://studfile.net/preview/7326914/page:3/#4 Рассчитал, собрал и получил частоту 20 КГц вместо 120. Правда с такой добротностью, что мне и нужно. Еще и с обалденным усилением вместо 2. Может кто знает где найти правильный расчет - я больше ничего по этим фильтрам найти не могу. Спасибо.
  9. Прошу прощения за кипеж. Дело было в отсутствии сохранения изменений. При компиляции текущие изменения почему - то не принимались компилятором в расчет без сохранения. Это на 64-битной машине. Ранее такого глюка я не наблюдал. Еще раз прошу прощения.
  10. AVR Seudio4 + WinAVR. Кусок простого кода Main.c : #include <avr/interrupt.h> //Не лезит в Main.h #include "Main.h" extern void SendX10Command (int House, int Unit, int Command); extern void Pulse1ms (void); //Задержка 1мс volatile unsigned int Strob = 0; //секундный строб Если я перевожу #include <avr/interrupt.h> в хидер, он становится невидим в Main.c. Впрочем как и другое ниже этой строки. Причем объявление volatile unsigned char ZC = 0; //Флаг ZC Вполне успешно прописалось в хидере и используется. В чем причина такого поведения? Помогите пожалуйста. Закипел.
  11. Altium 17. жму Tools -> Equalizer net Length, всплывает Хром со страницей отчета Альтиум Design Rule Verification Report. Как убрать сей весьма "полезный" баг?
  12. Спрошу по другому. При импорте PCB и SCH из PCAD каким наиболее простым способом связать схему и PCB?
  13. Где бы почитать про последовательность импорта из Пикада 2006 пары SCH-PCB? Или невозможно сделать так, чтобы плата соответствовала схеме и нужно все ручками? У меня все импортируется по отдельности. Но в схеме не работает даже Find Similar Object. Не находит похожих элементов хотя они есть.