Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

Результаты опроса: Друзья, на какой плате будем учиться «строить монстров»?
Будем делать свою плату! 19 59.38%
Лут яд! http://starterkit.ru/html/index.php?...&op=view&id=27 13 40.63%
Голосовавшие: 32. Вы ещё не голосовали в этом опросе

 
Опции темы

Школа АRMрестлинга

Непрочитано 30.11.2010, 16:06  
EXIS
Прописка
 
Регистрация: 20.02.2006
Сообщений: 283
Сказал спасибо: 9
Сказали Спасибо 6 раз(а) в 6 сообщении(ях)
EXIS на пути к лучшему
По умолчанию Re: Школа АRMрестлинга

Сообщение от Cybermaker Посмотреть сообщение
Всё таки рекомендую сделать на FT232R. Там всему питания хватит. Из деталей: сама FT232R(в терре - 180 руб) + разъём + кондёр 0.1 uF + кондёр (опционально)10 uF.
Спасибо! Наверное это действительно лучший вариант.
Реклама:
EXIS вне форума  
Непрочитано 15.03.2011, 13:25  
Mike121234
Вид на жительство
 
Аватар для Mike121234
 
Регистрация: 02.04.2008
Адрес: Ленинград
Сообщений: 347
Сказал спасибо: 67
Сказали Спасибо 8 раз(а) в 7 сообщении(ях)
Mike121234 на пути к лучшему
По умолчанию Re: Школа АRMрестлинга

Подскажите, может кто сталкивался. Проблема с UART0 на NXP LPC2214 при совместной работе с PLL. Без PLL все работает чудесно, но стоит включить PLL, как.
1.) Программа работает так: хватает по входу байты, а потом посылает ответ. Дак вот, если приходит ДО 11 байт включительно, то ответ формируется нормальный. Но если заслать от 12 включительно и больше, то выплевывает кроме того что аброкадабру, дак ещи и не то, что кидаю в FIFO. Но... Взводим таймаут между временем когда приняли последний символ и отправляем следующий, и все нормально.

Вот, отослал на вход 11 символов
Write data

00000000: 10 02 00 80 03 00 00 0A | 0B 10 03 ...Ђ.......

Read data

00000000: 10 02 80 00 02 01 0A 0B | 10 03 ..Ђ.......


Это правильный ответ

А вот теперь 12

Write data

00000000: 10 02 00 80 03 00 00 00 | 0A 0B 10 03 ...Ђ........

Read data

00000000: 40 A1 21 A2 E0 @Ў!ўа

Он кроме того, что проглотил отправленные в FIFO символы, но и изуродовал их...

Но если поставить задержку между окончанием приема последнего символа и загрузкой первого в FIFO, то.... Все в ажуре....

Write data

00000000: 10 02 00 80 03 00 00 00 | 0A 0B 10 03 ...Ђ........



Read data

00000000: 10 02 80 00 02 01 0A 0B | 10 03 ..Ђ.......

А если пропустить первый символ, а потом поставить задержку, то первый символ канет в лету, а остальные (после задержки) передадутся нормально.

На всякий случай код настройки PLL и MAM (отключение MAM ситуацию не спасает)
//================================================== =======
//============== Н А С Т Р О Й К А P L L ============
//================================================== ======

//Настройка PLL
void PLL_First_Setup(void)
{
PLLCFG_bit.MSEL = 3;
PLLCFG_bit.PSEL = 1;

PLLFEED = 0XAA;
PLLFEED = 0X55;

//Включаем PLL без подключения к ядру
PLLCON_bit.PLLE = 1;

PLLFEED = 0XAA;
PLLFEED = 0X55;

while (!(PLLSTAT & 0X400)); // ОЖИДАЕМ ЗАМЫКАНИЯ ПЕТЛИ PLL

//Включаем PLL к ядру
PLLCON_bit.PLLC = 1;


PLLFEED = 0XAA;
PLLFEED = 0X55;

}
//================================================== =======
//============== Н А С Т Р О Й К А M A M ============
//================================================== ======

//Настройка MAM
void MAM_First_Setup(void)
{
MAMCR_bit.MODECTRL = 0; //откл. mam
MAMTIM_bit.CYCLES = 3; // ДЛЯ cclk ›40 MGz
MAMCR_bit.MODECTRL = 2; //ВКЛ. mam
VPBDIV_bit.VPBDIV = 0;
}




Настройка UART

//=========================================
//======== Н А С Т Р О Й К А UART_0 ====
//=========================================

//Н А С Т Р А И В А Е М С О Б С Т В Е Н Н О U A R T 0

U0LCR_bit.DLAB=1; // Разрешить запись в настройках делителя UART 0
// Считаем и прописываем частоту.

U0DLL=ExKUC_Fosc/(16*ExKUI_UART_0_Boundrate); //задание младшего байта скорости обмена по UART_0
// 16, ПОТОМУЧТО ВКЛ. PLL
U0DLM=((ExKUC_Fosc/(16*ExKUI_UART_0_Boundrate))››; //задание cтаршего байта скорости обмена по UART_0
// 16, ПОТОМУ ЧТО ВКЛ. PLL
U0LCR_bit.DLAB=0; //Разрешить обращение к буферам UART_0+ЗАЩЕЛКИВАЕМ ДЕЛИТЕЛЬ

U0FDR_bit.MulVal=1;
U0FDR_bit.DivAddVal=0;

U0LCR_bit.WLS = 0X03; //Длина символа 8 бит
U0LCR_bit.SBS = 0; //Один стоповый бит

U0FCR_bit.FCRF=0; //Разрешить буфер FIFO с уровнем триггера 1 символ.
U0FCR_bit.RTLS=0X00; // оДИН СИМВОЛ НА СРАБАТЫВАНИЕ ПРЕРЫВАНИ
U0FCR_bit.RFR = 1; //Cбросить приемный буфер FIFO
U0FCR_bit.TFR = 1; //Cбросить передающий буфер FIFO

U0IER_bit.THREIE = 0; //ЗАПРЕТить прерывание по передаче данных в буфер
U0IER_bit.RDAIE = 0; //ЗАПРЕТить прерывание по приему данных в буфер

Я вот думаю, может быть контроллер UART работает медленно и не успевает.... Но это же бред.
Mike121234 вне форума  
Непрочитано 16.03.2011, 00:12  
Mike121234
Вид на жительство
 
Аватар для Mike121234
 
Регистрация: 02.04.2008
Адрес: Ленинград
Сообщений: 347
Сказал спасибо: 67
Сказали Спасибо 8 раз(а) в 7 сообщении(ях)
Mike121234 на пути к лучшему
По умолчанию Re: Школа АRMрестлинга

Сообщение от Mike121234 Посмотреть сообщение
Подскажите, может кто сталкивался. Проблема с UART0 на NXP LPC2214 при совместной работе с PLL. Без PLL все работает чудесно, но стоит включить PLL, как.
1.) Программа работает так: хватает по входу байты, а потом посылает ответ. Дак вот, если приходит ДО 11 байт включительно, то ответ формируется нормальный. Но если заслать от 12 включительно и больше, то выплевывает кроме того что аброкадабру, дак ещи и не то, что кидаю в FIFO. Но... Взводим таймаут между временем когда приняли последний символ и отправляем следующий, и все нормально.

Вот, отослал на вход 11 символов
Write data

00000000: 10 02 00 80 03 00 00 0A | 0B 10 03 ...Ђ.......

Read data

00000000: 10 02 80 00 02 01 0A 0B | 10 03 ..Ђ.......


Это правильный ответ

А вот теперь 12

Write data

00000000: 10 02 00 80 03 00 00 00 | 0A 0B 10 03 ...Ђ........

Read data

00000000: 40 A1 21 A2 E0 @Ў!ўа

Он кроме того, что проглотил отправленные в FIFO символы, но и изуродовал их...

Но если поставить задержку между окончанием приема последнего символа и загрузкой первого в FIFO, то.... Все в ажуре....

Write data

00000000: 10 02 00 80 03 00 00 00 | 0A 0B 10 03 ...Ђ........



Read data

00000000: 10 02 80 00 02 01 0A 0B | 10 03 ..Ђ.......

А если пропустить первый символ, а потом поставить задержку, то первый символ канет в лету, а остальные (после задержки) передадутся нормально.

На всякий случай код настройки PLL и MAM (отключение MAM ситуацию не спасает)
//================================================== =======
//============== Н А С Т Р О Й К А P L L ============
//================================================== ======

//Настройка PLL
void PLL_First_Setup(void)
{
PLLCFG_bit.MSEL = 3;
PLLCFG_bit.PSEL = 1;

PLLFEED = 0XAA;
PLLFEED = 0X55;

//Включаем PLL без подключения к ядру
PLLCON_bit.PLLE = 1;

PLLFEED = 0XAA;
PLLFEED = 0X55;

while (!(PLLSTAT & 0X400)); // ОЖИДАЕМ ЗАМЫКАНИЯ ПЕТЛИ PLL

//Включаем PLL к ядру
PLLCON_bit.PLLC = 1;


PLLFEED = 0XAA;
PLLFEED = 0X55;

}
//================================================== =======
//============== Н А С Т Р О Й К А M A M ============
//================================================== ======

//Настройка MAM
void MAM_First_Setup(void)
{
MAMCR_bit.MODECTRL = 0; //откл. mam
MAMTIM_bit.CYCLES = 3; // ДЛЯ cclk ›40 MGz
MAMCR_bit.MODECTRL = 2; //ВКЛ. mam
VPBDIV_bit.VPBDIV = 0;
}




Настройка UART

//=========================================
//======== Н А С Т Р О Й К А UART_0 ====
//=========================================

//Н А С Т Р А И В А Е М С О Б С Т В Е Н Н О U A R T 0

U0LCR_bit.DLAB=1; // Разрешить запись в настройках делителя UART 0
// Считаем и прописываем частоту.

U0DLL=ExKUC_Fosc/(16*ExKUI_UART_0_Boundrate); //задание младшего байта скорости обмена по UART_0
// 16, ПОТОМУЧТО ВКЛ. PLL
U0DLM=((ExKUC_Fosc/(16*ExKUI_UART_0_Boundrate))››; //задание cтаршего байта скорости обмена по UART_0
// 16, ПОТОМУ ЧТО ВКЛ. PLL
U0LCR_bit.DLAB=0; //Разрешить обращение к буферам UART_0+ЗАЩЕЛКИВАЕМ ДЕЛИТЕЛЬ

U0FDR_bit.MulVal=1;
U0FDR_bit.DivAddVal=0;

U0LCR_bit.WLS = 0X03; //Длина символа 8 бит
U0LCR_bit.SBS = 0; //Один стоповый бит

U0FCR_bit.FCRF=0; //Разрешить буфер FIFO с уровнем триггера 1 символ.
U0FCR_bit.RTLS=0X00; // оДИН СИМВОЛ НА СРАБАТЫВАНИЕ ПРЕРЫВАНИ
U0FCR_bit.RFR = 1; //Cбросить приемный буфер FIFO
U0FCR_bit.TFR = 1; //Cбросить передающий буфер FIFO

U0IER_bit.THREIE = 0; //ЗАПРЕТить прерывание по передаче данных в буфер
U0IER_bit.RDAIE = 0; //ЗАПРЕТить прерывание по приему данных в буфер

Я вот думаю, может быть контроллер UART работает медленно и не успевает.... Но это же бред.
Я баранов, я баранов бееееееееее. Все дело в ADAMe, который не успевал переключать 485 после передачи на прием. Там есть джампер. Он был на 9600 настроен. Поставил на 115200 и все срослось!!!
Mike121234 вне форума  
Непрочитано 12.06.2011, 20:02  
DVF
Частый гость
 
Аватар для DVF
 
Регистрация: 01.09.2005
Адрес: Саратов
Сообщений: 10
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
DVF на пути к лучшему
По умолчанию Re: Школа АRMрестлинга

Может кто подскажет обучающий курс на просторах инета (можно англоязычный) для МК семейств LPC17xx под IAR EWARM?
DVF вне форума  
Непрочитано 22.08.2011, 16:13  
ZorkiyA
Прохожий
 
Регистрация: 29.03.2007
Сообщений: 7
Сказал спасибо: 4
Сказали Спасибо 5 раз(а) в 3 сообщении(ях)
ZorkiyA на пути к лучшему
По умолчанию Re: Школа АRMрестлинга

А что, тема заглохла?
Такие вещи все таки лучше делать не на форуме, а на своем, хоть на народе, сайте, одна тема, один сайт, хотя если по уму развести то можно и несколько тем на одном сайте.
А на форуме вести обсуждение, а то помойка получается, вон даже тут уже начали сорить левыми вопросами и первоначальный смысл теряется.

Последний раз редактировалось ZorkiyA; 22.08.2011 в 16:15.
ZorkiyA вне форума  
Сказали "Спасибо" ZorkiyA
Uragan90 (22.08.2011)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Книги dosikus Электронная библиотека 11242 29.12.2015 23:45
Си - это сложно и непонятно или нет? Easyrider83 Микроконтроллеры, АЦП, память и т.д 146 29.10.2010 01:17


Часовой пояс GMT +4, время: 03:40.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.