|
Глючит FT232BL |
|
|
|
May 15 2009, 23:42
|
Участник

Группа: Участник
Сообщений: 50
Регистрация: 23-04-09
Пользователь №: 48 156

|
ATMega48 соединена с FT232BL через TDX/RDX. По нажатию кнопки передаётся два байта на FT232BL: Код #define USART_BAUD 9600ul #define USART_UBBR_VALUE ((F_CPU/(USART_BAUD<<4))-1)
void USART_vInit(void) { // Set baud rate unsigned short int UBRRH = USART_UBBR_VALUE>>8; unsigned short int UBRRL = USART_UBBR_VALUE;
// Set frame format to 8 data bits, no parity, 1 stop bit UCSR0C = (0<<USBS0)|(1<<UCSZ00)|(1<<UCSZ00);
// Enable receiver and transmitter UCSR0B = (1<<RXEN0)|(1<<TXEN0); }
void USART_vSendByte(unsigned short int u8Data) { // Wait if a byte is being transmitted while((UCSR0A&(1<<UDRE0)) == 0); // Transmit data UDR0 = u8Data; }
unsigned short int USART_vReceiveByte() { if ((UCSR0A&(1<<RXC0)) == 0) {return UDR0;} else {return 0;} }
int main(void) // начало основой программы {
...
(ежесекундно проверяется статус кнопки, и, если кнопка нажата, то)
{ мигнуть лампочкой; USART_vSendByte(10); USART_vSendByte(15); }
} } Однако результат следующий. Во-первых, за раз отправляется только один байт. Во-вторых, он всегда равен 127 (в 7-битном режиме) или 255 (в 8-битном режиме). В-третьих, даже этот неверный байт отсылается не стабильно: в 60-70% случаев байт не отправляется, хотя лампочка мигает (т.е. условие нажатия выполняется). Кроме того, приём байта вообще не работает. Подозреваю, что причина - в неправильной работе с UART.
|
|
|
|
|
 |
Ответов
|
May 18 2009, 00:20
|
Участник

Группа: Участник
Сообщений: 50
Регистрация: 23-04-09
Пользователь №: 48 156

|
Цитата(aaarrr @ May 18 2009, 03:49)  Ну, бывает. Заводите внешнюю частоту и проверяйте фьюзы. При чем тут внешняя частота, если установлен "Full Swing Crystall Oscillator" (CKSEL3..1=0111)? "External Clock" имеет другие биты - 0000. Правда, тут кое-что не понятно. В битах SUT1..0 установлено, что "BOD enabled", а "Start-up time" равен 16K. С другой стороны, в битах BODLEVEL установлено, что "BOD Disabled". Что это значит? Биты SUT и BODLEVEL я не трогал - они не менялись.
|
|
|
|
|
May 18 2009, 00:26
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(uuu2 @ May 18 2009, 04:20)  При чем тут внешняя частота, если установлен "Full Swing Crystall Oscillator" (CKSEL3..1=0111)? "External Clock" имеет другие биты - 0000. При том, что вам процессор оживить надо, а для этого желательно убедиться, что в FUSE-битах стоит то, что вы думаете, а не что-то другое. Цитата(uuu2 @ May 18 2009, 04:20)  Правда, тут кое-что не понятно. В битах SUT1..0 установлено, что "BOD enabled", а "Start-up time" равен 16K. С другой стороны, в битах BODLEVEL установлено, что "BOD Disabled". Что это значит? Биты SUT и BODLEVEL я не трогал - они не менялись. В битах SUT установлено "Crystal Oscillator, fast rising power" SUT1..0=10, CKSEL0=1. Попробуйте для начала конденсаторы от кварца отодрать.
|
|
|
|
Сообщений в этой теме
uuu2 Глючит FT232BL May 15 2009, 23:42 aaarrr Код unsigned short int UBRRH = USART_UBBR_VALUE... May 16 2009, 00:29 uuu2 Угу. Исправил. Теперь глючит немного по-другому.
... May 16 2009, 12:31 SysRq Цитата(uuu2 @ May 16 2009, 03:42) Код // ... May 16 2009, 13:37 uuu2 Цитата(SysRq @ May 16 2009, 17:37) Тут ил... May 16 2009, 15:41  SysRq Цитата(uuu2 @ May 16 2009, 19:41) Код|... May 16 2009, 16:04   uuu2 Цитата(SysRq @ May 16 2009, 20:04) Не фре... May 16 2009, 19:20    aaarrr Цитата(uuu2 @ May 16 2009, 23:20) Причём ... May 16 2009, 19:40    SysRq Пока сообщение набивал, да отвлекался, все уже до ... May 16 2009, 19:51 uuu2 Гыг! Именно это я и сделал. На МК поставил 960... May 16 2009, 20:23 SysRq Исключительно повезло, что оно работает.
Больше н... May 16 2009, 20:30 uuu2 Ознакомился. Как оказалось, передача всё-таки рабо... May 16 2009, 22:49 DpInRock Мама дорогая.
В древности отроков, которые даташи... May 16 2009, 23:21 uuu2 Цитата(DpInRock @ May 17 2009, 03:21) Убе... May 17 2009, 00:19  aaarrr Цитата(uuu2 @ May 17 2009, 04:19) Мне инт... May 17 2009, 00:35 aaarrr Чтобы обеспечить стабильную работу UART, отклонени... May 16 2009, 23:28 @Ark Цитата(aaarrr @ May 17 2009, 03:28) Чтобы... May 17 2009, 08:59 DpInRock Чисто случайно юзаю мегу48 на 9600 уже давно. Набл... May 16 2009, 23:45 DpInRock ЦитатаДа знаю я про эту галочку CLKDIV8
Ага. May 17 2009, 00:43 SysRq Цитата(aaarrr @ May 17 2009, 04:35) В DS ... May 17 2009, 14:52 aaarrr Цитата(SysRq @ May 17 2009, 18:52) ...ост... May 17 2009, 15:15 uuu2 Ну, решил я установить "более точный" вн... May 17 2009, 23:03 uuu2 Отодрал. Заработал. Что это значит: конденсаторы н... May 18 2009, 00:42 aaarrr Цитата(uuu2 @ May 18 2009, 04:42) Отодрал... May 18 2009, 00:55 uuu2 М-да. Конденсаторы-то разные. Впаял один кондер не... May 18 2009, 01:25 aaarrr Цитата(uuu2 @ May 18 2009, 05:25) М-да. К... May 18 2009, 01:35
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|