Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AT91SAM7X512 произвольно дергает лапами
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
mirr
Привет всем!!! вот снова хочу обратиться к коллективному уму форума...

проблема такая:
к AT91SAM7X512 прикручен LCD 20x2. после подачи питания увидел такую картину: подсветка LCD начинает моргать, где-то раза 3 в сек. т.е. она постоянно вкл-выкл. подсветка управляется через транзистор, который управляется лапой МК. сначала подумал что что-то с транзистором, но потом выяснилось, что на 3х лапах МК (19-21) скачет напряжение от 0,7В до 3В. эти лапы настроены как PIO на выход, но управлять ими не получается, а точнее они не реагируют. с остальными лапами все нормально.
вот код инициализации:
CODE
#define DEF_BIT_19 0x00080000
#define DEF_BIT_20 0x00100000
#define DEF_BIT_21 0x00200000
#define DEF_BIT_22 0x00400000
#define DEF_BIT_23 0x00800000
#define DEF_BIT_24 0x01000000
#define DEF_BIT_25 0x02000000
#define DEF_BIT_26 0x04000000

CODE
#define RS DEF_BIT_26
#define RW DEF_BIT_25
#define E DEF_BIT_24
#define DB4 DEF_BIT_23
#define DB5 DEF_BIT_22
#define DB6 DEF_BIT_21
#define DB7 DEF_BIT_20
#define BL DEF_BIT_19

CODE
AT91C_BASE_PIOB->PIO_PER = RS | RW | E | DB4 | DB5 | DB6 | DB7 | BL; // Enable the PIO lines
AT91C_BASE_PIOB->PIO_OER = RS | RW | E | DB4 | DB5 | DB6 | DB7 | BL; // Set PIO as output
AT91C_BASE_PIOB->PIO_PPUER = RS | RW | E | DB4 | DB5 | DB6 | DB7 | BL;
AT91C_BASE_PMC->PMC_PCER = (1 << AT91C_ID_PIOB); // Enable the PIOB peripheral clock

причем если настроить эти 3 лапы на вход, то с подтяжкой на них 3,46В, а без - 0,92В. и если эти лапы направить на периферию, то тоже все нормально (т.е. напряжение не скачет).
не могу понять что за беда.

поделитесь мыслями как решить эту проблему. буду очень благодарен!!!
aaarrr
Цитата(mirr @ Jul 13 2010, 05:39) *
не могу понять что за беда.

Действия своей программы полностью исключили? Сделайте тестовый проект, где не будет ничего кроме управления этими лапами.
Сергей Борщ
Цитата(mirr @ Jul 13 2010, 04:39) *
подсветка LCD начинает моргать, где-то раза 3 в сек.
Примерно на это время по-умолчанирю настроен watchdog. Если вы его не инициализируете, то он вам и сбрасывает процессор.
Цитата(mirr @ Jul 13 2010, 04:39) *
эти лапы настроены как PIO на выход, но управлять ими не получается, а точнее они не реагируют. с остальными лапами все нормально.
Как пишете - через SODR/CODR или через ODSR?
mirr
aaarrr и Сергей Борщ, спасибо что откликнулись!!!

проблему решил, как говориться "работает так как написано".
код программы сначала писался на другой плате пока разрабатывалась новая и там было безобидное моргание светодиодами, о которых я напрочь забыл 01.gif после того как переехал на новую плату. ну а закон подлости и склероз сработали на всю силу sad.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.