Jump to content

    

-Tумблер-

Свой
  • Posts

    146
  • Joined

Reputation

0 Обычный

About -Tумблер-

  • Rank
    Частый гость
    Частый гость
  • Birthday 07/29/1959

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Recent Profile Visitors

1,155 profile views
  1. Да, это интересные идеи. И интуитивно понятные. Ещё одна - использовать готовую микросхему для этого MAX13488E (как посоветовали ранее). Существует и ещё более простой вариант - управлять направлением битом модема. И, наконец, решить проблему управления направлением а заодно и категорическую проблему вышеуказанной схемы (отсутствие гальванической развязки) можно покупкой платы RS485. Это может оказаться быстрее и надёжнее. Без гальванической развязки мастерить промышленные сети я бы не стал.
  2. Номинал резисторов R2, R4, R6 показались мне несколько странными. Почему именно такие ? Можно предложить так: R4 - 2 резистора 300 [ом] в параллель (итого 150 [ом]) R2 - 300 [ом], R6 - 300 [ом]. Короче, четыре по триста. :)
  3. У жука 8253 почему-то медленно сбрасывается флаг RDY/BUSY. Поэтому, после начала записи надо дождаться RDY=0, потом дождаться RDY=1. Это будет означать, что байт записан и можно начинать следующую операцию записи. Например, приблизительно так (IAR C): /*-------------------------------------*/ void eeprom_rdy (void) { for (;;) {if ((EECON & (1 << EERDY)) != 0) break;} } /*-------------------------------------*/ void eeprom_rdy0 (void) { for (;;) {if ((EECON & (1 << EERDY)) == 0) break;} } /*-------------------------------------*/ write_byte (word ad, byte dat) { data byte *pxdata; pxdata = (byte *) (0x010000 | ad); DI EECON |= (1 << EEMEN) | (1 << EEMWE); EI *pxdata = dat; eeprom_rdy0 (); eeprom_rdy (); DI EECON &= ~((1 << EEMEN) | (1 << EEMWE)); EI } /*-------------------------------------*/
  4. Поначалу бывало часто такое. Скорее всего это помехи с провода-на-провод. Попробуй завалить фронты сигналов rc-цепочками. Удачи ! :) Да еще как !! :glare:
  5. Правда ли, что у этой машинки можно отдельно запитать весь внутреннй контроллер USB используя вывод AVDD ? И, тем самым, запитать ядро процессора от 5V, а USB-контроллер от 3.3V ? :unsure:
  6. Да. После обнаружения таких случаев я стал вставлять проверку CRC16 ROM. Статистика получается такая. У AT89S8252 ~ 5-8 штук на 1000. Уверен, что это плохие жуки. Попытка перепрошить приводит к тому, что жук исправно работает около 30 мин. Check CRC легко обнаруживает такие ошибки. Получше обстоит дело с AT89C55WD. Всего два случая на моей памяти. Диагноз тот же. :)
  7. У меня кондеры менять не пришлось. 47 пф + кварц 12 мгц. Сбои Озу... есть классическая проблема x51 - возможная "шпилька" на ALE при "неудачном" сочетании адресов и данных. Лечится резистором 300-500 ом в разрыв цепи ALE. Самый худший вариант - емкость на ALE. Поскольку именно это - емкости на шинах процессора - и являются одной из причин проблемы ALE.
  8. Действительно, надо попробовать. Спасибо ! Подозревал, но не был уверен. :)
  9. Всем доброго времени суток ! Проблема вот какая: при использовании AVR ATINY2313 почему то очень мал размах колебаний кварцевого генератора. Приблизительно 1-1.2 V (кварц 4мгц). Жук ставится на замену AT90S2313. При этом "все работает нормально". Т.е. полностю. Исследования показывают, что даже в такой ситуации TINY2313 гораздо лучше чем 90S2313 при наличии значительных помех. (вообще на них не реагирует) Размах колебаний не сильно зависит от питающего напряжения в пределах 1.8V - 5.5V. Проверил несколько жуков - одинаково. В документации ничего про это не нашел. :( Фузы я поставил так: CKSEL0 is reset (1) CKSEL1 is set (0) CKSEL2 is reset (1) CKSEL3 is reset (1) SUT0 is reset (1) SUT1 is reset (1) CKOUT is reset (1) CKDIV8 is reset (1) Вероятно все-таки я гдето ошибся ? Хотя "все работает" сомнения все же остаются.. :unsure:
  10. А я так понял , что Игорь прав. Те если не было определено неадера _xxx_DEF с переменной unsigned int My_Int_Var - создать ее у себя. А если был определен( те файл определений подключен к проекту) - использовать оттудова.
  11. Совсем простой вариант - и по быстрому: . . . for (;;) runfor type_crlf (line); outstr ("0. TEST RS-485\r\n", line); outstr ("1. TEST R-29 INC\r\n", line); outstr ("2. TEST R-29 FLOAT 1\r\n", line); outstr ("ESC- EXIT\r\n", line); outstr ("^C - MAIN MENU\r\n", line); type_crlf (line); for (j=0; j leq 0;) run1 b =getbyte (line); switch ( b ) runswitch case space: case cr: j=1; break; case '0': rs485_menu (); j=1; break; case '1': test_r29_inc (); j=1; break; case '2': test_r29_f (1); j=1; break; case esc: return; case ctlc: ret_main_menu (); endswitch end1 endfor . . .
  12. Да - действительно не плохо. Тем более странно видеть проблемы с редактором. Даже для самоcтоятельного написания редактора уйдет гораздо меньше недели. К тому же бесплатный софт c C компилятором - это форма демпинга при продвижении продукции на рынок. Так что не совсем 0 баксов за компилер. Фирма получает оплату этого софта увеличением продаж. :glare:
  13. Да. Но: Какое же тогда качество компилятора ? :( Что там разработчики сумели натворить, если простейших вопросов программирования для WIN не знают? У софтуне внутенняя не стандартная структура программы. Поэтому, кстати, она несколько "тормозит" во время работы. На слабом процессоре это особенно заметно.
  14. Для WIN98 редактор все "позволяет". Для WINXP рекомендуется назначить и использовать для работы в среде Softune прямое переключения языка. Например: левый ALT + Shift + '2' - Переключение на английский левый ALT + Shift + '1' - Переключение на русский. при этом значок языковой панели остается в положении EN, но клавиатура правильно переключается на русский. Как они пишут такие программы ? Научите... Опция "переключение между языками" почему то работает не четко. Причем, посредством клавиатуры не работает совсем, а мышью это сделать можно. Но неудобно и не четко. Как они пишут такие программы ? Я честно пытался, у меня не вышло. :(