При подключении программатора процессор всегда останавливается на адресах 0xFFFF000C (Exception Vector - Pre-fetch abort), иногда на 0xFFFF0010 (Exception Vector - Data abort) (boot-пинами выбран режим Emulation Debug). Попытки просмотра памяти или загрузки программы в таком состоянии приводят к тому, что вылетает ошибка и всё отваливается. Для работы необходимо сделать сброс от кнопки на плате, процессор перейдёт на адрес 0xFFFF0000 (Exception Vector - Reset), далее можно более-менее нормально работать.
Предположительно есть проблемы с разводкой платы или питанием процессора. Хочу спросить совета по поводу схемы питания. Сама схема представлена на рисунке 1, для питания процессора используется источник питания TPS650061.
На рисунке 2 показан вид питающего напряжения после дросселя L9. Не слишком ли велик уровень шумов? Или это нормально при использовании импульсных преобразователей?
На рисунке 3 - осциллограмма напряжения на ножке SW (pin 7) (до дросселя L9), на рисунке 4 - тоже, только при включении режима одиночной последовательности на осциллографе. Тут возникает вопрос, нормально ли это, что скважность ШИМ всё время прыгает? Говорит ли это о том, что источник питания TPS650061 работает в каком-то непонятном (неоптимальном) режиме? Если да, то может ли это повлечь проблемную работу процессора?
Пробовал увеличивать ёмкость конденсатора C136 до 30 мкФ, думал, поможет фильтрануть питание - не помогло. Попробовал задать дополнительную нагрузку для импульсника (где-то +150 мА к тому, что кушает процессор), может быть ему нагрузки маловато, поэтому и не вошёл в нормальный режим работы, но тоже что-то не помогает, вид ШИМ остался таким же.
Если переключить boot-пины процессора в режим загрузки SPI1 Flash, то при включении питания можем наблюдать осциллограмму приведённую на рисунке 5, где жёлтый - Chip Select, зелёный - Clock. Читает 8 байт и дохнет. Попробовал залить на флэшку начальный кусок прошивки, всё осталось так же (8 байт читает и дохнет). Прошивку генерил со следующими опциями:
Код
am1808.out
-boot
-spi8
-a
-e Entry
-map am1808.mapp
-memwidth 32
-romwidth 8
-o am1808.a0
-boot
-spi8
-a
-e Entry
-map am1808.mapp
-memwidth 32
-romwidth 8
-o am1808.a0
Что можно сказать по этому поводу? Почему после прочтения 8 байт загрузка прекратилась? Пока не попробовал, но может надо для него генерить прошивку без опции -boot?
Рисунок 1 - Схема питания AM1808.
Рисунок 2 - Осциллограмма напряжения после дросселя L9 (1.3V/1A).
Рисунок 3 - Осциллограмма напряжения до дросселя L9 (ножка SW источника питания).
Рисунок 4 - Осциллограмма напряжения до дросселя L9 (ножка SW источника питания) при включении режима осциллографа "Single Sequence".
Рисунок 5 - SPI1 CS (жёлтый) и SPI1 CLK (зелёный) при включении питания процессора.