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

 
 
> Не заводится TWI1 на ATSAM3S4A
Andreyy
сообщение Dec 15 2015, 16:41
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 29-05-08
Пользователь №: 37 929



Здраствуйте,
Имеется плата на базе ATSAM3S4A , на шине I2C - M41T00 http://s16.postimg.org/pnt0c22ed/scheme.jpg.
По умолчанию на пинах предназначенные для TWI1 сидит SystemFunction - JTAG (TDI/TDO).
Меняю на PerepheriaA так
ioport_set_pin_mode( PIO_PB4_IDX, PIO_PERIPH_A );ioport_disable_pin( PIO_PB4_IDX );
ioport_set_pin_mode( PIO_PB5_IDX, PIO_PERIPH_A );ioport_disable_pin( PIO_PB5_IDX );
В итоге получаю бесконечный цикл в функции
twi_master_write()
{...while (1) {status = p_twi->TWI_SR;
if (status & TWI_SR_NACK) {return TWI_RECEIVE_NACK;}
if (status & TWI_SR_TXRDY) {break;}}..
}
Если подключить M41T00 к TWI0(и соответственно настроить), то все работает.
Так же я пробовал отключать JTAG - на JTAGSEL подавал 3.3В - не помогло.
Т.е. получается как-будто я неправильно меняю функцию пинов..

Сообщение отредактировал Andreyy - Dec 15 2015, 16:51
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Jury093
сообщение Dec 15 2015, 19:27
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050



Цитата(Andreyy @ Dec 15 2015, 19:41) *
twi_master_write()
{...while (1) {status = p_twi->TWI_SR;
if (status & TWI_SR_NACK) {return TWI_RECEIVE_NACK;}
if (status & TWI_SR_TXRDY) {break;}}..
}

а с тем ли блоком регистров вы работаете? - их там два набора..
о тактирование и разрешение работы соответствующего узла не спрашиваю..
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 13:03
Рейтинг@Mail.ru


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