Подключи вывод RxD к выводу 2 порта, а вывод TxD к выводу 10 (он инвертирует сигнал) порта.нужно для начала набросать схемку и спаять примерчик
И пиши программу....
Подключи вывод RxD к выводу 2 порта, а вывод TxD к выводу 10 (он инвертирует сигнал) порта.нужно для начала набросать схемку и спаять примерчик
Код: Выделить всё
Вывод:
asm{
mov DX,0x378
mov AL,<имя_переменной типа unsigned char>
out DX,AL
}
Ввод:
asm{
mov DX,0x378
in AL,DX
mov <имя_переменной типа unsigned char>,AL
}
Ну вот уже кое что дельное с учетом выше сказнного от YS.PB_EXPERT писал(а):Подключи вывод RxD к выводу 2 порта, а вывод TxD к выводу 10 (он инвертирует сигнал) порта.
И пиши программу....
Защиты от чего? Ничего не надо, естесственно. Просто кусок провода.Что нибудь на эти 2 провдка вешать нужно? Резисторы, диоды или еще чего для защиты ?
Ну е-мое, ЛЮБЫЕ ПОДХОДЯЩИЕ СВОБОДНЫЕ, ибо в любом случае протокол будет софтверный. Я же не знаю, какие у Вас ножки МК свободны?Какие это будут ножки в ЛПТ и МК ?
Подключай к выводам аппаратного модуля I2C.rapaks писал(а): будет ли она работать и к каким ножкам подключать на МК ?
Вот это правда, но второе нет.Для ATmega 8 это ножки
27 PC5 (SDA)
28 PC4 (SCL)
Я думал что ты знаешь в чём разница между RS232 и I2C, но похоже даже не то что не видишь разницы, но и не знаешь какой принцип обмена инфой используется.может можно эти SCL и SDA с ЛПТ порта просто подстоединить к RxD TxD ?
Знаешь как производится обмен инфой по шине I2C?То что ЛПТ будет отправлять а МК принмать по этим 2м проводкам я уверен, а вот наоборот будет пахать ? Мне ведь нужно именно общение туда <-> сюда получить.
rapaks, запомните: в LPT НЕТ ни SDA, ни SCL, ни MOSI, ни MISO, ни RXD, ни TXD, ни D+, ни D-, ни чего либо еще - только пины DATA, STATUS и CONTROL. Все остальное - по другому названные эти же пины, результат программной реализации разных протоколов поверх стандартного вывода в регистр DATA. Поэтому "тупо передавать данные в DATA порт" придется в любом случае. Проблему последовательной отправки данных придется решать ВАМ, для этого в LPT для этого НЕТ стандартных средств. Все общение с ним ограничивается записью в регистр данных и контроля и чтением из регистров статуса - это ВСЕ, что дает LPT. Все остальные протоколы - ПРОГРАММНАЯ ЭМУЛЯЦИЯ.Хотя там наверное тупо передают байты в ДАТА порт а мне ведь понадобится отправить байт последовательно по 2м ножкам и както синхоронизироваться по 3й я хз пока как это сделать.
Я говорил про прерывание в МК.Программа, работающая на третьем кольце безопасности
Я понял, поэтому удалил пост, как неактуальный.Я говорил про прерывание в МК
Затем, что аппаратный RS-232 протокол не прокатит из-за многозадачности Windows, мешающей отмерять четкие временные интервалы. Надо свой изобретать (по вышеуказанной причине обязательно с синхронизацией), хотя бы такой, как я сказал. И реализовывать его целиком программно.Зачем переконфигурировать ножки RxD TxD ?
ВАРНИНГ! Ни в коем случае не оставляйте ее висеть в воздухе, ибо уровень будет неопределен из-за того, что на нее будут садиться помехи (ибо это CMOS-вход с высоким импедансом)! Обязательно подтяните ее резистором (~10k) к нужному уровню! В Вашем случае, видимо, к земле.то она будет просто висеть в воздухе
Да, не сможет. И это уже не будут RXD и TXD. Названия RXD и TXD относятся только к линиям RS-232 (одним из воплощений которого является COM-порт). Да, для USB нужна спецпрошивка.Если тупо соединить USB с МК (RxD TxD) то нужено спец прошивку для МК по работе с USB, так? И тогда МК будет только работаь с USB но не сможет работать по этим ногам с COM и тем более с ЛПТ или можно будет както перед началом работы с ЮСБ указать МК что сейчас оан будет работать с этим портом ?
Да, не придется, см. выше. Но для работы с LPT все равно придется перенастраиваться. Ибо, как мы выяснили, нормальный RS-232 на LPT реализовать не удастся. Хотя, если включить в схему вспомогательный контроллер, который будет принимать данные с LPT по всем линиям DATA и отправлять по линиям STATUS (тактирование можно вести по линиям CONTROL), а с основным МК общаться по тому-же RS-232, можно совершенно унифицировать общение с внешним миром для основного МК. Такой вариант не рассматривается? Какой-нибудь TINY2313/TINY24 вполне пойдет...А если USB соединть с МК (RxD TxD) через микруху FT232 то ничего менять не прийдется ?
Вообще то сверх скорости между ПК и МК не нужны.YS писал(а):Если не нужны сверхскорости, я НЕ рекомендую чистый USB - он слишком сложен в программировании и ресурсоемок для МК, в то время как почти у всех МК есть аппаратная поддержка RS-232. Для большинства задач хватает USB-RS232 мостов на FT232R
Это 2е что пришло мне в голову когда я только начинал это дело. Вообще не хотелось бы задействовать еще 1 МК, меги дороговатые (тут вопрос финансовый и сложно решаемый), хотя тини вроде мелкие и дешевле мег, хмм... Никогда прежде с тини не работал.YS писал(а):Хотя, если включить в схему вспомогательный контроллер, который будет принимать данные с LPT по всем линиям DATA и отправлять по линиям STATUS (тактирование можно вести по линиям CONTROL), а с основным МК общаться по тому-же RS-232, можно совершенно унифицировать общение с внешним миром для основного МК.
СОМ-порт стандартный: 128Кбод/с max (поглядел в диспетчере устройств панели управления);какие скорости можно получить на портах COM, LPT и USB (2 варианта, т.е. низкий и полноценный) при общении ПК с МК (на тех же мегах) ?
Честно, не вижу в этом смысла. Зачем, когда есть специализированные микросхемы?может тогда сделать общение по ЛПТ и ЮСБ через эти тини ?
Да очень просто. Берем любую тиньку подешевле. Главное, чтобы в ней был UART, внешние прерывания и как минимум два свободных порта. Один порт подключаем к линиям DATA LPT, и конфигурируем его на вход. Четыре ножки другого порта подключаем к линиям STATUS LPT, конфигурируем их как выход. Ножку внешнего прерываения подключаем к удобной линии CONTROL. UART соединяем с UART'ом целевого МК.А LPT через TINY это как?
Смотря что за USB устройство.Кроме того, "настоящий" USB сложен в программировании и со стороны ПК.