проблема такая:
к 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
#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
#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
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В. и если эти лапы направить на периферию, то тоже все нормально (т.е. напряжение не скачет).
не могу понять что за беда.
поделитесь мыслями как решить эту проблему. буду очень благодарен!!!