Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Я ентого бутлодера в глаза не видел, но различия между 21 и 23 невелики

Отправлено злой 12 сентября 2008 г. 10:55
В ответ на: уже три дня ковыряюсь в адресах, регистрах, надоело, честное слово отправлено night_light 12 сентября 2008 г. 10:01

Имхо, изменить нужно
1. Инициализацию PLL. Код для 23

SCS = SCS_FASTGPIO | SCS_OSCRANGE0 | SCS_OSCEN; // 1 to 20 MHz oscillator
while( !SCS_bit.OSCSTAT )
;
PLLCON = PLL_DISABLE;
PLLFEED = 0xAA; PLLFEED = 0x55;
CLKSRCSEL = CLKSRC_MAIN_OSC; // PLL clock source
PLLCFG = (12-1); // 12MHz->288MHz
PLLFEED = 0xAA; PLLFEED = 0x55;
PLLCON = PLL_ENABLE;
PLLFEED = 0xAA; PLLFEED = 0x55;
while( !PLLSTAT_bit.PLOCK )
;
CCLKCFG = 6-1; // 1/6 Fpll
USBCLKCFG = 6-1; // 1/6 Fpll - 48 MHz
PLLCON = PLL_ENABLE | PLL_CONNECT;
PLLFEED = 0xAA; PLLFEED = 0x55;

PCLKSEL0 = 0;
PCLKSEL1 = 0;
// USBCLKCTRL should be written after PCONP.USB
// but before any other USB register access
USBCLKCTRL = USBCCR_DEV_CLK_EN | USBCCR_AHB_CLK_EN;
while ( (USBCLKST & (USBCCR_DEV_CLK_EN | USBCCR_AHB_CLK_EN)) != (USBCCR_DEV_CLK_EN | USBCCR_AHB_CLK_EN) )
;
<\pre>

2. У 21 и 23 разный VIC. Код для 23

VICINTSELECT = 0; // Assign all interrupt channels to IRQ
VICINTENCLEAR = ~0; // Disable all interrupts
VICSOFTINTCLEAR = ~0; // Clear all software interrupts
VICPROTECTION = 0; // VIC registers can be accessed in User or privileged mode
VICADDRESS = 0; // Clear interrupt
for ( int j = 0; j < 32; j++ )
{
(&VICVECTADDR0)[j] = 0;
(&VICVECTPRIORITY0)[j] = VIC_LOW_PRIORITY;
}
// now enable needed IRQs
(&VICVECTADDR0)[VIC_USB] = (unsigned long)USB_ISR;
(&VICVECTPRIORITY0)[VIC_USB] = VIC_HIGH_PRIORITY;
// ... add other vectors here
VICINTENABLE = (1<<USB) | ... other interrupts;
<\pre>

3. И последнее. Сам USB Device у 21 и 23 одинаковый, но ИАР назвал одни и те же регистры разными именами.
Муторно, но догадаться несложно. Например
21 DEVINTCLR
23 USBDEVINTCLR
У Кейла, по-моему, такой проблемы нет.




Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
умножьте 3 на единицу:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru