реклама на сайте
подробности

 
 
> at91sam7s64 + USART... как правильно настроить?, док вроед прочитал но не работает...
Mozart
сообщение Aug 27 2007, 14:36
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 154
Регистрация: 16-08-07
Из: Москва
Пользователь №: 29 829



Код
volatile AT91PS_PIO    pPIO = AT91C_BASE_PIOA;
pPIO->PIO_ASR |= (1 << 6);
pPIO->PIO_OER = (1 << 6);

volatile AT91PS_USART pUS1 = AT91C_BASE_US1;
    
    pUS1->US_MR |= AT91C_US_CHRL            /*8 bits*/
                  |AT91C_US_PAR_NONE        /*no parity*/
                  |AT91C_US_NBSTOP_2_BIT    /*2 stop bits*/
                  |AT91C_US_OVER            /*8x oversampling*/
                  |AT91C_US_INACK;

    pUS1->US_CR &= ~AT91_US_TXDIS;
    pUS1->US_CR |= AT91_US_TXEN;
    
    //pUS1->US_BRGR = 60;
    pUS1->US_BRGR = 30;

настроил так скажите пжлста так ли, а то совсем закопался...


--------------------
все косяки, даже о которых не знает сам разработчик, - мои
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Mozart
сообщение Aug 28 2007, 16:17
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 154
Регистрация: 16-08-07
Из: Москва
Пользователь №: 29 829



Цитата(a3r3 @ Aug 27 2007, 19:41) *
Читать write-only регистры не стоит.

всмысле читать регистры??
а очередность инициализации важна?


--------------------
все косяки, даже о которых не знает сам разработчик, - мои
Go to the top of the page
 
+Quote Post
AlexBoy
сообщение Aug 28 2007, 18:07
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 205
Регистрация: 19-12-05
Из: Kiev
Пользователь №: 12 394



Цитата(Mozart @ Aug 28 2007, 19:17) *
всмысле читать регистры??
а очередность инициализации важна?


Попробуйте так:
Код
volatile AT91PS_PIO   pPIO = AT91C_BASE_PIOA;
volatile AT91PS_USART pUS  = AT91C_BASE_US1;

pUS->US_IDR = 0xffffffff;
pUS->US_CR = AT91C_US_RSTRX | AT91C_US_RSTTX | AT91C_US_RXDIS | AT91C_US_TXDIS;
AT91F_PMC_EnablePeriphClock(AT91C_BASE_PMC, 1UL << AT91C_ID_US1);
AT91F_PMC_EnablePeriphClock(AT91C_BASE_PMC, 1UL << AT91C_ID_PIOA);

pPIO->PIO_PDR = AT91C_PA21_RXD1 | AT91C_PA22_TXD1;
pPIO->PIO_ASR = AT91C_PA21_RXD1 | AT91C_PA22_TXD1;
pPIO->PIO_OER = AT91C_PA22_TXD1;
pPIO->PIO_ODR = AT91C_PA21_RXD1;
pPIO->PIO_PPUDR = AT91C_PA21_RXD1;

// настройка скорости передачи
baud_val = AT91C_MASTER_CLOCK/baud;
if ((baud_val&0x0f)>=8) baud_val += 16;
pUS->US_BRGR = (baud_val>>4);

pUS->US_MR = AT91C_US_ASYNC_MODE;
pUS->US_CR = AT91C_US_RXEN | AT91C_US_TXEN;
Go to the top of the page
 
+Quote Post
Mozart
сообщение Aug 29 2007, 11:43
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 154
Регистрация: 16-08-07
Из: Москва
Пользователь №: 29 829



что-то нифига не получается смотрел осцилом ничего нету... записвыаю чар для передачи в регистр US_THR
Код
unsigned char ch;
ch = 0xFF;
pUS1->US_THR = (ch & 0x1FF);
for(j = 0; j < 10000; j++);

использую доску от атмеля at91sam7s-ek может какие-то джамперы нужно поставить? я уже весь мозг сломал...


--------------------
все косяки, даже о которых не знает сам разработчик, - мои
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Aug 29 2007, 15:52
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Mozart @ Aug 29 2007, 14:43) *
что-то нифига не получается смотрел осцилом ничего нету...
Тактирование UART включили (AT91C_BASE_PMC->PMC_PCER =(1<<AT91C_ID_US0)wink.gif?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Mozart
сообщение Aug 29 2007, 16:46
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 154
Регистрация: 16-08-07
Из: Москва
Пользователь №: 29 829



Цитата(Сергей Борщ @ Aug 29 2007, 19:52) *
Тактирование UART включили (AT91C_BASE_PMC->PMC_PCER =(1<<AT91C_ID_US0)wink.gif?

да включил...

меня почему-то сейчас клинануло... а нужно ли подавать сигналы на RTS, CTS, DTR, и прочее??? или они автоматом???

Сообщение отредактировал Mozart - Aug 29 2007, 16:50


--------------------
все косяки, даже о которых не знает сам разработчик, - мои
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Mozart   at91sam7s64 + USART... как правильно настроить?   Aug 27 2007, 14:36
- - a3r3   ЦитатаpPIO->PIO_ASR |= (1 << 6); Читать w...   Aug 27 2007, 15:41
|- - a3r3   Цитата(Mozart @ Aug 28 2007, 20:17) всмыс...   Aug 28 2007, 17:24
- - Mozart   ЦитатаЭто: pPIO->PIO_ASR |= (1 << 6); Чт...   Aug 28 2007, 17:28
- - Mozart   люди, что делаю не так??? вот код начальной инициа...   Sep 5 2007, 07:47
- - _dem   pPMC->PMC_PCER = (1 << AT91C_ID_US1)|(1 ...   Sep 5 2007, 08:02
|- - Mozart   Код pPMC->PMC_PCER = (1 << AT91C_...   Sep 5 2007, 09:23
- - _dem   у вас отладчик работает ? что в регистре статуса у...   Sep 5 2007, 09:49
|- - Mozart   если честно под отладчиком не смотрел, просто ...   Sep 5 2007, 10:25
- - _dem   Косяки вряд ли - все-таки у многих эта плата и ник...   Sep 5 2007, 11:49
- - Mozart   может быть джампер где-то поставить надо... потому...   Sep 5 2007, 12:00
- - _dem   какая у вас плата (точное название и ревизия) ? на...   Sep 5 2007, 12:37
- - Mozart   at91sam7s-ek вот ссылка на неё...   Sep 5 2007, 12:44
- - _dem   сэр, согласно http://www.atmel.com/dyn/resources/...   Sep 5 2007, 12:53
- - Mozart   вот что значит не уметь читать... а что исходник м...   Sep 5 2007, 13:25
- - _dem   мдя, они это любят... как доберетесь до SPI или, н...   Sep 5 2007, 13:27
- - Mozart   а я ведь доберусь до SPI!!! пускай пут...   Sep 5 2007, 13:39


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 12:50
Рейтинг@Mail.ru


Страница сгенерированна за 0.01847 секунд с 7
ELECTRONIX ©2004-2016