|
Соединить 2 atmega168 по USART, тактуются от одного источника |
|
|
|
Mar 3 2008, 08:40
|
Частый гость
 
Группа: Участник
Сообщений: 113
Регистрация: 8-10-07
Пользователь №: 31 170

|
Здравствуйте! Пытаюсь обеспечить передачу данными по USART между двумя мегами 168. Обе тактются от одного внешнего источника частотой 12.5МHz. BAUD=500 на обоих мегах. Использую polled версия работы s USART из App.Note от производителя. Соединяю так: Код Rx -- Tx Tx -- Rx XCK -- XCK Передаю число первой мегой - вторая Atmega должна принять и соответсвующее количество раз мигнуть светодиодом. Передаю 1 - мигает 2 раза Передаю 2 - мигант 12 раз Передаю 3 - мигает 14 раз  После того как 2 мега мигнула светодиодами она должна вернуть первой константу. Но такое ощущение что в буфере приема первой меги находится больше чем одно число. Т.к. она принимает контсанту еще до того как вторая закончила мигать светодиодами. Причем число не совпадает с той константой, что должна передать 2 мега. Подскажите, пожалуйста, что делать, чтобы заработало?
|
|
|
|
|
 |
Ответов
|
Mar 4 2008, 09:57
|
Профессионал
    
Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008

|
Цитата Кстати не во всех чипах есть режим SPI, (напримре в Atmega128 нет sad.gif ). Это я знаю, сам с новыми еще не работал  , но у автора мега168, а там это режим есть. ..как быстро отвечает автор, не успел сообщение запостить а он уже отвечает... я, кстати пост тот поправил, перечитайте..
--------------------
|
|
|
|
|
Mar 4 2008, 10:04
|
Частый гость
 
Группа: Участник
Сообщений: 113
Регистрация: 8-10-07
Пользователь №: 31 170

|
Цитата(GDI @ Mar 4 2008, 12:57)  Это я знаю, сам с новыми еще не работал  , но у автора мега168, а там это режим есть. Кстати этот режим тоже любопытнаю штука  Буду его тоже пробовать позже  Цитата(GDI @ Mar 4 2008, 12:57)  ..как быстро отвечает автор, не успел сообщение запостить а он уже отвечает... я, кстати пост тот поправил, перечитайте.. Ну так что лучше работать или на форуме сидеть????  Константу менял - передавал 1 - мигало 2 раза 2 - мигало 12 раз 3 - мигало 14 раз. Действительно попробую в цикле. И unsigned charinput заменю на unsigned char charinput Ж). Может чего и выйдет.
|
|
|
|
|
Mar 4 2008, 10:47
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(Filov @ Mar 4 2008, 12:04)  Константу менял - передавал 1 - мигало 2 раза 2 - мигало 12 раз 3 - мигало 14 раз. А теперь давайте посмотрим что такое 2, 12 и 14. 2 - 0x02 == 00000010 вместо 000000001 12 - 0x0C == 00001100 вместо 000000010 14 - 0x0E == 00001110 вместо 000000011 У вас установлены разные бодрейты. Отличие в скорости на глаз в 1.5..2 раза. Совет - напишите и залейте одну и ту же программу в оба МК. Если так и будет сбоить - значит настройки осциллятора разные. Прошейте одинаково fuses. Еще - совсем не важно вычислять бодрейт когда МК работают от одного источника тактирования, нужно чтобы число записываемое в UBRR было одинаковым для обоих МК, а скорость можно ставить максимально допустимую.
|
|
|
|
|
Mar 5 2008, 09:39
|
Частый гость
 
Группа: Участник
Сообщений: 113
Регистрация: 8-10-07
Пользователь №: 31 170

|
Цитата(defunct @ Mar 4 2008, 13:47)  А теперь давайте посмотрим что такое 2, 12 и 14.
2 - 0x02 == 00000010 вместо 000000001 12 - 0x0C == 00001100 вместо 000000010 14 - 0x0E == 00001110 вместо 000000011
У вас установлены разные бодрейты. Отличие в скорости на глаз в 1.5..2 раза.
Совет - напишите и залейте одну и ту же программу в оба МК. Если так и будет сбоить - значит настройки осциллятора разные. Прошейте одинаково fuses. Спасибо большое! У Вас глаз-алмаз! Вытащил проводочек ко которому идут клоки с первого МК - не работет - все ОК. Из второго - продолжает мигать! Соостветсвенно не были правильно установлены fuses и вместо внешних 12.5MHz чип работал на 8MHz. Отличие в скорости в 1.5 раза. Вообщем извлек еще раз урок - что не стоит быть излишне самоуверенным, а проверять, проверять и еще раз проверять. Но зато хоть разобрался как USART работает. Цитата(defunct @ Mar 4 2008, 13:47)  Еще - совсем не важно вычислять бодрейт когда МК работают от одного источника тактирования, нужно чтобы число записываемое в UBRR было одинаковым для обоих МК, а скорость можно ставить максимально допустимую. Т.е. можно ставить регистры UBRR0(H,L) в 1 ? Цитата(mdmitry @ Mar 4 2008, 13:48)  Atmega1281,2561 UART в режиме MASTER SPI, а не Slave. Будьте внимательны Это я вроде понял, только мне непонятна одна вешь - на что влияет бодрейт когда я использую USART как SPI? Допустим хочу соедениться по SPI с чипом который имеет частоту тактования X. Какой бодрейт мне стоит указать? ------------- Господа, спасибо за Ваши ответы. Они прям открыли мне глаза на USART!
|
|
|
|
Сообщений в этой теме
Filov Соединить 2 atmega168 по USART Mar 3 2008, 08:40 GDI А зачем сигнал XCK - вы в синхронном режиме чтоли ... Mar 3 2008, 10:17 Filov Цитата(GDI @ Mar 3 2008, 13:17) А зачем с... Mar 3 2008, 10:57 blackbit оп-с.. а земли (GND) вы им действительно не соедин... Mar 3 2008, 10:32 GDI ЦитатаЯ так понял после прочтения документации, чт... Mar 3 2008, 12:40 Filov Цитата(GDI @ Mar 3 2008, 15:40) Тактирова... Mar 3 2008, 13:17  Stanislav_S Цитата(Filov @ Mar 3 2008, 18:17) Я как н... Mar 3 2008, 13:29   Filov Цитата(Stanislav_S @ Mar 3 2008, 16:29) С... Mar 3 2008, 14:10    =GM= Цитата(Filov @ Mar 3 2008, 14:10) Да надо... Mar 3 2008, 15:04     mdmitry Цитата(=GM= @ Mar 3 2008, 18:04) 3) Не мо... Mar 3 2008, 15:18     KRS Цитата(=GM= @ Mar 3 2008, 18:04) потому ч... Mar 3 2008, 15:26      =GM= Цитата(KRS @ Mar 3 2008, 15:26) Это почем... Mar 3 2008, 16:27       KRS Цитата(=GM= @ Mar 3 2008, 19:27) 1) У мас... Mar 3 2008, 16:42 Aesthete Animus 2Filov
Скажите, а чем вызвано желание использовать... Mar 3 2008, 13:03 GDI ЦитатаТолько инициалюзацию USART я так понимаю над... Mar 3 2008, 14:24 GDI Имхо, в синхронном режиме USART очень похож на SPI... Mar 4 2008, 07:22 KRS Цитата(GDI @ Mar 4 2008, 10:22) Имхо, в с... Mar 4 2008, 09:50 Filov Вообщем действительно USART работал у меня в асинх... Mar 4 2008, 09:27 GDI Ну, во первых, посмотрите осциллографом, что у вас... Mar 4 2008, 09:49 Filov Цитата(GDI @ Mar 4 2008, 12:49) Ну, во пе... Mar 4 2008, 09:53    mdmitry Цитата(Filov @ Mar 5 2008, 12:39) Это я в... Mar 5 2008, 15:55  mdmitry Цитата(Filov @ Mar 4 2008, 13:04) Кстати ... Mar 4 2008, 10:48
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|