Существует ли документация, или статья по подобной теме? Если нет то напишите, из своей практики, какие есть "особенности" у разных МК. Вот например сегодня часов пять провозился с atmega8535 в попытках использования PORTA и PORTC в качестве выхода. Пока не дошло, что для этого нужно запитать вывод AVCC. Хотя в книгах пишут, что этот вывод необходим для запитки аналоговой части МК и его можно не использовать.
Выдержка из даташита: Код (Text): AVCC is the supply voltage pin for Port A and the AID Converter. It should be externally connected to Vcc, even if the ADC is not used. If the ADC is used, it should be connected to Vcc through a low-pass filter. Тут написано, что он должен быть обязательно подключен. Даже если не используется АЦП. Но про PORTC не сказано ни слова. Также не написаны последствия если его не запитать. Официальная документация слишком сухая. Это все равно, что учить программирования по MSDN.
Появилась проблема с atmega8. При использовании выводов PD5(T1), PD6(AIN0), PD7(AIN1) выход. Если хотя бы на один из этих выводов подать 1 то прошивка вешаеться. Хотя я перед этим запретил все прерывания. cli(); ACSR=1; GICR=0; //это уже от параннои
Извиняюсь. Вопрос снимается. Подача напряжения на эти выводы приводила к просиданию напряжения во всей схеме. Этого вовремя не заметил((
a9d А в доках про этот момент чётко сказано: AVCC is the supply voltage pin for the A/D Converter, Port C (3..0), and ADC (7..6). It should be externally connected to VCC, even if the ADC is not used. If the ADC is used, it should be connected to VCC through a low-pass filter. Note that Port C (5..4) use digital supply voltage, VCC. Если вы таким методом запрещаете прерывания, то неудиительно, что вешается: Analog Comparator Control and Status Register – ACSR Bits 1,0 – ACIS1, ACIS0: Analog Comparator Interrupt Mode Select 0 1 Reserved
2Black_mirror: Читайте внимательно даташиты и мои ответы. ACSR=1; Это отключить компаратор. На прерывания никак не влияет. cli(); запретить все прерывания.
a9d С компаратором я действительно промахнулся. А вот по поводу питания у меня есть такие соображения: Ноги у контроллеров обычно тонкие, если всю максимально потребляемую мощность подать через одну из них, то она просто сгорит. Кроме того прокладывать через весь контроллер шины питания смысла не имеет. Самому ядру нужно не так уж много, основные потребители - это выходные усилители, которые должны выдавать ток, порядка 10 мА. Еще аналоговую и цифровую часть обычно разделяют, чтобы они не сильно друг на друга влияли шумами. Так что если не подключить все выводи питания, то либо не будет работать часть функций, либо контроллер может просто сгореть. Я вот сталкивался с микросхемой W5100, которой для питания требуется 3.3 и 1.8 вольт. Преобразователь 3.3->1.8 стоит внутри микросхемы, но 1.8В выходит наружу, и на выводу требующие такого напряжения подаётся извне(на часть выводов через фильтр, на часть напрямую).