Перейти к содержанию
    

Михась

Участник
  • Постов

    370
  • Зарегистрирован

  • Посещение

Весь контент Михась


  1. А почему так? IOT какой интерфейс подразумевает?
  2. Кстати, может даже лучше. Если в неподходящий момент датчик гавкнет, продиагностировать и заменить будет легко, не надо будет разбираться с адресами. В помирании без видимых причин эти датчики замечены.
  3. Есть проблемы с конверсией видимо, при этом CRC совпадает, но температура будет считана +85С.
  4. Ну и по опыту. Делали десяток датчиков на сотне метров витой пары. Питание паразитное, никаких конденсаторов. 1. Посмотреть осциллографом на фронты и выбрать подтягивающий резистор, обеспечивающий фронты. 2. Температуру считывать несколько раз и если несколько отсчетов совпадут, принимаем решение.
  5. Онлайн - в процессе работы изделия, например раз в минуту. По идее если прибор год без отключения работает, тестировать только после включения - маловато будет.
  6. Да какие обиды. А возможно создание онлайн-теста озу с сложной диагностикой? В свое время искал, но удобоваримого не нашел. До перехода в __main() то понятно. Внутренний дефект ОЗУ в однокристалках достоверно был один раз - 1816ВЕ51. Больше честно сказать не попадалось, но все равно простой тест озу использую.
  7. Да, это простой тест в основном для встроенного ОЗУ. Но может кому пригодится.
  8. Использую такую функцию для он-лайн тестирования ОЗУ /******************************************************************************* * Функции проверки RAM Parameter: Return: счетчик сбойных слов 32b в RAM Пример resTestRAM = sram_test(0x20000000, 0x20000); *******************************************************************************/ #define PATTERN1 0xAAAAAAAA #define PATTERN2 0x55555555 #define PATTERN3 0x00000000 #define PATTERN4 0xFFFFFFFF #pragma push #pragma O0 #pragma Otime uint32_t sram_test(uint32_t startaddress, uint32_t sizeRAM) { uint32_t *base_address = (uint32_t *)(startaddress); register uint32_t temp_val; register uint32_t i = 0, sram_nowrite_count = 0; __disable_irq(); for(i = 0; i < (sizeRAM/4); i++) { temp_val = *base_address; *base_address = PATTERN1; if(*base_address != PATTERN1) { sram_nowrite_count++; } *base_address = PATTERN2; if(*base_address != PATTERN2) { sram_nowrite_count++; } *base_address = PATTERN3; if(*base_address != PATTERN3) { sram_nowrite_count++; } *base_address = PATTERN4; if(*base_address != PATTERN4) { sram_nowrite_count++; } *base_address = temp_val; base_address++; } __enable_irq(); return (sram_nowrite_count / 2); } #pragma pop
  9. https://electronix.ru/forum/index.php?showt...=147712&hl= Просто я смотрю есть огромный спрос на такие системы. Кто-бы взялся.
  10. Это не вы писали в этой теме под ником Вениамин Иосифович? http://iprog.pp.ru/forum/read.php?f=1&...t=74671&v=f
  11. Есть полезная функция в Кейле http://www.keil.com/support/man/docs/armcc...59124940593.htm 7.136 --protect_stack, --no_protect_stack Inserts a guard variable onto the stack frame for each vulnerable function. The guard variable is inserted between any buffers and the return address entry. A function is considered vulnerable if it contains a vulnerable array. A vulnerable array is one that has: Automatic storage duration. A character type (char or wchar_t). In addition to inserting the guard variable and check, the compiler also moves vulnerable arrays to the top of the stack, immediately preceding the guard variable. The compiler stores a copy of the guard variable's value at another location, and uses the copy to check that the guard has not been overwritten, indicating a buffer overflow. /******************************************************************************* * Функции проверки переполнения стека Parameter: none Return: КЛЮЧ КОМПИЛЯТОРА --protect_stack *******************************************************************************/ void * __stack_chk_guard = (void *)(0xDEADBEEF); // initialize guard variable // Called by stack checking code if guard variable is corrupted void __stack_chk_fail(void) { // переполнение стека } // тестер void teststack(void) { char buf[4]; strcpy(buf, "123456"); // больше размера буфера }
  12. Представил, что вы уволились с предприятия после установки такой системы. Слава богу, такой подход по автоматизации я знаю только на одном предприятии.
  13. За 20 лет не протер ни одного чипа. Спалил одну AVR и один STM32F373 по невнимательности. Вычислительные алгоритмы отлаживаю в симуляторе. Боевые проекты - с внутрисхемной отладкой. Доступ к памяти и оперативная модификация регистров периферии позволяют не перекомпилировать и перешивать код, а непосредственно управлять из отладчика.
  14. Продам оборудование в формате MicroPC . CPU686E http://swd.ru/files/pdf/start/Fastwel%20CPU686E.pdf Geode GX1 300 MHz SDRAM 32MB(CPC10301) В наличии 2 платы, 5т.р. за штуку CF 32M в подарок CPU686E http://swd.ru/files/pdf/start/Fastwel%20CPU686E.pdf Geode GX1 300 MHz SDRAM 128MB(CPC10302) В наличии 1 платы, 8т.р. за штуку CF 64M в подарок KB686E-3 Плата для подключения FDD и HDD В наличии 1 платы, 500р. за штуку 1 крейт на 12 позиций, без БП, припаян разъем для БП АТ В наличии 1, 2т.р. за штуку 1 крейт на 8 позиций, с БП Octagon 5101 В наличии 1, 4т.р. за штуку Кабель адаптера COM: FCD9M -2шт 100р FCD9F -2шт 100р Плата ввода-вывода UNIO48-5 - 3т.р за шт. В наличии 2 платы https://www.fastwel.com/upload/iblock/76c/D...NIOxx-5)dts.pdf UNIO96-1 (DIC111) - 3т.р за шт. В наличии 4 платы По опыту эксплуатации это надежное и несбойное оборудование. Прекрасно подходит для скоростного ввода-вывода большого количества дискретных сигналов (до 1000!) с нормированными задержками. Вся документация есть на ftp://ftp.prosoft.ru/pub/Hardware/Fastwel/ оборудование (ЗИП стенда) не работало(нет коробок и документов), хранилось на отапливаемом складе. Не можете писать в личку, оставьте контакты.
  15. Каждому разряду шины - свой слой!
  16. Примеров софт UART куча, надо тупо попробовать.
  17. Вставить в гугль. Штатный поиск работает отвратно.
  18. Кучу раз уже эта тема поднималась site:electronix.ru/forum/ stm32 часовой кварц
  19. Аха, уже не раз такое видел - типа требуют работника фиксированными скилами. В представлении ОК, люди на предприятии не обучаемы. :rolleyes: зато потом, в штате начинают навешивать совершенно левую работу.
  20. Фирменный. http://www.atmel.com/Images/Atmel-2558-Dis...Note_AVR221.pdf http://homepages.uni-regensburg.de/~erc244...xygen/main.html
×
×
  • Создать...