Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: UART на 0.5Мбит\с
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
CAHTA_1939
всем добрый день.

по работе возникла необходимость подключить мое устройство к шине через UART... скорость передачи данных нужно обеспечить ровно в 0.5Мбит\с
сейчас я использую F1611 с 8Mhz кварцем, но в кармане лежат микрухи на 16Мhz ...

от меня на работе требуют чтобы я ответил на данный вопрос. справится ли контроллер с такой скоростью?...

заранее спасибо за ответы =)
msalov
Цитата(CAHTA_1939 @ Dec 13 2007, 10:48) *
всем добрый день.

по работе возникла необходимость подключить мое устройство к шине через UART... скорость передачи данных нужно обеспечить ровно в 0.5Мбит\с
сейчас я использую F1611 с 8Mhz кварцем, но в кармане лежат микрухи на 16Мhz ...

от меня на работе требуют чтобы я ответил на данный вопрос. справится ли контроллер с такой скоростью?...

заранее спасибо за ответы =)

С такими скоростями дела не имел
В руководсствах пользователя есть формулы рассчёта. Среди типичных скоростей обмена для 2x серии есть 460800 б/с
если экстраполировать приведённые примеры (например 12,000,000 MHz 230400 b/s UCBRx=3) можно теоретически получить: 12,000,000 MHz 691200 b/s UCBRx=1

Ещё одна теория для 1х серии и 8МГц кварца

Код
/*
  uart calculator: http://mspgcc.sourceforge.net/baudrate.html
  this program license is at: http://www.fsf.org/licenses/licenses.html#GPL
  this program is distributed WITHOUT ANY WARRANTY

  clock: 8000000Hz
  desired baud rate: 500000bps
  division factor: 16
  effective baud rate: 500000bps
  maximum error: 0us   0.00%

  time table (microseconds):
        event      desired effective  error   error%
    startbit->D0      2.00      2.00       +0  +0.00
    D0->D1            4.00      4.00       +0  +0.00
    D1->D2            6.00      6.00       +0  +0.00
    D2->D3            8.00      8.00       +0  +0.00
    D3->D4           10.00     10.00       +0  +0.00
    D4->D5           12.00     12.00       +0  +0.00
    D5->D6           14.00     14.00       +0  +0.00
    D6->D7           16.00     16.00       +0  +0.00
    D7->stopbit      18.00     18.00       +0  +0.00
    end of stopb     20.00     20.00       +0  +0.00
*/
UBR00=0x10; UBR10=0x00; UMCTL0=0x00; /* uart0 8000000Hz 500000bps */
UBR01=0x10; UBR11=0x00; UMCTL1=0x00; /* uart1 8000000Hz 500000bps */


Но увы это только теория
rezident
Цитата(CAHTA_1939 @ Dec 13 2007, 13:48) *
справится ли контроллер с такой скоростью?...

Модуль UART можно использовать на скорости максимум UCLK/3. Так что настроить скорость, тем более на 16МГц версии, можно. А вот насчет "справится или нет контроллер" с таким потоком нужно сильно разбираться. Одно дело принять байт на такой скорости, и совсем другое дело принять пакет на такой скорости, и дело третье еще и разобрать "на ходу" пакет, принятый на такой скорости.
CAHTA_1939
да там пакета как такового нет. по этой шине мне нужно будет просто байтами перекидываться с другими устройствами...
Dr.NoA
Делал обмен пакетами по UART на скорости 921600 бит/c как раз на MSP430F1611 при 8 МГц. Правда, пришлось использовать DMA.
CAHTA_1939
Цитата(Dr.NoA @ Dec 13 2007, 19:17) *
Делал обмен пакетами по UART на скорости 921600 бит/c как раз на MSP430F1611 при 8 МГц. Правда, пришлось использовать DMA.



спс. надеюсь что при 500000 бит\с DMA не нужно будет...
Dr.NoA
Цитата(CAHTA_1939 @ Dec 13 2007, 21:05) *
спс. надеюсь что при 500000 бит\с DMA не нужно будет...

Возможно, на 500 кбит/с можно обойтись без DMA. У меня в первоначальном варианте тоже DMA не было, принимался каждый байт отдельно по прерыванию. Но иногда случались глюки из-за того, что МК не успевал принять очередной байт, но поступления следующего. Может быть, в Вашей системе этого не будет.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.