컴퓨터가없는 ISP로서의 Arduino


12

누구든지 isp로 작동하도록 설정된 arduino에 데이터로 펌웨어를 사전로드하는 방법 (컴퓨터 등을 사용하는 방법)을 알고 있거나 그 arduino를 사용하여 isp 인터페이스를 다른 것으로 연결하고 펌웨어를 업로드하는 방법을 알고 있습니다.

분명히하기 위해-나는 완전히 날아간 컴퓨터에 직접 연결하지 않고 arduino 스케치를 업로드 할 수있는 방법을 찾고 있습니다.

이상적으로 관련된 단계는 다음과 같습니다.

  1. 새로운 스케치 / 펌웨어 작성
  2. 펌웨어 컴파일
  3. Arduino A에 데이터로 복사 펌웨어 쓰기 (Arduino A는 ISP로 작동하도록 설정 됨)
  4. 컴퓨터에서 Arduino A 분리
  5. 별도의 위치에서 ISP 헤더를 사용하여 Arduino A를 Arduino B에 연결하십시오.
  6. 일부 방법 (푸시 버튼 일 수도 있음)을 사용하면 Arduino A가 사전로드 된 펌웨어를 Arduino B에 업로드합니다.

펌웨어 업로드는 SPI 인터페이스를 통한 바이트 교환 일 뿐이므로 실제로는 확실하지 않기 때문에 이론적으로는 효과가 있다고 가정합니다.

내가 고려하고있는 시나리오는 내 컴퓨터에서 멀리 떨어진 위치에 (영구적으로) arduino를 설치하는 경우입니다 (노트북이 없거나 가지고 싶지 않습니다) 다시 프로그래밍하는 데 어려움이 있습니다. 그것.

내가 생각한 다른 방법은 DIL 패키지 ATMEGA를 사용하는 것입니다 .Dega 패키지 ATMEGA를 사용하면 컴퓨터에서 보드와 프로그램을 제거하고 보드로 돌아갈 수 있습니다. 그러나 핀이 구부러 질 위험이 있으며 다시 프로그래밍 할 때마다 칩.


그 결과 프로그래머에게로드 된 정확한 스케치 / 펌웨어 (Arduino A) 만 사용하여 다른 Arduino를 프로그래밍 할 수있게됩니다. 따라서 생산 라인에서와 같이 복사하는 것이 유용할까요? 스케치에서 무언가를 변경해야하는 경우 컴퓨터로 돌아가서 수정하고 다시로드해야합니다. 내가 이걸 얻었 니?
Ricardo

1
"플래시 이미지"를 다른 지원 (예 : SD 카드)의 대상으로 복사 할 수 없습니까?
jfpoilpret

네. 나는 그것이 생산 라인에도 좋을 것이라고 생각합니다. 내 상황은 움직이기 어려운 인클로저에 아두 이노를 붙어 있고 내 컴퓨터와 다른 방에 있습니다 (이동하기도 어렵습니다). 스케치를 변경할 때마다 Arduino A에 스케치를로드하게되어 기쁩니다.
m3z

2
부트 로더 ( github.com/WestfW/OptiLoader) 프로그래밍의 제한된 목적을 위해 수행 되었지만 사용 가능한 플래시보다 작은 페이로드에서 도구 크기를 뺀 모든 페이로드에서 작동합니다. 더 큰 페이로드 펌웨어의 경우 외부 저장 장치 (또는 단순히 Arduino Mega?)가 작동해야합니다.
Chris Stratton

내가 적응하기에 완벽 해 보이는 @ChrisStratton. 감사합니다
m3z

답변:


5

내 생각 SD와 작은 빠르고, 휴대용 AVR 프로그래머 - μProg은 당신이 원하는 않습니다. SD 카드 (16 진수, eep 등)에 여러 파일을 저장할 수 있으며 PC 없이도 대상 MCU에 쓸 파일을 장치 메뉴에서 선택할 수 있습니다.
가장 좋은 점은 무료로 사용할 수 있다는 것입니다 (PCB, 회로도, 펌웨어 등).

친절한 휴대용 AVR 프로그래머 중 하나! 대상 장치가 접근하기 어려운 위치에 장치 펌웨어를 업데이트해야하는 곳 어디에서나 랩탑을 가지고 다닐 수없는 (또는 원하지 않는 경우) 도움이됩니다. 아주 사용하기 쉽고, 저렴하고, 작고, 빠르며, SD 카드를 사용합니다…

풍모:

  • 초소형 – 치수 44 x 39 x 5,5 mm
  • 초고속 – 최대 12,5kB / s 쓰기, 최대 14,5kB / s 읽기
  • 저렴한 저장 매체 사용 – 소형 MICRO SD 카드
  • FAT16 및 FAT32 파일 시스템 지원
  • 플래시 및 eeprom 메모리를 읽고, 쓰고, 검증 할 수 있습니다
  • 퓨즈 비트 및 잠금 비트를 읽고, 쓰고, 확인할 수 있습니다
  • BIN, HEX 및 TXT 파일 쓰기 및 읽기
  • 퓨즈 비트의 기본값을 설정하고 메모리를 지울 수 있습니다.
  • 저렴하고 쉽게 구할 수있는 LPH7779 그래픽 디스플레이
  • 모든 작업 후 재미있는 애니메이션을 보여줍니다
  • 표준 프로그래밍 헤더 – Atmel 6-PIN ISP
  • 자체 펌웨어를 자동 업데이트하는 기능이 있습니다 (SD에서)
  • 매우 사용하기 쉬운 4 개의 버튼 탐색
  • 사용자 설정 메뉴
  • 프로그래밍 속도 자동 선택 (최대 4MHz)
  • 3V에서 작동, 3V에서 5V로 공급되는 칩 프로그래밍

지원되는 칩리스트

여기에 이미지 설명을 입력하십시오


좋아 보인다 주말에 조사합니다.
m3z

다른 날이 질문을 어떻게 놓쳤는 지 모르겠습니다. 나는이 정확한 프로젝트를 직접 만드는 것에 대해 친구와 이야기했습니다. 그리고 당신의 대답을 봅니다.
Madivad

4

원하는 것에 대한 직접적인 해결책은 없지만 가능합니다. 부트 로더 펌웨어를 해킹하여 펌웨어 플래시 코드를 읽고 ISP를 통해 업로드 할 수 있습니다.

두 Arduino의 MCU에 총 32k의 플래시 만있는 경우 대상 AVR에 32k의 펌웨어를 업로드 할 수 없지만, 원하는 경우 플래시보다 플래시가 플래시보다 더 많이 있어야합니다 (1284p 또는 2560 메가가 충분하거나 328 / 32u4가 168 또는 attiny를 플래시하도록 조정됩니다). 유일한 예외는 펌웨어가 총 메모리보다 더 작게 깜박이도록하는 것입니다 (깜박임 스케치처럼).

결국 100 % 순수 AVR 코드이지만 쉽지는 않습니다. 살펴보십시오 :

내가 구현하는 방식은 모든 것이 플래시 장치의 부트 로더에 맞도록 만들어서 펌웨어 (0x00에서 부트 로더 시작 주소까지)를 읽고 AVRISP를 Optiboot와 병합하여 ISP를 통해 플래시합니다.

어쨌든, 그것은 내 로컬 해커 공간에서 제안 할 수있는 부트 로더 및 AVR에 대한 워크샵을위한 흥미로운 프로젝트입니다! ;-)

HTH


감사합니다. AVRISP 소스 코드는 예상보다 복잡하지 않습니다. 나는 주말 동안 이것에 대해 조금 더 깊이 살펴볼 것이다
m3z

지역 해커 공간은 어디입니까? :)
Madivad

프랑스에있다 Le Loop
zmo

문제 없습니다, 그것은 투표입니다 ;-)
zmo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.