|
Глючит 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 16 2009, 12:31
|
Участник

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

|
Угу. Исправил. Теперь глючит немного по-другому.
Если отправить байты "10" и "15", то на ПК считывает три (!) байта: 152,152,248
Если отправить один байт "10", считываются два байта: 152,248.
Если отправить один байт "15", считываются два байта: 152,248.
Если изменить скорость UART на 19200 и отправить байт "15", то считывается два байта: 254,252.
Скорости UART, ессно уставнавливались на ATMEGA48 и FT245BL одинаковые (сначала 9600, потом 19200). Формат передачи - 8-битный (пробовал и 7-битный - результат тот же, только получаемые байты другие).
|
|
|
|
Сообщений в этой теме
uuu2 Глючит FT232BL May 15 2009, 23:42 aaarrr Код unsigned short int UBRRH = USART_UBBR_VALUE... May 16 2009, 00:29 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 aaarrr Ну, бывает. Заводите внешнюю частоту и проверяйте ... May 17 2009, 23:49 uuu2 Цитата(aaarrr @ May 18 2009, 03:49) Ну, б... May 18 2009, 00:20  aaarrr Цитата(uuu2 @ May 18 2009, 04:20) При чем... May 18 2009, 00:26 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
|
|
|