|
|
  |
lpc2148 или lpc2138 с внешним чипом usart-usb |
|
|
|
Oct 23 2007, 06:40
|

Участник

Группа: Участник
Сообщений: 49
Регистрация: 3-02-05
Пользователь №: 2 390

|
Цитата(iDenis @ Oct 23 2007, 07:59)  стою перед делемой lpc2148 или lpc2138 с внешним чипом usart-usb? Тоже стоял перед такой дилемой. Решил выбрать встроенную периферию. Из граблей стоит отметить пожалуй: 1. Требовалась работа с устройством без установки драйверов. Замаскировался под HID, а под ним нельзя больше 64000 Б/с снять. 2. USB является синхронной шиной.Т.е. 1000 раз в секунду будет вызываться прерывание. У меня это привело к сбоям в оцифровке в АЦП, пришлось его на fiq перевесить. 3. Возникли трудности с отладкой. Устройство определяется раньше, чем заливается прога по JTAG, хотя это, скорее всего, не сложно пофиксить. А вообще - полет нормальный..
|
|
|
|
|
Oct 25 2007, 09:26
|

Участник

Группа: Участник
Сообщений: 49
Регистрация: 3-02-05
Пользователь №: 2 390

|
Цитата(DASM @ Oct 23 2007, 10:56)  "USB является синхронной шиной.Т.е. 1000 раз в секунду будет вызываться прерывание." - проц может просто аппаратно NACK выдавать, если уж так занят. Прерывания таким образом можно запрещать на это время Во-первых, это приводит к уменьшению скорости передачи на хост. А во-вторых, речь идет о том, что частая и обязательная обработка прерывания от шины может сбить процессы, зависимые от таймера. К примеру: вошли в обработчик прерывания USB, тут же пришло прерывание от таймера. И насколько опоздает в итоге его обработка? Один таймер - можно выкрутится через FIQ, а если несколько - то все гораздо хуже..
|
|
|
|
|
Oct 25 2007, 10:40
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(grau @ Oct 25 2007, 13:26)  Во-первых, это приводит к уменьшению скорости передачи на хост. А во-вторых, речь идет о том, что частая и обязательная обработка прерывания от шины может сбить процессы, зависимые от таймера. К примеру: вошли в обработчик прерывания USB, тут же пришло прерывание от таймера. И насколько опоздает в итоге его обработка? Один таймер - можно выкрутится через FIQ, а если несколько - то все гораздо хуже.. Во-первых, прерывания для работы с USB использовать вовсе не обязательно. Во-вторых, кто мешает сделать вложенные прерывания и дать таймеру более высокий приоритет?
|
|
|
|
|
Oct 25 2007, 12:17
|
Гуру
     
Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493

|
Цитата(grau @ Oct 25 2007, 13:26)  Во-первых, это приводит к уменьшению скорости передачи на хост. А во-вторых, речь идет о том, что частая и обязательная обработка прерывания от шины может сбить процессы, зависимые от таймера. К примеру: вошли в обработчик прерывания USB, тут же пришло прерывание от таймера. И насколько опоздает в итоге его обработка? Один таймер - можно выкрутится через FIQ, а если несколько - то все гораздо хуже.. Во-первых ... ой блин, увидел, aaarrr уже ответил. короче +1 к нему
|
|
|
|
|
Oct 25 2007, 14:11
|
Участник

Группа: Новичок
Сообщений: 15
Регистрация: 28-08-07
Пользователь №: 30 105

|
Цитата(aaarrr @ Oct 25 2007, 14:40)  Во-первых, прерывания для работы с USB использовать вовсе не обязательно. Что имеется в виду? Опрос в цикле, DMA..? Цитата(aaarrr @ Oct 25 2007, 14:40)  Во-вторых, кто мешает сделать вложенные прерывания и дать таймеру более высокий приоритет? Прочел AN10381Nesting of interrupts in the LPC2000. Честно говоря - не пробовал, но наверное возможно.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|