Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:3
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:7
Форум » starterkit.ru » Отладочные платы » SK-MAT91SAM9XXXXX
Нет вывода в USART
pauk
Добавлено 12.02.2013 12:40
0
Сообщение: 1
pauk
0

Пункты: 422
Регистрация: 12.02.2013
Добрый день. Имеется плата SK-MAT91SAM9XE512 на контроллере AT91SAM9260. хочу на базе кода Bootstrap-v1.16 с сайта Атмела добавить поддержку ввода/вывода по USART.
Что я сделал:

Установил значения MAINOSC, MASTER_CLOCK и коэффициентов PLL согласно http://dmilvdv.narod.ru/AT91SAM9260/

DBGU при даных настройках дает нормальный вывод в терминал.

далее подключаю выводы TXD0, RXD0 в PIO, аналогично тому, как это делается для выводов DBGU

Код

const struct pio_desc hw_pio[] = {
{"TXD0", AT91C_PIN_PB(4), 0, PIO_DEFAULT, PIO_PERIPH_A},
{"RXD0", AT91C_PIN_PB(5), 0, PIO_DEFAULT, PIO_PERIPH_A},
{"DRXD", AT91C_PIN_PB(14), 0, PIO_DEFAULT, PIO_PERIPH_A},
{"DTXD", AT91C_PIN_PB(15), 0, PIO_DEFAULT, PIO_PERIPH_A},
{(char *) 0, 0, 0, PIO_DEFAULT, PIO_PERIPH_A}
};


далее включаю тактирование US0 в PMC.

Код

AT91C_BASE_PMC->PMC_PCER = 1<<AT91C_ID_US0;


ну и непосредственно сами настройки US0

Код

AT91C_BASE_US0->US_CR = AT91C_US_RSTRX | AT91C_US_RSTTX | AT91C_US_RXDIS | AT91C_US_TXDIS;
AT91C_BASE_US0->US_IDR = 0xFFFFFFFF;
AT91C_BASE_US0->US_BRGR = BAUDRATE(MASTER_CLOCK, 115200);
AT91C_BASE_US0->US_MR = AT91C_US_PAR_NONE | AT91C_US_USMODE_NORMAL |
AT91C_US_CLKS_CLOCK | AT91C_US_CHRL_8_BITS | AT91C_US_NBSTOP_1_BIT;
AT91C_BASE_US0->US_CR = AT91C_US_TXEN | AT91C_US_RXEN;


функция вывода в US0:
Код

void usart_print_char(char c)
{
while (!(AT91C_BASE_US0->US_CSR & AT91C_US_TXRDY));
AT91C_BASE_US0->US_THR = с;
}


в результате вывод в терминал отсутствует но этом бит готовности устанавливается.
что я делаю не так?
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 12.02.2013 13:18 Сообщение: 2
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
вы на правильных пинах смотрите?
а как проверяете - шьете вместо бутстрапа или пускаете бинарник из юбута? если первое, то размер не превысили?

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
pauk
Добавлено 12.02.2013 13:28 Сообщение: 3
pauk
0

Пункты: 422
Регистрация: 12.02.2013
Ну согласно даташиту TXD0 и RXD0, это 4 и 5 пин PIOB.
шью с помощью Eclipse, GDB Hardware Debugging plugin в SRAM. размер не превысил

Код

Downloading 2824 bytes @ address 0x00200000 - Verified OK
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 12.02.2013 15:10 Сообщение: 4
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Ну согласно даташиту TXD0 и RXD0, это 4 и 5 пин PIOB.

да где пины на АРМе - это понятно, не могли на пинхидере попутать? например смотрите не там..

Цитата
Downloading 2824 bytes @ address 0x00200000 - Verified OK

как-то подозрительно маленький, впрочем давно не занимался его компиляцией..
чисто для проверки - попробуйте вместо работы с уартом дернуть лапкой АРМа, заодно убедитесь в исправности выводов АРМа

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
pauk
Добавлено 12.02.2013 15:51 Сообщение: 5
pauk
0

Пункты: 422
Регистрация: 12.02.2013
Цитата

не могли на пинхидере попутать? например смотрите не там..


эм... а вот отсюда можно поподробнее? я ожидаю увидеть вывод в терминале на десктопе. что такое пинхидер, честно скажу, не знаю.

Цитата

как-то подозрительно маленький


поддержку флешей и SDRAM пока выпилил за ненадобностью. поэтому и маленький

Цитата

чисто для проверки ... дернуть лапкой АРМа


я так полагаю, что в данном случае, для того, чтобы увидеть результат нужен осциллограф? с этим плохо...

ЗЫ. надобно добавить, что к электронике я имею никакого отношения, да и с микроконтроллерами тоже дела не имел донедавна, следовательно могу не отстреливать какие-то очевидные, для тех, кто в теме, вещи...
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 12.02.2013 18:01 Сообщение: 6
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
эм... а вот отсюда можно поподробнее? я ожидаю увидеть вывод в терминале на десктопе. что такое пинхидер, честно скажу, не знаю.

для синхронизации обсуждения - у вас такая плата?
title
пинхидер - это черный разъем на 40 контактов слева вверху
туда и выведены контакты UART0
на консоль DB9 выведен отладочный порт DBGU - что несколько другая фишка..

Цитата
я так полагаю, что в данном случае, для того, чтобы увидеть результат нужен осциллограф? с этим плохо...

совершенно не обязательно для статических сигналов - достаточно цифрового ил стрелочного вольтметра на предел 5В или светодиод + резистор - чисто как индикатор..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 12.02.2013 18:08 Сообщение: 7
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
для проверки работы вашей программы можно применить нехитрый трюк
кусок провода или обычная скрепка - вставляете ее в дырочки разъема Х11 в контакты 16 и 18 - отсчет по шелкографии. если картинка и плата соответствуют, то левый нижний контакт #1, ваши контакты в верхнем ряду..
замкнув цепь вы получите заворот сигнала, т.н. loopback
и то что положите в регистр передатчика должны увидеть в регистре приемника

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
pauk
Добавлено 12.02.2013 18:33 Редактировалось 12.02.2013 18:34 Сообщение: 8
pauk
0

Пункты: 422
Регистрация: 12.02.2013
Цитата
у вас такая плата?


вот такая:
http://www.starterkit.ru/images/sk_mat91sam9xe512.jpg

Цитата

туда и выведены контакты UART0
на консоль DB9 выведен отладочный порт DBGU


т.е. контакты USART0 не имеют ничего общего с разъемом DB9?.. вот оно что...

Цитата
разъема Х11


эм... а это что?
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 12.02.2013 18:50 Сообщение: 9
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
вот такая:

ёлки! вот как полезно выяснить вид платы.. вашей на главной странице не видно - вероятно это из ранних поставок.. а схема есть? выложите куда-нить в паблик плейс..

Цитата
т.е. контакты USART0 не имеют ничего общего с разъемом DB9?.. вот оно что...

не-а..
судя по дорожкам на вашей картинке UART0 обегает разъем jtag и заводится на разъем Х2 - 30 штырьковый хидер - скрепка отменятся :)

Цитата
эм... а это что?

это номер разъема с моей картинки

вот условно схожие действия для проверки серийного порта (на АРМ, номера контактов и портов внимание не обращайте)
http://starterkit.ru/html/index.php?name=forum&op=view&id=10725#10798

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
pauk
Добавлено 13.02.2013 13:30 Сообщение: 10
pauk
0

Пункты: 422
Регистрация: 12.02.2013
Цитата
выложите куда-нить в паблик плейс..


вот:
http://troloload.ru/f/1559_sk-mat91sam9xe512.pdf

но я уже кажись и сам понял, где искать выводы уарта.

спасибо Вам большое за помощь
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Отладочные платы » SK-MAT91SAM9XXXXX