-
- Пробовали убрать проверку CRC на время? CRCSCAN.CTRLA[NMIEN] смотреть и что там с [ENABLE] из ISR. Расположение контрольной суммы не уехало на байт-другой? - Dingo(28.09.2021 05:59)
- Так может fuse в части проверки CRC неправильно установлены? - rezident(26.09.2021 23:42)
- Fuse вот такие: AlexG(1 знак., 27.09.2021 20:08, картинка)
- Несколько раз перечитал в datasheet разделы про Reset, fuses и
CRCSCAN, но так и не понял до конца, всегда ли запускается подсчет
CRC во время процедуры Reset? Если да, то, во-первых, следует
попробовать все же поместить CRC в соответствующее ей место.
Во-вторых, при BOOTSIZE=0 вся Flash входит в раздел BOOT и CRC
считается дольше. Может стоит изменить это значение? В-третьих,
ввиду второго аргумента стоит попробовать увеличить значение
SYSCFG1.SUT. - rezident(28.09.2021 00:07, ссылка)
- Там вроде можно отключить фьюзами, но у ТС по скрину подсчёт как
раз используется. - Dingo(28.09.2021 06:18)
- Не, он как раз пытается отключить подсчет CRC, но я так и не понял,
возможно ли это? Там в datasheet черт ногу сломит. Нормальные
производители давно уже поделили документацию на datasheet с
описанием электрических параметров и user/program manual с
описанием регистров и способов программирования. А Microchip,
видимо наследовав этот принцип от Atmel, до сих пор все в один
документ валит. - rezident(28.09.2021 14:04)
- Похоже это здесь ILYAUL(81 знак., 28.09.2021 20:09, картинка)
- Не, он как раз пытается отключить подсчет CRC, но я так и не понял,
возможно ли это? Там в datasheet черт ногу сломит. Нормальные
производители давно уже поделили документацию на datasheet с
описанием электрических параметров и user/program manual с
описанием регистров и способов программирования. А Microchip,
видимо наследовав этот принцип от Atmel, до сих пор все в один
документ валит. - rezident(28.09.2021 14:04)
- Там вроде можно отключить фьюзами, но у ТС по скрину подсчёт как
раз используется. - Dingo(28.09.2021 06:18)
- Несколько раз перечитал в datasheet разделы про Reset, fuses и
CRCSCAN, но так и не понял до конца, всегда ли запускается подсчет
CRC во время процедуры Reset? Если да, то, во-первых, следует
попробовать все же поместить CRC в соответствующее ей место.
Во-вторых, при BOOTSIZE=0 вся Flash входит в раздел BOOT и CRC
считается дольше. Может стоит изменить это значение? В-третьих,
ввиду второго аргумента стоит попробовать увеличить значение
SYSCFG1.SUT. - rezident(28.09.2021 00:07, ссылка)
- Fuse вот такие: AlexG(1 знак., 27.09.2021 20:08, картинка)
- Можно ли в стеке увидеть точку, откуда произошло прерывание? - VLLV(26.09.2021 21:52)
- Да. В стек упихиваецца адрес следующей команды. Значит вызов был на шаг раньше. - mse homjak(27.09.2021 23:59)
- оно происходит на следующей команде после SEI, где именно это SEI находится не влияет - AlexG(27.09.2021 19:22)
- Я бы начал с качества питания и устранения возможных ЭМП, особенно
в цепях тактового генератора. Так же стоит проверить, соответствует
ли тактовая частота допустимой и желаемой? Когда поведение выглядит
совсем странным, возможно, дело во внешних воздействиях, а не в
программе или конфигурации чипа. Nikolay_Po(198 знак., 26.09.2021 20:01)
- Генератор внутренний, торчащих из чипа наружу цепей не имеет.
Проверю, правильно ли я его конфигурирую. Внешние помехи
маловероятны - устройство сейчас стоит на столе и питается
стабилизированной постоянкой. При установке в то-же устройство
предыдущего варианта платы с МК (на ATtiny1634) он работает без
сбоев. - AlexG(26.09.2021 20:24)
- проверь дизассемблером таблицу векторов прерываний и отладчиком
вершину стека - адрес возврата из NMI - m16(26.09.2021 20:57)
- обычная таблица, в качестве первого элемента JMP на обработчик NMI, в качестве нулевого - JMP на C_STARTUP. Переход в обработчик NMI происходит именно через таблицу, а не как-то еще. Формат адресов в стеке возвратов не совсем понял (давно в таком не копался), но возврат из обработчика происходит туда, куда надо. Правда, после удаления из этого самого обработчика лишнего стало видно, что сразу после возврата он вызывается снова. - AlexG(27.09.2021 19:31)
- проверь дизассемблером таблицу векторов прерываний и отладчиком
вершину стека - адрес возврата из NMI - m16(26.09.2021 20:57)
- Генератор внутренний, торчащих из чипа наружу цепей не имеет.
Проверю, правильно ли я его конфигурирую. Внешние помехи
маловероятны - устройство сейчас стоит на столе и питается
стабилизированной постоянкой. При установке в то-же устройство
предыдущего варианта платы с МК (на ATtiny1634) он работает без
сбоев. - AlexG(26.09.2021 20:24)